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

Author: Tom Stellard <thomas.stell...@amd.com>
Date:   Tue Mar 19 22:39:31 2013 -0400

r300g: Fix bug in OMOD optimization

https://bugs.freedesktop.org/show_bug.cgi?id=60503

NOTE: This is a candidate for the stable branches.

---

 .../drivers/r300/compiler/radeon_optimize.c        |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r300/compiler/radeon_optimize.c 
b/src/gallium/drivers/r300/compiler/radeon_optimize.c
index b626e33..3bbfe89 100644
--- a/src/gallium/drivers/r300/compiler/radeon_optimize.c
+++ b/src/gallium/drivers/r300/compiler/radeon_optimize.c
@@ -725,6 +725,7 @@ static int peephole_mul_omod(
        struct rc_list * writer_list;
        struct rc_variable * var;
        struct peephole_mul_cb_data cb_data;
+       unsigned writemask_sum;
 
        for (i = 0; i < 2; i++) {
                unsigned int j;
@@ -832,10 +833,11 @@ static int peephole_mul_omod(
        }
 
        /* Rewrite the instructions */
+       writemask_sum = rc_variable_writemask_sum(writer_list->Item);
        for (var = writer_list->Item; var; var = var->Friend) {
                struct rc_variable * writer = var;
                unsigned conversion_swizzle = rc_make_conversion_swizzle(
-                                       writer->Inst->U.I.DstReg.WriteMask,
+                                       writemask_sum,
                                        inst_mul->U.I.DstReg.WriteMask);
                writer->Inst->U.I.Omod = omod_op;
                writer->Inst->U.I.DstReg.File = inst_mul->U.I.DstReg.File;

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

Reply via email to