i965/fs: Stop using the LOAD_PAYLOAD instruction in lower_simd_width.
authorFrancisco Jerez <currojerez@riseup.net>
Wed, 4 May 2016 04:26:13 +0000 (21:26 -0700)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Mon, 16 May 2016 07:55:32 +0000 (09:55 +0200)
commit4d9c461e53440182de42d0a16ec66ad7f5c3b00a
treed5ec9e62d40aabc700c8fe42b30f078d7da70eb7
parent9149fd681735b02e421b8cd9e7cea92f039d8590
i965/fs: Stop using the LOAD_PAYLOAD instruction in lower_simd_width.

Instead of using the LOAD_PAYLOAD instruction (emitted through the
emit_transpose() helper that is no longer useful and this commit
removes) which had to be marked force_writemask_all in some cases,
emit a series of moves to apply proper channel enable signals to the
destination.  Until now lower_simd_width() had mainly been used to
lower things that invariably had a basic block-local temporary as
destination so it didn't seem like a big deal, but I found it to be
the reason for several Piglit regressions in my SIMD32 branch and
Igalia discovered the same issue independently while working on FP64
support.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs.cpp