[Mesa-dev] [PATCH] i965/fs: Don't rewrite texture message destinations to avoid MOVs.
Eric Anholt
eric at anholt.net
Mon Feb 13 17:44:56 PST 2012
On Sun, 12 Feb 2012 23:29:14 -0800, Kenneth Graunke <kenneth at 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 texturing operations, as they
> return a set of four contiguous registers. Consider the following:
>
> SEND g7 ...
> MOV g15 g7
> ADD g8 1.0
>
> Upon seeing the MOV, we would rewrite the SEND to write to g15 (and
> implicitly g16, g17, and g18), causing the next instruction that
> references g8 to read garbage.
>
> The VS does not need texturing workarounds because sampler results fit
> in a single register in SIMD4x2 mode.
I'm not following something. I don't see how last_rhs_inst->is_tex(),
but this code somehow sees a MOV. Could you paste some annotated WM
before/after code?
I am slightly worried that this code could get confused by the MOV
sequence of texture swizzling -- that src.equals(last_rhs_inst->dst),
but the instruction in question isn't filling the entirety of that
virtual GRF.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20120213/fb3feeab/attachment.pgp>
More information about the mesa-dev
mailing list