From 195fbfb2f12e221c7e9f4658b8218c6c83ff7cd7 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 3 Mar 2026 17:07:11 +0200 Subject: [PATCH] anv: dirty all push constant stages in simple shader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Above we're reprogramming push constants as well at a couple of workarounds that require dirtying all stages. cmd_buffer->state.gfx.push_constant_stages was already set in the above function. Signed-off-by: Lionel Landwerlin Fixes: 4fa1eddb4c ("anv: optimize binding table flushing") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14953 Reviewed-by: Tapani Pälli (cherry picked from commit 38ef732169c2b154e4c57151485a84a9e11509fb) Part-of: --- .pick_status.json | 2 +- src/intel/vulkan/genX_simple_shader.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index c76e5e491fe..9a65720273c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3854,7 +3854,7 @@ "description": "anv: dirty all push constant stages in simple shader", "nominated": false, "nomination_type": 2, - "resolution": 4, + "resolution": 1, "main_sha": null, "because_sha": "4fa1eddb4cff78dcb04dc03425d77bd30f9daa3d", "notes": null diff --git a/src/intel/vulkan/genX_simple_shader.c b/src/intel/vulkan/genX_simple_shader.c index 8e0aa1ab801..a425592a626 100644 --- a/src/intel/vulkan/genX_simple_shader.c +++ b/src/intel/vulkan/genX_simple_shader.c @@ -390,7 +390,9 @@ genX(emit_simpler_shader_init_fragment)(struct anv_simple_shader *state) ANV_CMD_DIRTY_XFB_ENABLE | ANV_CMD_DIRTY_OCCLUSION_QUERY_ACTIVE | ANV_CMD_DIRTY_INDEX_TYPE); - state->cmd_buffer->state.push_constants_dirty |= VK_SHADER_STAGE_FRAGMENT_BIT; + /* We're reprogramming push constants and also + * Wa_22011440098/Wa_18022330953 force us to reprogram */ + state->cmd_buffer->state.push_constants_dirty |= VK_SHADER_STAGE_ALL_GRAPHICS; state->cmd_buffer->state.gfx.push_constant_stages = VK_SHADER_STAGE_FRAGMENT_BIT; }