[Mesa-dev] [PATCH 15/15] i965/vs: Don't copy propagate into SEND-from-GRF messages.

Eric Anholt eric at anholt.net
Tue Nov 19 12:15:19 PST 2013


Kenneth Graunke <kenneth at whitecape.org> writes:

> 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>
> ---
>  src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp | 3 +++
>  1 file changed, 3 insertions(+)
>
> 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 d009a08..8948223 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

I was worried that we would miss out on cases where doing a copy
propagated .xxxx swizzle is fine because the send doesn't actually care
about the other channels.  But there's no effect on shader-db, so:

Reviewed-by: Eric Anholt <eric at anholt.net>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131119/635d05bd/attachment.pgp>


More information about the mesa-dev mailing list