pvr: Fix barrier insertion on merged subpasses

The driver can merge subpasses within a render pass into a single
hw render. While doing so it makes the assumption that the subpasses
in an hw render will all be submitted in a single job.

On vkCmdPipelineBarrier() the driver was previously incorrectly
inserting an event sub-cmd on a merged subpass, breaking that
assumption leading to incorrect values for input attachments.

Signed-off-by: Soroush Kashani <soroush.kashani@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Fixes: 6d672e0336 ("pvr: Add initial vkCmdPipelineBarrier skeleton.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23693>
This commit is contained in:
SoroushIMG
2023-06-15 13:53:56 +01:00
committed by Marge Bot
parent 822dc384b1
commit 4071b8e7f3
+2 -2
View File
@@ -7620,9 +7620,9 @@ void pvr_CmdPipelineBarrier2(VkCommandBuffer commandBuffer,
switch (src_stage_mask) {
case PVR_PIPELINE_STAGE_FRAG_BIT:
is_barrier_needed = true;
is_barrier_needed = !render_pass;
if (!render_pass)
if (is_barrier_needed)
break;
assert(current_sub_cmd->type == PVR_SUB_CMD_TYPE_GRAPHICS);