From 33ee59af1def0dc2c46051d160cb39f940f544ab Mon Sep 17 00:00:00 2001 From: Juston Li Date: Wed, 28 Jun 2023 13:25:57 -0700 Subject: [PATCH] radv: fix incorrect size for primitives generated query Primitives generated queries write 1 integer, the primitives-generated count that is incremented every time a primitive emitted to that stream reaches the transform feedback stage. Fixes: 1ebf463a5a6 ("radv: implement VK_EXT_primitives_generated_query") Signed-off-by: Juston Li Reviewed-by: Yiwei Zhang Reviewed-by: Joshua Ashton Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_query.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index 7e42a1ce27e..4770ad67cee 100644 --- a/src/amd/vulkan/radv_query.c +++ b/src/amd/vulkan/radv_query.c @@ -637,7 +637,7 @@ build_pg_query_shader(struct radv_device *device) * } * available = true; * } - * uint32_t result_size = flags & VK_QUERY_RESULT_64_BIT ? 16 : 8; + * uint32_t result_size = flags & VK_QUERY_RESULT_64_BIT ? 8 : 4; * if ((flags & VK_QUERY_RESULT_PARTIAL_BIT) || available) { * if (flags & VK_QUERY_RESULT_64_BIT) { * dst_buf[dst_offset] = result; @@ -723,7 +723,7 @@ build_pg_query_shader(struct radv_device *device) /* Determine if result is 64 or 32 bit. */ nir_ssa_def *result_is_64bit = nir_test_mask(&b, flags, VK_QUERY_RESULT_64_BIT); - nir_ssa_def *result_size = nir_bcsel(&b, result_is_64bit, nir_imm_int(&b, 16), nir_imm_int(&b, 8)); + nir_ssa_def *result_size = nir_bcsel(&b, result_is_64bit, nir_imm_int(&b, 8), nir_imm_int(&b, 4)); /* Store the result if complete or partial results have been requested. */ nir_push_if(&b, nir_ior(&b, nir_test_mask(&b, flags, VK_QUERY_RESULT_PARTIAL_BIT), nir_load_var(&b, available)));