Mesa (master): glsl: remove stage ref generation for transform feedback

Timothy Arceri tarceri at kemper.freedesktop.org
Fri Aug 7 00:20:18 UTC 2015


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

Author: Timothy Arceri <t_arceri at yahoo.com.au>
Date:   Wed Aug  5 21:05:52 2015 +1000

glsl: remove stage ref generation for transform feedback

Stage ref cannot be queried for transform feedback.

Also simplify the build_stageref function by passing the
correct mode for uniforms.

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

---

 src/glsl/linker.cpp |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index e2da0af..d7efea5 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -3136,7 +3136,7 @@ build_stageref(struct gl_shader_program *shProg, const char *name,
             /* Type needs to match if specified, otherwise we might
              * pick a variable with same name but different interface.
              */
-            if (mode != 0 && var->data.mode != mode)
+            if (var->data.mode != mode)
                continue;
 
             if (strncmp(var->name, name, baselen) == 0) {
@@ -3248,12 +3248,9 @@ build_program_resource_list(struct gl_context *ctx,
    /* Add transform feedback varyings. */
    if (shProg->LinkedTransformFeedback.NumVarying > 0) {
       for (int i = 0; i < shProg->LinkedTransformFeedback.NumVarying; i++) {
-         uint8_t stageref =
-            build_stageref(shProg,
-                           shProg->LinkedTransformFeedback.Varyings[i].Name, 0);
          if (!add_program_resource(shProg, GL_TRANSFORM_FEEDBACK_VARYING,
                                    &shProg->LinkedTransformFeedback.Varyings[i],
-                                   stageref))
+                                   0))
          return;
       }
    }
@@ -3265,7 +3262,8 @@ build_program_resource_list(struct gl_context *ctx,
          continue;
 
       uint8_t stageref =
-         build_stageref(shProg, shProg->UniformStorage[i].name, 0);
+         build_stageref(shProg, shProg->UniformStorage[i].name,
+                        ir_var_uniform);
 
       /* Add stagereferences for uniforms in a uniform block. */
       int block_index = shProg->UniformStorage[i].block_index;




More information about the mesa-commit mailing list