From a10388224d65bf3025e91d254a0fd549180ee499 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Tue, 1 Nov 2022 08:31:16 -0700 Subject: [PATCH] iris: Move iris_bufmgr_init_global_vm() to i915/iris_bufmgr.c and prepare for Xe KMD MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: José Roberto de Souza Reviewed-by: Lionel Landwerlin Part-of: --- src/gallium/drivers/iris/i915/iris_bufmgr.c | 10 ++++++++++ src/gallium/drivers/iris/i915/iris_bufmgr.h | 3 +++ src/gallium/drivers/iris/iris_bufmgr.c | 17 ++++++++--------- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/iris/i915/iris_bufmgr.c b/src/gallium/drivers/iris/i915/iris_bufmgr.c index 3eb3bd9..e90bcc5 100644 --- a/src/gallium/drivers/iris/i915/iris_bufmgr.c +++ b/src/gallium/drivers/iris/i915/iris_bufmgr.c @@ -55,3 +55,13 @@ int iris_i915_bo_wait_gem(struct iris_bo *bo, int64_t timeout_ns) return 0; } + +bool iris_i915_init_global_vm(struct iris_bufmgr *bufmgr, uint32_t *vm_id) +{ + uint64_t value; + bool ret = intel_gem_get_context_param(iris_bufmgr_get_fd(bufmgr), 0, + I915_CONTEXT_PARAM_VM, &value); + if (ret) + *vm_id = value; + return ret; +} diff --git a/src/gallium/drivers/iris/i915/iris_bufmgr.h b/src/gallium/drivers/iris/i915/iris_bufmgr.h index 1702b03..534fd7c 100644 --- a/src/gallium/drivers/iris/i915/iris_bufmgr.h +++ b/src/gallium/drivers/iris/i915/iris_bufmgr.h @@ -26,6 +26,9 @@ #include struct iris_bo; +struct iris_bufmgr; bool iris_i915_bo_busy_gem(struct iris_bo *bo); int iris_i915_bo_wait_gem(struct iris_bo *bo, int64_t timeout_ns); + +bool iris_i915_init_global_vm(struct iris_bufmgr *bufmgr, uint32_t *vm_id); diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c index db95337..78a9e57 100644 --- a/src/gallium/drivers/iris/iris_bufmgr.c +++ b/src/gallium/drivers/iris/iris_bufmgr.c @@ -2212,13 +2212,12 @@ iris_bufmgr_get_meminfo(struct iris_bufmgr *bufmgr, static void iris_bufmgr_init_global_vm(struct iris_bufmgr *bufmgr) { - uint64_t value; - if (!intel_gem_get_context_param(bufmgr->fd, 0, I915_CONTEXT_PARAM_VM, &value)) { - bufmgr->use_global_vm = false; - bufmgr->global_vm_id = 0; - } else { - bufmgr->use_global_vm = true; - bufmgr->global_vm_id = value; + switch (bufmgr->devinfo.kmd_type) { + case INTEL_KMD_TYPE_I915: + bufmgr->use_global_vm = iris_i915_init_global_vm(bufmgr, &bufmgr->global_vm_id); + break; + default: + unreachable("missing"); } } @@ -2256,8 +2255,6 @@ iris_bufmgr_create(struct intel_device_info *devinfo, int fd, bool bo_reuse) simple_mtx_init(&bufmgr->lock, mtx_plain); simple_mtx_init(&bufmgr->bo_deps_lock, mtx_plain); - iris_bufmgr_init_global_vm(bufmgr); - list_inithead(&bufmgr->zombie_list); bufmgr->devinfo = *devinfo; @@ -2274,6 +2271,8 @@ iris_bufmgr_create(struct intel_device_info *devinfo, int fd, bool bo_reuse) INTEL_ENGINE_CLASS_COMPUTE); free(engine_info); + iris_bufmgr_init_global_vm(bufmgr); + STATIC_ASSERT(IRIS_MEMZONE_SHADER_START == 0ull); const uint64_t _4GB = 1ull << 32; const uint64_t _2GB = 1ul << 31; -- 2.7.4