diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c index f2f9d14b67c..912a35a3c1c 100644 --- a/src/gallium/drivers/iris/iris_batch.c +++ b/src/gallium/drivers/iris/iris_batch.c @@ -275,7 +275,8 @@ iris_create_engines_context(struct iris_context *ice, int priority) const struct intel_device_info *devinfo = screen->devinfo; int fd = iris_bufmgr_get_fd(screen->bufmgr); - struct intel_query_engine_info *engines_info = intel_engine_get_info(fd); + struct intel_query_engine_info *engines_info; + engines_info = intel_engine_get_info(fd, screen->devinfo->kmd_type); if (!engines_info) return -1; diff --git a/src/intel/common/intel_engine.c b/src/intel/common/intel_engine.c index 391e5370b2e..da15c0ca5d6 100644 --- a/src/intel/common/intel_engine.c +++ b/src/intel/common/intel_engine.c @@ -23,13 +23,21 @@ #include +#include "util/macros.h" + #include "intel_engine.h" #include "intel_engine_i915.h" struct intel_query_engine_info * -intel_engine_get_info(int fd) +intel_engine_get_info(int fd, enum intel_kmd_type type) { - return i915_engine_get_info(fd); + switch (type) { + case INTEL_KMD_TYPE_I915: + return i915_engine_get_info(fd); + default: + unreachable("Missing"); + return NULL; + } } int diff --git a/src/intel/common/intel_engine.h b/src/intel/common/intel_engine.h index eb16faeae8b..e5399d5ae73 100644 --- a/src/intel/common/intel_engine.h +++ b/src/intel/common/intel_engine.h @@ -25,6 +25,8 @@ #include +#include "intel/dev/intel_kmd.h" + enum intel_engine_class { INTEL_ENGINE_CLASS_RENDER = 0, INTEL_ENGINE_CLASS_COPY, @@ -44,7 +46,8 @@ struct intel_query_engine_info { struct intel_engine_class_instance engines[]; }; -struct intel_query_engine_info *intel_engine_get_info(int fd); +struct intel_query_engine_info * +intel_engine_get_info(int fd, enum intel_kmd_type type); int intel_engines_count(const struct intel_query_engine_info *info, enum intel_engine_class engine_class); const char *intel_engines_class_to_string(enum intel_engine_class engine_class); diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index ab42c836971..cba1e86aa49 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -947,7 +947,7 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, } device->master_fd = master_fd; - device->engine_info = intel_engine_get_info(fd); + device->engine_info = intel_engine_get_info(fd, device->info.kmd_type); anv_physical_device_init_queue_families(device); anv_physical_device_init_perf(device, fd); diff --git a/src/intel/vulkan_hasvk/anv_device.c b/src/intel/vulkan_hasvk/anv_device.c index 500c96bba73..a3b49104051 100644 --- a/src/intel/vulkan_hasvk/anv_device.c +++ b/src/intel/vulkan_hasvk/anv_device.c @@ -899,7 +899,7 @@ anv_physical_device_try_create(struct vk_instance *vk_instance, } device->master_fd = master_fd; - device->engine_info = intel_engine_get_info(fd); + device->engine_info = intel_engine_get_info(fd, device->info.kmd_type); anv_physical_device_init_queue_families(device); device->local_fd = fd;