From 3fffcb317c90b03cad733bca027ff2a978567306 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 9 Sep 2010 10:19:52 -0700 Subject: r300/compiler: Don't use presubtract in TEX instructions --- src/mesa/drivers/dri/r300/compiler/radeon_optimize.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/mesa') diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c index 88aac949a1..0c6b1bd720 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c @@ -192,7 +192,7 @@ static void copy_propagate(struct radeon_compiler * c, struct rc_instruction * i /* It is possible to do copy propigation in this situation, * just not right now, see peephole_add_presub_inv() */ if (inst_mov->U.I.PreSub.Opcode != RC_PRESUB_NONE && - info->NumSrcRegs > 2) { + (info->NumSrcRegs > 2 || info->HasTexture)) { return; } @@ -559,6 +559,11 @@ static int presub_helper( break; } + if (info->HasTexture) { + can_remove = 0; + break; + } + /* We can't use more than one presubtract value in an * instruction, unless the two prsubtract operations * are the same and read from the same registers. */ -- cgit v1.2.3