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