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

Author: Marek Olšák <[email protected]>
Date:   Tue Sep 25 17:20:38 2012 +0200

r600g: fix RSQ of negative value on Cayman

NOTE: This is a candidate for the stable branches.

---

 src/gallium/drivers/r600/r600_shader.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_shader.c 
b/src/gallium/drivers/r600/r600_shader.c
index 6e47593..7df549b 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -1888,6 +1888,11 @@ static int cayman_emit_float_instr(struct 
r600_shader_ctx *ctx)
                alu.inst = ctx->inst_info->r600_opcode;
                for (j = 0; j < inst->Instruction.NumSrcRegs; j++) {
                        r600_bytecode_src(&alu.src[j], &ctx->src[j], 0);
+
+                       /* RSQ should take the absolute value of src */
+                       if (ctx->inst_info->tgsi_opcode == TGSI_OPCODE_RSQ) {
+                               r600_bytecode_src_set_abs(&alu.src[j]);
+                       }
                }
                tgsi_dst(ctx, &inst->Dst[0], i, &alu.dst);
                alu.dst.write = (inst->Dst[0].Register.WriteMask >> i) & 1;

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to