From 1714e0c240a59777fae371eeaa7e38fda5e59e14 Mon Sep 17 00:00:00 2001 From: Mark Collins Date: Fri, 1 Dec 2023 20:30:52 +0000 Subject: [PATCH] tu: Fix 2D blit path for GMEM stores on A7XX These were broken due to the new window offset register not being set for every tile, even with this the 2D blit path is broken for MSAA D24S8 resolves but since outside of FDM that should be handled by the event blit path it's not a major concern but should be fixed. Signed-off-by: Mark Collins Part-of: --- src/freedreno/vulkan/tu_clear_blit.cc | 1 + src/freedreno/vulkan/tu_cmd_buffer.cc | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/freedreno/vulkan/tu_clear_blit.cc b/src/freedreno/vulkan/tu_clear_blit.cc index ad15f00b2db..70a8b0faa51 100644 --- a/src/freedreno/vulkan/tu_clear_blit.cc +++ b/src/freedreno/vulkan/tu_clear_blit.cc @@ -4025,6 +4025,7 @@ tu_store_gmem_attachment(struct tu_cmd_buffer *cmd, } } } else { + /* A7XX TODO: Fix D24S8 MSAA resolves using the 2D blits */ if (!cmd->state.pass->has_fdm) { r2d_coords(cmd, cs, render_area->offset, render_area->offset, render_area->extent); diff --git a/src/freedreno/vulkan/tu_cmd_buffer.cc b/src/freedreno/vulkan/tu_cmd_buffer.cc index 632272a78d3..590e01969c8 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.cc +++ b/src/freedreno/vulkan/tu_cmd_buffer.cc @@ -681,6 +681,9 @@ tu6_emit_window_offset(struct tu_cs *cs, uint32_t x1, uint32_t y1) tu_cs_emit_regs(cs, A6XX_SP_TP_WINDOW_OFFSET(.x = x1, .y = y1)); + + tu_cs_emit_regs(cs, + A7XX_SP_PS_2D_WINDOW_OFFSET(.x = x1, .y = y1)); } void