From 9351a4c51a928da641b830d1d36d02e5e8bd214e Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 10 Jan 2024 17:17:20 +0100 Subject: [PATCH] radv: re-emit the TCS epilog when a new TCS is bound Similarly to VS prologs and PS epilogs, this needs to be re-emitted otherwise the config shader state can be overwritten. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 0fe7c2a6e32..01d7252b296 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -6432,6 +6432,10 @@ radv_bind_tess_ctrl_shader(struct radv_cmd_buffer *cmd_buffer, const struct radv * bound because a bunch of parameters (user SGPRs, TCS vertices out, ccw, etc) can be different. */ cmd_buffer->state.dirty |= RADV_CMD_DIRTY_DYNAMIC_PATCH_CONTROL_POINTS | RADV_CMD_DIRTY_DYNAMIC_TESS_DOMAIN_ORIGIN; + + /* Re-emit the TCS epilog when a new tessellation control shader is bound. */ + if (tcs->info.has_epilog) + cmd_buffer->state.emitted_tcs_epilog = NULL; } static void