Mesa (master): glsl: Don' t consider unused FS out variables as being statically assigned.

Eric Anholt anholt at kemper.freedesktop.org
Fri May 4 21:21:28 UTC 2012


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Apr 23 16:10:12 2012 -0700

glsl: Don't consider unused FS out variables as being statically assigned.

I only considered var->assigned for FragColor and FragData, but
ignored when it was false for out vars.  Fixes piglit
write-gl_FragColor-and-not-user-output.frag

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49068

---

 src/glsl/ast_to_hir.cpp |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index e24914b..86bb874 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -4039,13 +4039,13 @@ detect_conflicting_assignments(struct _mesa_glsl_parse_state *state,
    foreach_list(node, instructions) {
       ir_variable *var = ((ir_instruction *)node)->as_variable();
 
-      if (!var)
+      if (!var || !var->assigned)
 	 continue;
 
       if (strcmp(var->name, "gl_FragColor") == 0)
-	 gl_FragColor_assigned = var->assigned;
+	 gl_FragColor_assigned = true;
       else if (strcmp(var->name, "gl_FragData") == 0)
-	 gl_FragData_assigned = var->assigned;
+	 gl_FragData_assigned = true;
       else if (strncmp(var->name, "gl_", 3) != 0) {
 	 if (state->target == fragment_shader &&
 	     (var->mode == ir_var_out || var->mode == ir_var_inout)) {




More information about the mesa-commit mailing list