From 185422339afef1c366b5e966ff9ec072fd08a315 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Tue, 19 Mar 2013 22:39:31 -0400 Subject: [PATCH] r300g: Fix OMOD bug --- .../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; -- 1.7.3.4