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

Author: Christian König <deathsim...@vodafone.de>
Date:   Tue Dec 14 19:32:08 2010 +0100

r600g: DP4 also supports writemasking

---

 src/gallium/drivers/r600/r600_shader.c |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_shader.c 
b/src/gallium/drivers/r600/r600_shader.c
index 268a633..59c080f 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -1668,15 +1668,13 @@ static int tgsi_dp(struct r600_shader_ctx *ctx)
                        alu.src[j] = r600_src[j];
                        alu.src[j].chan = tgsi_chan(&inst->Src[j], i);
                }
-               if(inst->Dst[0].Register.WriteMask & (1 << i)) {
-                       r = tgsi_dst(ctx, &inst->Dst[0], i, &alu.dst);
-                       if (r)
-                               return r;
-               } else {
-                       alu.dst.sel = ctx->temp_reg;
-               }
+
+               r = tgsi_dst(ctx, &inst->Dst[0], i, &alu.dst);
+               if (r)
+                       return r;
+
                alu.dst.chan = i;
-               alu.dst.write = 1;
+               alu.dst.write = (inst->Dst[0].Register.WriteMask >> i) & 1;
                /* handle some special cases */
                switch (ctx->inst_info->tgsi_opcode) {
                case TGSI_OPCODE_DP2:

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

Reply via email to