On Tue, 14 Feb 2012 12:43:22 -0800, Kenneth Graunke <kenn...@whitecape.org> 
wrote:
> Commit dc7f449d1ac53a66e6efb56ccf2a5953418a26ca introduced a new method
> for avoiding MOVs: try to rewrite the destination of the instruction
> that produced the RHS so it writes into the LHS.
> 
> Unfortunately, this is not safe for swizzled texturing operations, as
> they return a set of four contiguous registers.  Consider the following:
> 
> (assign (x)
>         (var_ref vec_ctor_x)
>         (swiz x (tex vec4 (var_ref m_sampY) (var_ref m_cordY) 0 1 ())))
> 
> In this case, the source and destination registers are equal, since
> reg_offset is 0 for both.  Yet, this is only a partial move: the texture
> operation generates four registers, and the LHS only covers one.
> 
> Fixes color distortion in XBMC when using GLSL shaders.
> 
> NOTE: This is a candidate for the 8.0 branch (with the previous commit).

Nice!  Series is

Reviewed-by: Eric Anholt <e...@anholt.net>

Attachment: pgpnitHYmBjux.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