From 82925935d425b4465bcede519a671045fb58d098 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Fri, 10 Apr 2026 16:55:14 +0800 Subject: [PATCH] pvr: wait for graphics jobs in CopyQueryPoolResults The last graphics job, which might write to the occlusion query result, could still be running when vkCmdCopyQueryPoolResults is called. Additionally wait for graphics jobs before copying the results. Fixes: 24b1e3946cc7 ("pvr: Add support to submit occlusion query sub cmds.") Signed-off-by: Icenowy Zheng Reviewed-by: Simon Perretta Part-of: --- src/imagination/vulkan/pvr_arch_cmd_query.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/imagination/vulkan/pvr_arch_cmd_query.c b/src/imagination/vulkan/pvr_arch_cmd_query.c index 139089a60b4..308a9fc42ed 100644 --- a/src/imagination/vulkan/pvr_arch_cmd_query.c +++ b/src/imagination/vulkan/pvr_arch_cmd_query.c @@ -118,7 +118,7 @@ void PVR_PER_ARCH(CmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, cmd_buffer->state.current_sub_cmd->event = (struct pvr_sub_cmd_event){ .type = PVR_EVENT_TYPE_BARRIER, .barrier = { - .wait_for_stage_mask = PVR_PIPELINE_STAGE_TRANSFER_BIT, + .wait_for_stage_mask = PVR_PIPELINE_STAGE_ALL_GRAPHICS_BITS | PVR_PIPELINE_STAGE_TRANSFER_BIT, .wait_at_stage_mask = PVR_PIPELINE_STAGE_QUERY_BIT, }, }; @@ -138,7 +138,7 @@ void PVR_PER_ARCH(CmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, .type = PVR_EVENT_TYPE_BARRIER, .barrier = { .wait_for_stage_mask = PVR_PIPELINE_STAGE_QUERY_BIT, - .wait_at_stage_mask = PVR_PIPELINE_STAGE_TRANSFER_BIT, + .wait_at_stage_mask = PVR_PIPELINE_STAGE_ALL_GRAPHICS_BITS | PVR_PIPELINE_STAGE_TRANSFER_BIT, }, }; }