From 2d5b8efd7d26c836e46720f7b349994fe7be6ecd Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Wed, 7 Oct 2015 12:52:58 -0700 Subject: [PATCH] glsl: Only set ir_variable::constant_value for const-decorated variables Right now we're also setting for uniforms, and that doesn't seem to hurt things. The next patch will make general global variables in GLSL ES, and those definitely should not have constant_value set! Signed-off-by: Ian Romanick Reviewed-by: Matt Turner Cc: "10.6 11.0" (cherry picked from commit 3524d6df33b1e3716992f9a555ffb0f7b1ae2f4f) --- src/glsl/ast_to_hir.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 517841c99f8..8af37d1166d 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -3171,17 +3171,20 @@ process_initializer(ir_variable *var, ast_declaration *decl, decl->identifier); if (var->type->is_numeric()) { /* Reduce cascading errors. */ - var->constant_value = ir_constant::zero(state, var->type); + var->constant_value = type->qualifier.flags.q.constant + ? ir_constant::zero(state, var->type) : NULL; } } } else { rhs = constant_value; - var->constant_value = constant_value; + var->constant_value = type->qualifier.flags.q.constant + ? constant_value : NULL; } } else { if (var->type->is_numeric()) { /* Reduce cascading errors. */ - var->constant_value = ir_constant::zero(state, var->type); + var->constant_value = type->qualifier.flags.q.constant + ? ir_constant::zero(state, var->type) : NULL; } } }