[PATCH i-g-t] lib/intel_compute: Do not assume engine class
Nirmoy Das
nirmoy.das at intel.com
Thu Mar 14 21:37:48 UTC 2024
Let the test decide what engine class to use instead of
a lib function deciding it for tests.
Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Cc: Janga Rahul Kumar <janga.rahul.kumar at intel.com>
Signed-off-by: Nirmoy Das <nirmoy.das at intel.com>
---
lib/intel_compute.c | 20 +++-----------------
tests/intel/xe_compute.c | 21 ++++++++++++++++++++-
2 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/lib/intel_compute.c b/lib/intel_compute.c
index 9d3b97efe..c96e60027 100644
--- a/lib/intel_compute.c
+++ b/lib/intel_compute.c
@@ -81,24 +81,10 @@ static void bo_execenv_create(int fd, struct bo_execenv *execenv,
execenv->driver = get_intel_driver(fd);
if (execenv->driver == INTEL_DRIVER_XE) {
+ igt_fail_on(eci == NULL);
execenv->vm = xe_vm_create(fd, 0, 0);
-
- if (eci) {
- execenv->exec_queue = xe_exec_queue_create(fd, execenv->vm,
- eci, 0);
- } else {
- uint16_t engine_class;
- uint32_t devid = intel_get_drm_devid(fd);
- const struct intel_device_info *info = intel_get_device_info(devid);
-
- if (info->graphics_ver >= 12 && info->graphics_rel < 60)
- engine_class = DRM_XE_ENGINE_CLASS_RENDER;
- else
- engine_class = DRM_XE_ENGINE_CLASS_COMPUTE;
-
- execenv->exec_queue = xe_exec_queue_create_class(fd, execenv->vm,
- engine_class);
- }
+ execenv->exec_queue = xe_exec_queue_create(fd, execenv->vm, eci,
+ 0);
}
}
diff --git a/tests/intel/xe_compute.c b/tests/intel/xe_compute.c
index 42f42ca0c..cb98b00d5 100644
--- a/tests/intel/xe_compute.c
+++ b/tests/intel/xe_compute.c
@@ -163,9 +163,28 @@ test_compute_kernel_with_ccs_mode(int num_gt)
static void
test_compute_square(int fd)
{
- igt_require_f(run_intel_compute_kernel(fd), "GPU not supported\n");
+ struct drm_xe_engine_class_instance *hwe;
+ const struct intel_device_info *info;
+ uint16_t engine_class;
+ uint32_t devid = intel_get_drm_devid(fd);
+
+ info = intel_get_device_info(devid);
+
+ if (info->graphics_ver >= 12 && info->graphics_rel < 60)
+ engine_class = DRM_XE_ENGINE_CLASS_RENDER;
+ else
+ engine_class = DRM_XE_ENGINE_CLASS_COMPUTE;
+
+ xe_for_each_engine(fd, hwe) {
+ if (hwe->engine_class != engine_class)
+ continue;
+
+ igt_require_f(xe_run_intel_compute_kernel_on_engine(fd, hwe),
+ "GPU not supported\n");
+ }
}
+
igt_main
{
int xe, num_gt;
--
2.42.0
More information about the igt-dev
mailing list