From 0017b9e8ed01174b1f033a2d042a65b96c2203c9 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Tue, 25 Mar 2025 10:44:51 -0400 Subject: [PATCH] tu: Make sure to re-emit viewports if per_view_viewport changes We may need to re-emit the viewports if a different shader is bound that does or doesn't use gl_ViewportIndex. Cc: mesa-stable Part-of: --- src/freedreno/vulkan/tu_pipeline.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/freedreno/vulkan/tu_pipeline.cc b/src/freedreno/vulkan/tu_pipeline.cc index 74fc239a694..a192c16b5bd 100644 --- a/src/freedreno/vulkan/tu_pipeline.cc +++ b/src/freedreno/vulkan/tu_pipeline.cc @@ -3891,7 +3891,9 @@ tu_emit_draw_state(struct tu_cmd_buffer *cmd) dirty_draw_states |= (1u << id); \ } #define DRAW_STATE_FDM(name, id, ...) \ - if ((EMIT_STATE(name) || (cmd->state.dirty & TU_CMD_DIRTY_FDM)) && \ + if ((EMIT_STATE(name) || (cmd->state.dirty & \ + (TU_CMD_DIRTY_FDM | \ + TU_CMD_DIRTY_PER_VIEW_VIEWPORT))) && \ !(cmd->state.pipeline_draw_states & (1u << id))) { \ if (cmd->state.shaders[MESA_SHADER_FRAGMENT]->fs.has_fdm) { \ tu_cs_set_writeable(&cmd->sub_cs, true); \