Mesa (master): i965/vs: Don't copy propagate into SEND-from-GRF messages.

Kenneth Graunke kwg at kemper.freedesktop.org
Mon Dec 2 21:25:10 UTC 2013


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Sun Dec 16 00:40:30 2012 -0800

i965/vs: Don't copy propagate into SEND-from-GRF messages.

SEND can't deal with swizzles, source modifiers, and so on.  This should
avoid problems with VS pull constant loads on Broadwell.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 .../drivers/dri/i965/brw_vec4_copy_propagation.cpp |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
index 033c642..06f0e99 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp
@@ -238,6 +238,9 @@ vec4_visitor::try_copy_propagation(vec4_instruction *inst, int arg,
    if (is_3src_inst && value.file == UNIFORM)
       return false;
 
+   if (inst->is_send_from_grf())
+      return false;
+
    /* We can't copy-propagate a UD negation into a condmod
     * instruction, because the condmod ends up looking at the 33-bit
     * signed accumulator value instead of the 32-bit value we wanted




More information about the mesa-commit mailing list