mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
pvr: for fragment stages only do not insert a barrier
If within a render pass, only insert a mid fragment barrier if needed for stencil load/store. Signed-off-by: Luigi Santivetti <luigi.santivetti@imgtec.com> Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31679>
This commit is contained in:
parent
35f824fb07
commit
b8e0c15531
1 changed files with 10 additions and 14 deletions
|
|
@ -7707,6 +7707,7 @@ void pvr_CmdPipelineBarrier2(VkCommandBuffer commandBuffer,
|
|||
uint32_t src_stage_mask;
|
||||
uint32_t dst_stage_mask;
|
||||
bool is_barrier_needed;
|
||||
VkResult result;
|
||||
|
||||
PVR_CHECK_COMMAND_BUFFER_BUILDING_STATE(cmd_buffer);
|
||||
|
||||
|
|
@ -7759,9 +7760,9 @@ void pvr_CmdPipelineBarrier2(VkCommandBuffer commandBuffer,
|
|||
|
||||
switch (src_stage_mask) {
|
||||
case PVR_PIPELINE_STAGE_FRAG_BIT:
|
||||
is_barrier_needed = !render_pass;
|
||||
is_barrier_needed = false;
|
||||
|
||||
if (is_barrier_needed)
|
||||
if (!render_pass)
|
||||
break;
|
||||
|
||||
assert(current_sub_cmd->type == PVR_SUB_CMD_TYPE_GRAPHICS);
|
||||
|
|
@ -7816,23 +7817,18 @@ void pvr_CmdPipelineBarrier2(VkCommandBuffer commandBuffer,
|
|||
pDependencyInfo->pImageMemoryBarriers);
|
||||
|
||||
if (is_stencil_store_load_needed) {
|
||||
VkResult result;
|
||||
|
||||
assert(render_pass);
|
||||
result = pvr_cmd_buffer_insert_mid_frag_barrier_event(cmd_buffer,
|
||||
src_stage_mask,
|
||||
dst_stage_mask);
|
||||
if (result != VK_SUCCESS)
|
||||
mesa_loge("Failed to insert mid frag barrier event.");
|
||||
} else {
|
||||
if (is_barrier_needed) {
|
||||
VkResult result;
|
||||
|
||||
result = pvr_cmd_buffer_insert_barrier_event(cmd_buffer,
|
||||
src_stage_mask,
|
||||
dst_stage_mask);
|
||||
if (result != VK_SUCCESS)
|
||||
mesa_loge("Failed to insert pipeline barrier event.");
|
||||
}
|
||||
} else if (is_barrier_needed) {
|
||||
result = pvr_cmd_buffer_insert_barrier_event(cmd_buffer,
|
||||
src_stage_mask,
|
||||
dst_stage_mask);
|
||||
if (result != VK_SUCCESS)
|
||||
mesa_loge("Failed to insert pipeline barrier event.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue