mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
tu: Fix flushes for feedback_invalidate case
We also have to wait for the blits to land, and WFI so that everything finishes before any draws. Noticed when adding the equivalent thing for dynamic renderpasses. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31261>
This commit is contained in:
parent
cad2ca74d9
commit
ef693c5785
1 changed files with 10 additions and 4 deletions
|
|
@ -4637,8 +4637,11 @@ tu_CmdBeginRenderPass2(VkCommandBuffer commandBuffer,
|
|||
cmd->state.cache.pending_flush_bits;
|
||||
cmd->state.renderpass_cache.flush_bits = 0;
|
||||
|
||||
if (pass->subpasses[0].feedback_invalidate)
|
||||
cmd->state.renderpass_cache.flush_bits |= TU_CMD_FLAG_CACHE_INVALIDATE;
|
||||
if (pass->subpasses[0].feedback_invalidate) {
|
||||
cmd->state.renderpass_cache.flush_bits |=
|
||||
TU_CMD_FLAG_CACHE_INVALIDATE | TU_CMD_FLAG_BLIT_CACHE_CLEAN |
|
||||
TU_CMD_FLAG_WAIT_FOR_IDLE;
|
||||
}
|
||||
|
||||
tu_lrz_begin_renderpass<CHIP>(cmd);
|
||||
|
||||
|
|
@ -4973,8 +4976,11 @@ tu_CmdNextSubpass2(VkCommandBuffer commandBuffer,
|
|||
/* Handle dependencies for the next subpass */
|
||||
tu_subpass_barrier(cmd, &cmd->state.subpass->start_barrier, false);
|
||||
|
||||
if (cmd->state.subpass->feedback_invalidate)
|
||||
cmd->state.renderpass_cache.flush_bits |= TU_CMD_FLAG_CACHE_INVALIDATE;
|
||||
if (cmd->state.subpass->feedback_invalidate) {
|
||||
cmd->state.renderpass_cache.flush_bits |=
|
||||
TU_CMD_FLAG_CACHE_INVALIDATE | TU_CMD_FLAG_BLIT_CACHE_CLEAN |
|
||||
TU_CMD_FLAG_WAIT_FOR_IDLE;
|
||||
}
|
||||
|
||||
tu_emit_subpass_begin<CHIP>(cmd);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue