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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user