summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_constant_expression.cpp
diff options
context:
space:
mode:
authorPaul Berry <stereotype441@gmail.com>2012-06-13 15:48:56 -0700
committerPaul Berry <stereotype441@gmail.com>2012-06-15 08:58:55 -0700
commit613a8170ae53091d516f602d091a6bbcd169e92f (patch)
tree7c9bb8f5fb9d4bb555b329bc0d28918d998f2990 /src/glsl/ir_constant_expression.cpp
parent8e31f961e6cfd9680b33647c053b0f708abb8a18 (diff)
downloadexternal_mesa3d-613a8170ae53091d516f602d091a6bbcd169e92f.zip
external_mesa3d-613a8170ae53091d516f602d091a6bbcd169e92f.tar.gz
external_mesa3d-613a8170ae53091d516f602d091a6bbcd169e92f.tar.bz2
glsl: Add support for ir_unop_f2u to constant folding.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/glsl/ir_constant_expression.cpp')
-rw-r--r--src/glsl/ir_constant_expression.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/glsl/ir_constant_expression.cpp b/src/glsl/ir_constant_expression.cpp
index 38a1ed9..17b54b9 100644
--- a/src/glsl/ir_constant_expression.cpp
+++ b/src/glsl/ir_constant_expression.cpp
@@ -182,6 +182,12 @@ ir_expression::constant_expression_value(struct hash_table *variable_context)
data.i[c] = (int) op[0]->value.f[c];
}
break;
+ case ir_unop_f2u:
+ assert(op[0]->type->base_type == GLSL_TYPE_FLOAT);
+ for (unsigned c = 0; c < op[0]->type->components(); c++) {
+ data.i[c] = (unsigned) op[0]->value.f[c];
+ }
+ break;
case ir_unop_i2f:
assert(op[0]->type->base_type == GLSL_TYPE_INT);
for (unsigned c = 0; c < op[0]->type->components(); c++) {