diff --git a/src/intel/vulkan/anv_gem.c b/src/intel/vulkan/anv_gem.c index 3d7194657df..b7b2d14aecf 100644 --- a/src/intel/vulkan/anv_gem.c +++ b/src/intel/vulkan/anv_gem.c @@ -703,3 +703,15 @@ anv_gem_get_engine_info(int fd) return info; } + +int +anv_gem_count_engines(const struct drm_i915_query_engine_info *info, + uint16_t engine_class) +{ + int count = 0; + for (int i = 0; i < info->num_engines; i++) { + if (info->engines[i].engine.engine_class == engine_class) + count++; + } + return count; +} diff --git a/src/intel/vulkan/anv_gem_stubs.c b/src/intel/vulkan/anv_gem_stubs.c index ed576a7fd19..b41e963fb28 100644 --- a/src/intel/vulkan/anv_gem_stubs.c +++ b/src/intel/vulkan/anv_gem_stubs.c @@ -258,6 +258,13 @@ anv_gem_get_engine_info(int fd) unreachable("Unused"); } +int +anv_gem_count_engines(const struct drm_i915_query_engine_info *info, + uint16_t engine_class) +{ + unreachable("Unused"); +} + int anv_gem_syncobj_wait(struct anv_device *device, const uint32_t *handles, uint32_t num_handles, diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 91de3223730..3d5020dfebf 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1664,6 +1664,8 @@ int anv_gem_syncobj_timeline_query(struct anv_device *device, int anv_i915_query(int fd, uint64_t query_id, void *buffer, int32_t *buffer_len); struct drm_i915_query_engine_info *anv_gem_get_engine_info(int fd); +int anv_gem_count_engines(const struct drm_i915_query_engine_info *info, + uint16_t engine_class); uint64_t anv_vma_alloc(struct anv_device *device, uint64_t size, uint64_t align,