i965/vs: Don't copy propagate into SEND-from-GRF messages.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 16 Dec 2012 08:40:30 +0000 (00:40 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 2 Dec 2013 21:10:12 +0000 (13:10 -0800)
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@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp

index 033c6421f1f3b2e2d2ea7739f61c4380fb79e193..06f0e999ecf97044254c270abad6e5edf8891318 100644 (file)
@@ -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