Mesa (master): glsl: look up for transform feedback varyings after linking

Juan Antonio Suárez Romero jasuarez at kemper.freedesktop.org
Wed Aug 2 08:07:03 UTC 2017


Module: Mesa
Branch: master
Commit: c4210dec8a8cc7ecf881cd537556e778ca967b18
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c4210dec8a8cc7ecf881cd537556e778ca967b18

Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date:   Thu Jul  6 08:35:37 2017 +0000

glsl: look up for transform feedback varyings after linking

Check if shaders have transform feedback varyings also after the
post-link step.

This fixes:
KHR-GL45.enhanced_layouts.xfb_vertex_streams
piglit/spec/arb_enhanced_layouts/gs-stream-location-aliasing

v2: add claryfing comments (Timothy)

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

---

 src/compiler/glsl/glsl_to_nir.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp
index 4b3dbcff17..331438a183 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -169,9 +169,16 @@ glsl_to_nir(const struct gl_shader_program *shader_prog,
    shader->info.name = ralloc_asprintf(shader, "GLSL%d", shader_prog->Name);
    if (shader_prog->Label)
       shader->info.label = ralloc_strdup(shader, shader_prog->Label);
+
+   /* Check for transform feedback varyings specified via the API */
    shader->info.has_transform_feedback_varyings =
       shader_prog->TransformFeedback.NumVarying > 0;
 
+   /* Check for transform feedback varyings specified in the Shader */
+   if (shader_prog->last_vert_prog)
+      shader->info.has_transform_feedback_varyings |=
+         shader_prog->last_vert_prog->sh.LinkedTransformFeedback->NumVarying > 0;
+
    return shader;
 }
 




More information about the mesa-commit mailing list