Kenneth Graunke <kenn...@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 <kenn...@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 <e...@anholt.net>

Attachment: pgpoUNKVnC2j8.pgp
Description: PGP signature

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

Reply via email to