summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-07-02 17:02:42 -0700
committerEric Anholt <eric@anholt.net>2010-07-02 17:06:32 -0700
commitb0ac07e3de8d9609fb0b1b7ec85b4149c4ee2c70 (patch)
treea901dcd518e9d2b8eb993f49237797fab21e209a /src
parent4e7d5d0e74c26cac182cea1be0f6b79bb664ad8c (diff)
ir_to_mesa: Fix up implementation of ir_unop_exp.
OPCODE_EXP is not to ir_unop_exp what OPCODE_EX2 is to ir_unop_exp2. It's the weird VP approximation helper opcode. Just implement it with OPCODE_POW instead. Fixes glsl-fs-exp.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/shader/ir_to_mesa.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/shader/ir_to_mesa.cpp b/src/mesa/shader/ir_to_mesa.cpp
index f8858af26d..87d6f8452a 100644
--- a/src/mesa/shader/ir_to_mesa.cpp
+++ b/src/mesa/shader/ir_to_mesa.cpp
@@ -625,7 +625,8 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
break;
case ir_unop_exp:
- ir_to_mesa_emit_scalar_op1(ir, OPCODE_EXP, result_dst, op[0]);
+ ir_to_mesa_emit_scalar_op2(ir, OPCODE_POW, result_dst,
+ src_reg_for_float(M_E), op[0]);
break;
case ir_unop_exp2:
ir_to_mesa_emit_scalar_op1(ir, OPCODE_EX2, result_dst, op[0]);