Iago Toral Quiroga <ito...@igalia.com> writes:

> The dst is always written, in this case the predicate is only used to select
> the value to write, so if we are spilling the dst we always want to write
> whatever value we selected to scratch.
> ---
>  src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp 
> b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
> index c5c0d2c..ba352be 100644
> --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
> @@ -3482,7 +3482,8 @@ vec4_visitor::emit_scratch_write(bblock_t *block, 
> vec4_instruction *inst,
>     dst_reg dst = dst_reg(brw_writemask(brw_vec8_grf(0, 0),
>                                      inst->dst.writemask));
>     vec4_instruction *write = SCRATCH_WRITE(dst, temp, index);
> -   write->predicate = inst->predicate;
> +   if (inst->opcode != BRW_OPCODE_SEL)
> +      write->predicate = inst->predicate;
>     write->ir = inst->ir;
>     write->annotation = inst->annotation;
>     inst->insert_after(block, write);
> -- 
> 1.9.1

Reviewed-by: Francisco Jerez <curroje...@riseup.net>

Attachment: signature.asc
Description: PGP signature

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

Reply via email to