From 6d6fdad685e04876289ccf7e3051a2d9617af487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 5 Jul 2025 04:07:25 -0400 Subject: [PATCH] glsl: only set has_transform_feedback_varyings for the last pre-FS shader I don't think this should be set for all shaders. Also simplify it. Reviewed-by: Alyssa Rosenzweig Reviewed-by: Timothy Arceri Part-of: --- src/compiler/glsl/gl_nir_link_varyings.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/compiler/glsl/gl_nir_link_varyings.c b/src/compiler/glsl/gl_nir_link_varyings.c index 6199c22f634..ddc6c605952 100644 --- a/src/compiler/glsl/gl_nir_link_varyings.c +++ b/src/compiler/glsl/gl_nir_link_varyings.c @@ -4557,19 +4557,9 @@ link_varyings(struct gl_shader_program *prog, unsigned first, assert(prog->data->LinkStatus != LINKING_FAILURE); - for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) { - if (!prog->_LinkedShaders[i]) - continue; - - /* Check for transform feedback varyings specified via the API */ - prog->_LinkedShaders[i]->Program->nir->info.has_transform_feedback_varyings = - prog->TransformFeedback.NumVarying > 0; - - /* Check for transform feedback varyings specified in the Shader */ - if (prog->last_vert_prog) { - prog->_LinkedShaders[i]->Program->nir->info.has_transform_feedback_varyings |= - prog->last_vert_prog->sh.LinkedTransformFeedback->NumVarying > 0; - } + if (prog->last_vert_prog) { + prog->last_vert_prog->nir->info.has_transform_feedback_varyings |= + num_xfb_decls > 0; } /* Assign NIR XFB info to the last stage before the fragment shader */