From c5e7c91487b1721005f13bb1ed9255d7e180d697 Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Sat, 23 Mar 2019 23:50:44 -0700 Subject: [PATCH] anv: Add anv_gem_count_engines v2 (Jason Ekstrand): - Take a drm_i915_query_engine_info Signed-off-by: Jordan Justen Reviewed-by: Jason Ekstrand Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/anv_gem.c | 12 ++++++++++++ src/intel/vulkan/anv_gem_stubs.c | 7 +++++++ src/intel/vulkan/anv_private.h | 2 ++ 3 files changed, 21 insertions(+) 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,