radv: tidy up GetQueryPoolResults for occlusion queries
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 22 May 2019 15:46:33 +0000 (17:46 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 27 May 2019 06:50:55 +0000 (08:50 +0200)
Just move the block that checks the availability bit into the
switch like other query types.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_query.c

index 0bc7f83..c0f470d 100644 (file)
@@ -1121,13 +1121,6 @@ VkResult radv_GetQueryPoolResults(
                char *src = pool->ptr + query * pool->stride;
                uint32_t available;
 
-               if (pool->type == VK_QUERY_TYPE_PIPELINE_STATISTICS) {
-                       if (flags & VK_QUERY_RESULT_WAIT_BIT)
-                               while(!*(volatile uint32_t*)(pool->ptr + pool->availability_offset + 4 * query))
-                                       ;
-                       available = *(uint32_t*)(pool->ptr + pool->availability_offset + 4 * query);
-               }
-
                switch (pool->type) {
                case VK_QUERY_TYPE_TIMESTAMP: {
                        available = *(uint64_t *)src != TIMESTAMP_NOT_READY;
@@ -1187,6 +1180,11 @@ VkResult radv_GetQueryPoolResults(
                        break;
                }
                case VK_QUERY_TYPE_PIPELINE_STATISTICS: {
+                       if (flags & VK_QUERY_RESULT_WAIT_BIT)
+                               while(!*(volatile uint32_t*)(pool->ptr + pool->availability_offset + 4 * query))
+                                       ;
+                       available = *(uint32_t*)(pool->ptr + pool->availability_offset + 4 * query);
+
                        if (!available && !(flags & VK_QUERY_RESULT_PARTIAL_BIT))
                                result = VK_NOT_READY;