From 3022282ba30633cc3d4e25b2c01facbee9a7189d Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 13 Sep 2024 09:19:56 +0200 Subject: [PATCH] radv: make sure to re-emit shader query state when a task shader is bound This doesn't change anything in practice because if we have a task shader, we also have a mesh shader and the state was already re-emitted. Though, this will prevent a regression from the upcoming patches because the user SGPR layout will change. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index d803ca3e2db..38fcfbc3147 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -7904,6 +7904,11 @@ radv_bind_task_shader(struct radv_cmd_buffer *cmd_buffer, const struct radv_shad if (!radv_gang_init(cmd_buffer)) return; + if (radv_get_user_sgpr_info(ts, AC_UD_SHADER_QUERY_STATE)->sgpr_idx != -1) { + /* Re-emit shader query state when SGPR exists but location potentially changed. */ + cmd_buffer->state.dirty |= RADV_CMD_DIRTY_SHADER_QUERY; + } + cmd_buffer->task_rings_needed = true; }