Mesa (glsl2): glsl2: Don' t consider uniform initializers as constant expressions.
Eric Anholt
anholt at kemper.freedesktop.org
Tue Aug 3 00:51:21 UTC 2010
Module: Mesa
Branch: glsl2
Commit: 5704ed27dd2ebc88639cbd32ac971939ef3c267a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5704ed27dd2ebc88639cbd32ac971939ef3c267a
Author: Eric Anholt <eric at anholt.net>
Date: Mon Aug 2 15:31:28 2010 -0700
glsl2: Don't consider uniform initializers as constant expressions.
We were happily optimizing away the body of
glsl-uniform-initializer-* to never use the uniforms.
---
src/glsl/ir_constant_expression.cpp | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/glsl/ir_constant_expression.cpp b/src/glsl/ir_constant_expression.cpp
index f02cd31..915d362 100644
--- a/src/glsl/ir_constant_expression.cpp
+++ b/src/glsl/ir_constant_expression.cpp
@@ -674,6 +674,12 @@ ir_dereference_variable::constant_expression_value()
if (!var)
return NULL;
+ /* The constant_value of a uniform variable is its initializer,
+ * not the lifetime constant value of the uniform.
+ */
+ if (var->mode == ir_var_uniform)
+ return NULL;
+
return var->constant_value ? var->constant_value->clone(NULL) : NULL;
}
More information about the mesa-commit
mailing list