From 404d2428094bc46ebefe8db1b4ed824a024ac48d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 11 Jun 2025 17:44:19 -0400 Subject: [PATCH] radeonsi: use shader_info::next_stage correctly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Separate shaders have next_stage == MESA_SHADER_NONE. Acked-by: Pierre-Eric Pelloux-Prayer Reviewed-by: Timur Kristóf Part-of: --- src/gallium/drivers/radeonsi/si_state_shaders.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp index c8cad0c9018..11950a543a1 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp +++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp @@ -3286,13 +3286,14 @@ static void si_parse_next_shader_property(nir_shader *nir, union si_shader_key * * assume that it's a HW LS. (the next shader is TCS) * This heuristic is needed for separate shader objects. */ - if (!writes_position && !nir->xfb_info) + if (next_shader == MESA_SHADER_NONE && !writes_position && !nir->xfb_info) key->ge.as_ls = 1; } break; case MESA_SHADER_TESS_EVAL: - if (next_shader == MESA_SHADER_GEOMETRY || !writes_position) + if (next_shader == MESA_SHADER_GEOMETRY || + (next_shader == MESA_SHADER_NONE && !writes_position)) key->ge.as_es = 1; break;