From cc432c358ab8a51401b0e36c89d9aedb0d4af9ab Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Tue, 28 May 2024 19:00:12 +0200 Subject: [PATCH] tu: Use the common versions of vkBegin/EndQuery() Move all the logic into tu_CmdBegin/EndQueryIndexedEXT. CmdBegin/EndQuery in the common runtime is a wrapper that calls tu_CmdBegin/EndQueryIndexedEXT with index 0. Signed-off-by: Valentine Burley Part-of: --- src/freedreno/vulkan/tu_query_pool.cc | 71 +++++---------------------- 1 file changed, 12 insertions(+), 59 deletions(-) diff --git a/src/freedreno/vulkan/tu_query_pool.cc b/src/freedreno/vulkan/tu_query_pool.cc index 76ce6aed7a2..c387b384271 100644 --- a/src/freedreno/vulkan/tu_query_pool.cc +++ b/src/freedreno/vulkan/tu_query_pool.cc @@ -1102,10 +1102,11 @@ emit_begin_prim_generated_query(struct tu_cmd_buffer *cmdbuf, template VKAPI_ATTR void VKAPI_CALL -tu_CmdBeginQuery(VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - VkQueryControlFlags flags) +tu_CmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags, + uint32_t index) { VK_FROM_HANDLE(tu_cmd_buffer, cmdbuf, commandBuffer); VK_FROM_HANDLE(tu_query_pool, pool, queryPool); @@ -1120,7 +1121,7 @@ tu_CmdBeginQuery(VkCommandBuffer commandBuffer, emit_begin_occlusion_query(cmdbuf, pool, query); break; case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: - emit_begin_xfb_query(cmdbuf, pool, query, 0); + emit_begin_xfb_query(cmdbuf, pool, query, index); break; case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT: emit_begin_prim_generated_query(cmdbuf, pool, query); @@ -1137,31 +1138,6 @@ tu_CmdBeginQuery(VkCommandBuffer commandBuffer, assert(!"Invalid query type"); } } -TU_GENX(tu_CmdBeginQuery); - -template -VKAPI_ATTR void VKAPI_CALL -tu_CmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - VkQueryControlFlags flags, - uint32_t index) -{ - VK_FROM_HANDLE(tu_cmd_buffer, cmdbuf, commandBuffer); - VK_FROM_HANDLE(tu_query_pool, pool, queryPool); - assert(query < pool->size); - - switch (pool->type) { - case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: - emit_begin_xfb_query(cmdbuf, pool, query, index); - break; - case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT: - emit_begin_prim_generated_query(cmdbuf, pool, query); - break; - default: - assert(!"Invalid query type"); - } -} TU_GENX(tu_CmdBeginQueryIndexedEXT); template @@ -1610,9 +1586,10 @@ handle_multiview_queries(struct tu_cmd_buffer *cmd, template VKAPI_ATTR void VKAPI_CALL -tu_CmdEndQuery(VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query) +tu_CmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + uint32_t index) { VK_FROM_HANDLE(tu_cmd_buffer, cmdbuf, commandBuffer); VK_FROM_HANDLE(tu_query_pool, pool, queryPool); @@ -1623,7 +1600,8 @@ tu_CmdEndQuery(VkCommandBuffer commandBuffer, emit_end_occlusion_query(cmdbuf, pool, query); break; case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: - emit_end_xfb_query(cmdbuf, pool, query, 0); + assert(index <= 4); + emit_end_xfb_query(cmdbuf, pool, query, index); break; case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT: emit_end_prim_generated_query(cmdbuf, pool, query); @@ -1642,31 +1620,6 @@ tu_CmdEndQuery(VkCommandBuffer commandBuffer, handle_multiview_queries(cmdbuf, pool, query); } -TU_GENX(tu_CmdEndQuery); - -template -VKAPI_ATTR void VKAPI_CALL -tu_CmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - uint32_t index) -{ - VK_FROM_HANDLE(tu_cmd_buffer, cmdbuf, commandBuffer); - VK_FROM_HANDLE(tu_query_pool, pool, queryPool); - assert(query < pool->size); - - switch (pool->type) { - case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: - assert(index <= 4); - emit_end_xfb_query(cmdbuf, pool, query, index); - break; - case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT: - emit_end_prim_generated_query(cmdbuf, pool, query); - break; - default: - assert(!"Invalid query type"); - } -} TU_GENX(tu_CmdEndQueryIndexedEXT); VKAPI_ATTR void VKAPI_CALL