glsl2: When linking makes a variable not a varying output, make it ir_var_auto.
authorEric Anholt <eric@anholt.net>
Tue, 13 Jul 2010 18:07:16 +0000 (11:07 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 13 Jul 2010 18:07:16 +0000 (11:07 -0700)
This almost fixes glsl-unused-varying, except that the used varying
gets assigned to the first varying slot (position).

src/glsl/linker.cpp

index 90dc97bc53537f5651a3a0c60149533bafe81428..c71c07d6e97fef3912f62757e2ebc6a9bbdc4f0a 100644 (file)
@@ -1052,7 +1052,10 @@ assign_varying_locations(gl_shader *producer, gl_shader *consumer)
       /* An 'out' variable is only really a shader output if its value is read
        * by the following stage.
        */
-      var->shader_out = (var->location != -1);
+      if (var->location == -1) {
+        var->shader_out = false;
+        var->mode = ir_var_auto;
+      }
    }
 
    foreach_list(node, consumer->ir) {