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

Author: Tom Stellard <tstel...@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. */

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

Reply via email to