From 87f4122e110a88f533724b8dbfd3cc8aaa27e97f Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Thu, 9 Apr 2026 19:50:11 +0800 Subject: [PATCH] pvr: fix the code copying query_indices to sub_query_indices There's a dynarray field inside gfx sub_cmd called sub_query_indices, which will contain pending query indices for gfx sub_cmds inside a secondary command buffer. It's expected that when finishing such gfx sub_cmds, the content of query_indices is going to be moved there. However the `util_dynarray_append_dynarray()` call is called with wrong parameter order, thus it's copying sub_query_indices to query_indices and then immediately wiping query_indices, forgetting all query indices in such case. Fix the `util_dynarray_append_dynarray()` call to fix occlusion queries in secondary command buffers. Fixes: 8c506c4b03aa ("pvr: Use util_dynarray_append_dynarray()") Signed-off-by: Icenowy Zheng Reviewed-by: Frank Binns Part-of: --- src/imagination/vulkan/pvr_arch_cmd_buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/imagination/vulkan/pvr_arch_cmd_buffer.c b/src/imagination/vulkan/pvr_arch_cmd_buffer.c index 9e7ccb23604..a9f4c539f90 100644 --- a/src/imagination/vulkan/pvr_arch_cmd_buffer.c +++ b/src/imagination/vulkan/pvr_arch_cmd_buffer.c @@ -2414,8 +2414,8 @@ VkResult pvr_arch_cmd_buffer_end_sub_cmd(struct pvr_cmd_buffer *cmd_buffer) assert(gfx_sub_cmd->query_pool); if (secondary_cont) { - util_dynarray_append_dynarray(&state->query_indices, - &gfx_sub_cmd->sec_query_indices); + util_dynarray_append_dynarray(&gfx_sub_cmd->sec_query_indices, + &state->query_indices); } else { const void *data = util_dynarray_begin(&state->query_indices);