Mesa (glsl2): ir_to_mesa: Fix up implementation of ir_unop_exp.

Eric Anholt anholt at kemper.freedesktop.org
Sat Jul 3 00:08:37 UTC 2010


Module: Mesa
Branch: glsl2
Commit: b0ac07e3de8d9609fb0b1b7ec85b4149c4ee2c70
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b0ac07e3de8d9609fb0b1b7ec85b4149c4ee2c70

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul  2 17:02:42 2010 -0700

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.

---

 src/mesa/shader/ir_to_mesa.cpp |    3 ++-
 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 f8858af..87d6f84 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]);




More information about the mesa-commit mailing list