From b2ee5a08bae6cdbbdafc1f1d9d6f3afbad2f7944 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 23 Apr 2012 16:10:12 -0700 Subject: [PATCH] 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 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index e24914b832a..86bb8741bcc 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)) { -- 2.30.2