From d491a79027b175f2b13536b5db67b471ba58bd28 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Tue, 14 Oct 2025 21:08:27 -0400 Subject: [PATCH] tu: Don't patch GMEM for input attachments never in GMEM This can happen if we resolve to a resolve attachment and then use that resolve attachment as an input attachment in a later subpass. We don't need to put it in GMEM, but it's still considered "written" because input attachment reads need a dependency after the resolve. MSRTSS input attachment tests effectively created such a scenario after lowering to transient multisample attachments and inserting resolves. Cc: mesa-stable Part-of: --- src/freedreno/vulkan/tu_pass.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/freedreno/vulkan/tu_pass.cc b/src/freedreno/vulkan/tu_pass.cc index 8bc0901498b..3dfb3b70fba 100644 --- a/src/freedreno/vulkan/tu_pass.cc +++ b/src/freedreno/vulkan/tu_pass.cc @@ -425,7 +425,8 @@ tu_render_pass_patch_input_gmem(struct tu_render_pass *pass) written[a] = true; subpass->feedback_invalidate = true; } - subpass->input_attachments[j].patch_input_gmem = written[a]; + subpass->input_attachments[j].patch_input_gmem = + written[a] && pass->attachments[a].gmem; } for (unsigned j = 0; j < subpass->color_count; j++) {