Module: Mesa Branch: 7.9 Commit: 930c168df600a745f1b0977e4a2355a1c26a91e7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=930c168df600a745f1b0977e4a2355a1c26a91e7
Author: Tom Stellard <tstel...@gmail.com> Date: Mon Nov 22 12:00:10 2010 -0800 r300/compiler: Use correct swizzles for all presubtract sources --- .../drivers/dri/r300/compiler/radeon_optimize.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c index 423ebbf..bebe806 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c @@ -566,6 +566,7 @@ static int presub_helper( for(i = 0; i < info->NumSrcRegs; i++) { unsigned int mask = src_reads_dst_mask( inst->U.I.SrcReg[i], s->Inst->U.I.DstReg); + struct rc_src_register src = inst->U.I.SrcReg[i]; /* XXX We could be more aggressive here using * presubtract. It is okay if SrcReg[i] only reads * from some of the mask components. */ @@ -577,6 +578,11 @@ static int presub_helper( continue; } } + src.File = RC_FILE_PRESUB; + if (!c->SwizzleCaps->IsNative(inst->U.I.Opcode, src)){ + can_remove = 0; + break; + } if (cant_sub || !can_use_presub) { can_remove = 0; break; _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit