From 7f6e28db26219c287096fcc45730881ef9e7a2f8 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 3 Mar 2025 11:23:57 +0100 Subject: [PATCH] radv: fix re-emitting fragment output state when resetting gfx pipeline state When switching from pipeline to shader objects. Cc: mesa-stable Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 92432de1ac6..5a9840b8664 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -13731,9 +13731,6 @@ radv_reset_pipeline_state(struct radv_cmd_buffer *cmd_buffer, VkPipelineBindPoin cmd_buffer->state.gs_copy_shader = NULL; cmd_buffer->state.last_vgt_shader = NULL; cmd_buffer->state.emitted_vs_prolog = NULL; - cmd_buffer->state.spi_shader_col_format = 0; - cmd_buffer->state.spi_shader_z_format = 0; - cmd_buffer->state.cb_shader_mask = 0; cmd_buffer->state.ms.sample_shading_enable = false; cmd_buffer->state.ms.min_sample_shading = 1.0f; cmd_buffer->state.rast_prim = 0; @@ -13748,6 +13745,14 @@ radv_reset_pipeline_state(struct radv_cmd_buffer *cmd_buffer, VkPipelineBindPoin cmd_buffer->state.dirty |= RADV_CMD_DIRTY_FRAMEBUFFER; } + if (cmd_buffer->state.spi_shader_col_format || cmd_buffer->state.spi_shader_z_format || + cmd_buffer->state.cb_shader_mask) { + cmd_buffer->state.spi_shader_col_format = 0; + cmd_buffer->state.spi_shader_z_format = 0; + cmd_buffer->state.cb_shader_mask = 0; + cmd_buffer->state.dirty |= RADV_CMD_DIRTY_FRAGMENT_OUTPUT; + } + cmd_buffer->state.uses_vrs = false; cmd_buffer->state.uses_vrs_coarse_shading = false;