tu: Fill render pass state when resuming

We forgot to call tu_fill_render_pass_state when resuming because it was
mixed in with emitting commands for the start of the subpass. Fix that
by pulling it out. This adds some duplication, but I think it's better
than mixing command emission and CPU-side state setup in the same
function.

Fixes: cb0f414b2a ("tu: Add support for suspending and resuming renderpasses")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38873>
(cherry picked from commit f734dff419)

Conflicts:
	src/freedreno/vulkan/tu_cmd_buffer.cc
This commit is contained in:
Connor Abbott 2025-12-09 15:00:09 -05:00 committed by Dylan Baker
parent 83420158a4
commit 225c35a5da
2 changed files with 5 additions and 3 deletions

View file

@ -1534,7 +1534,7 @@
"description": "tu: Fill render pass state when resuming",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "cb0f414b2aed88f48b2593dad833844be2f5f42b",
"notes": null

View file

@ -5731,8 +5731,6 @@ template <chip CHIP>
static void
tu_emit_subpass_begin(struct tu_cmd_buffer *cmd)
{
tu_fill_render_pass_state(&cmd->state.vk_rp, cmd->state.pass, cmd->state.subpass);
struct tu_resolve_group resolve_group = {};
tu_emit_subpass_begin_gmem<CHIP>(cmd, &resolve_group);
@ -5831,6 +5829,7 @@ tu_CmdBeginRenderPass2(VkCommandBuffer commandBuffer,
tu_lrz_begin_renderpass<CHIP>(cmd);
tu_fill_render_pass_state(&cmd->state.vk_rp, pass, cmd->state.subpass);
tu_emit_renderpass_begin(cmd);
tu_emit_subpass_begin<CHIP>(cmd);
@ -5974,6 +5973,8 @@ tu_CmdBeginRendering(VkCommandBuffer commandBuffer,
cmd->state.suspended_pass.gmem_layout = cmd->state.gmem_layout;
}
tu_fill_render_pass_state(&cmd->state.vk_rp, cmd->state.pass, cmd->state.subpass);
if (!resuming) {
tu_emit_renderpass_begin(cmd);
tu_emit_subpass_begin<CHIP>(cmd);
@ -6155,6 +6156,7 @@ tu_CmdNextSubpass2(VkCommandBuffer commandBuffer,
TU_CMD_FLAG_WAIT_FOR_IDLE;
}
tu_fill_render_pass_state(&cmd->state.vk_rp, cmd->state.pass, new_subpass);
tu_emit_subpass_begin<CHIP>(cmd);
}
TU_GENX(tu_CmdNextSubpass2);