diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2015-10-07 12:52:58 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2015-10-12 10:15:13 -0700 |
commit | 3524d6df33b1e3716992f9a555ffb0f7b1ae2f4f (patch) | |
tree | eb3243a2eb12298f8ce7b7bb4386758f98c865bb | |
parent | 5bc68f0f2b80b21997435742af74c49eb72891f7 (diff) |
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 <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Cc: "10.6 11.0" <mesa-stable@lists.freedesktop.org>
-rw-r--r-- | src/glsl/ast_to_hir.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index fdded1e5819..0f05cea5e28 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -3249,17 +3249,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; } } } |