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>
pgpnitHYmBjux.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev