From 1563210a41d85501834df4b0ec96132010191157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Thu, 30 Mar 2023 12:13:11 -0700 Subject: [PATCH] intel/common: Add gt_id to intel_engine_class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MTL and newer platforms on Xe kmd will have engines with gt_id != 0. Signed-off-by: José Roberto de Souza Reviewed-by: Lionel Landwerlin Part-of: --- src/gallium/drivers/iris/xe/iris_batch.c | 3 +-- src/intel/common/i915/intel_engine.c | 1 + src/intel/common/intel_engine.h | 1 + src/intel/common/xe/intel_engine.c | 1 + src/intel/vulkan/xe/anv_queue.c | 5 +---- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/iris/xe/iris_batch.c b/src/gallium/drivers/iris/xe/iris_batch.c index c5e24704e36..ee899aabeac 100644 --- a/src/gallium/drivers/iris/xe/iris_batch.c +++ b/src/gallium/drivers/iris/xe/iris_batch.c @@ -70,8 +70,7 @@ iris_xe_init_batch(struct iris_bufmgr *bufmgr, instances[count].engine_class = intel_engine_class_to_xe(engine.engine_class); instances[count].engine_instance = engine.engine_instance; - /* TODO: handle gt_id, MTL and newer platforms will need it */ - instances[count++].gt_id = 0; + instances[count++].gt_id = engine.gt_id; } struct drm_xe_engine_create create = { diff --git a/src/intel/common/i915/intel_engine.c b/src/intel/common/i915/intel_engine.c index 2c5a423bfa7..cc5d9bc6b7a 100644 --- a/src/intel/common/i915/intel_engine.c +++ b/src/intel/common/i915/intel_engine.c @@ -88,6 +88,7 @@ i915_engine_get_info(int fd) intel_engine->engine_class = i915_engine_class_to_intel(i915_engine->engine.engine_class); intel_engine->engine_instance = i915_engine->engine.engine_instance; + intel_engine->gt_id = 0; } intel_engines_info->num_engines = i915_engines_info->num_engines; diff --git a/src/intel/common/intel_engine.h b/src/intel/common/intel_engine.h index e5399d5ae73..28efe7d85bb 100644 --- a/src/intel/common/intel_engine.h +++ b/src/intel/common/intel_engine.h @@ -39,6 +39,7 @@ enum intel_engine_class { struct intel_engine_class_instance { enum intel_engine_class engine_class; uint16_t engine_instance; + uint16_t gt_id; }; struct intel_query_engine_info { diff --git a/src/intel/common/xe/intel_engine.c b/src/intel/common/xe/intel_engine.c index bfcf9e325f7..43e173e8160 100644 --- a/src/intel/common/xe/intel_engine.c +++ b/src/intel/common/xe/intel_engine.c @@ -99,6 +99,7 @@ xe_engine_get_info(int fd) intel_engine->engine_class = xe_engine_class_to_intel(xe_engine->engine_class); intel_engine->engine_instance = xe_engine->engine_instance; + intel_engine->gt_id = xe_engine->gt_id; } intel_engines_info->num_engines = engines_count; diff --git a/src/intel/vulkan/xe/anv_queue.c b/src/intel/vulkan/xe/anv_queue.c index 5c42435c73a..954dddea22e 100644 --- a/src/intel/vulkan/xe/anv_queue.c +++ b/src/intel/vulkan/xe/anv_queue.c @@ -58,10 +58,7 @@ anv_xe_create_engine(struct anv_device *device, instances[count].engine_class = intel_engine_class_to_xe(engine.engine_class); instances[count].engine_instance = engine.engine_instance; - /* TODO: handle gt_id, MTL and newer platforms will have media engines - * in a separated gt - */ - instances[count++].gt_id = 0; + instances[count++].gt_id = engine.gt_id; } assert(device->vm_id != 0);