i965/vs: Store texturing results into a vec4 temporary.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 17 Jan 2013 04:24:13 +0000 (20:24 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 30 Jan 2013 20:15:38 +0000 (12:15 -0800)
commitbc7112746d4663b814aab018c8c1fb97af03fb42
tree63e2b5e47ee58fb98956e1294a1c9d465d96e9e4
parent29bc8e7d8f166ae09edb8efda0b8c3bd8b7b7321
i965/vs: Store texturing results into a vec4 temporary.

The sampler appears to ignore writemasks (even when correcting the
WRITEMASK_XYZW in brw_vec4_emit.cpp to the proper writemask) and just
always writes all four values.

To cope with this, just texture into a temporary, then MOV out into a
register that has the proper number of components.

NOTE: This is a candidate for stable branches.

Fixes es3conform's shadow_execution_vert.test.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <idr@freedesktop.org>
(cherry picked from commit f0dbd9255b5813d1567e1f09266f80e35dcbeb70)
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp