Mesa (master): r300/compiler: Don't use presubtract in TEX instructions
Tom Stellard
tstellar at kemper.freedesktop.org
Sat Sep 11 02:54:10 UTC 2010
Module: Mesa
Branch: master
Commit: 3fffcb317c90b03cad733bca027ff2a978567306
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3fffcb317c90b03cad733bca027ff2a978567306
Author: Tom Stellard <tstellar at gmail.com>
Date: Thu Sep 9 10:19:52 2010 -0700
r300/compiler: Don't use presubtract in TEX instructions
---
.../drivers/dri/r300/compiler/radeon_optimize.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c
index 88aac94..0c6b1bd 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. */
More information about the mesa-commit
mailing list