summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2010-10-14 13:37:03 -0700
committerKenneth Graunke <kenneth@whitecape.org>2010-10-14 15:59:47 -0700
commitd85d25dd1f4fd281bd210ba6ba5135ba1e3b535f (patch)
tree9d2af431818f346d1df9c0701737577e5e24da16 /src
parent510c503762a228db2b3d6804f5f5c7af9be1a920 (diff)
glsl: Add a new ir_unop_round_even opcode for GLSL 1.30's roundEven.
Also, update ir_to_mesa's "1.30 is unsupported" case to "handle" it.
Diffstat (limited to 'src')
-rw-r--r--src/glsl/ir.cpp2
-rw-r--r--src/glsl/ir.h1
-rw-r--r--src/mesa/program/ir_to_mesa.cpp1
3 files changed, 4 insertions, 0 deletions
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
index fd1c5d9071..87e78eee05 100644
--- a/src/glsl/ir.cpp
+++ b/src/glsl/ir.cpp
@@ -216,6 +216,7 @@ ir_expression::get_num_operands(ir_expression_operation op)
1, /* ir_unop_ceil */
1, /* ir_unop_floor */
1, /* ir_unop_fract */
+ 1, /* ir_unop_round_even */
1, /* ir_unop_sin */
1, /* ir_unop_cos */
@@ -288,6 +289,7 @@ static const char *const operator_strs[] = {
"ceil",
"floor",
"fract",
+ "round_even",
"sin",
"cos",
"dFdx",
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index 3503bc9c89..06198e4f3f 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -700,6 +700,7 @@ enum ir_expression_operation {
ir_unop_ceil,
ir_unop_floor,
ir_unop_fract,
+ ir_unop_round_even,
/*@}*/
/**
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index cd609653fb..524130ca59 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -1130,6 +1130,7 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
case ir_binop_bit_and:
case ir_binop_bit_xor:
case ir_binop_bit_or:
+ case ir_unop_round_even:
assert(!"GLSL 1.30 features unsupported");
break;
}