Module: Mesa
Branch: 7.9
Commit: 90292b8001ad55995aef6581fe27637fb8983973
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=90292b8001ad55995aef6581fe27637fb8983973

Author: Marek Olšák <mar...@gmail.com>
Date:   Sat Mar 12 06:07:24 2011 +0100

r300/compiler: fix the saturate modifier when applied to TEX instructions

This bug can only be triggered if the source texture is either signed or float.
(cherry picked from commit e4707604ab46252d2e010906124775d3300f0be1)

---

 .../drivers/dri/r300/compiler/radeon_program_tex.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c 
b/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c
index 6c3ce6c..37f6def 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_program_tex.c
@@ -401,17 +401,21 @@ int radeonTransformTEX(
                }
        }
 
-       /* Cannot write texture to output registers (all chips) or with masks 
(non-r500) */
+       /* Cannot write texture to output registers or with saturate (all 
chips),
+        * or with masks (non-r500). */
        if (inst->U.I.Opcode != RC_OPCODE_KIL &&
                (inst->U.I.DstReg.File != RC_FILE_TEMPORARY ||
+                inst->U.I.SaturateMode ||
                 (!c->is_r500 && inst->U.I.DstReg.WriteMask != RC_MASK_XYZW))) {
                struct rc_instruction * inst_mov = rc_insert_new_instruction(c, 
inst);
 
                inst_mov->U.I.Opcode = RC_OPCODE_MOV;
+               inst_mov->U.I.SaturateMode = inst->U.I.SaturateMode;
                inst_mov->U.I.DstReg = inst->U.I.DstReg;
                inst_mov->U.I.SrcReg[0].File = RC_FILE_TEMPORARY;
                inst_mov->U.I.SrcReg[0].Index = rc_find_free_temporary(c);
 
+               inst->U.I.SaturateMode = 0;
                inst->U.I.DstReg.File = RC_FILE_TEMPORARY;
                inst->U.I.DstReg.Index = inst_mov->U.I.SrcReg[0].Index;
                inst->U.I.DstReg.WriteMask = RC_MASK_XYZW;

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to