i965/fs: Lower 32-wide scratch writes in the generator.
authorFrancisco Jerez <currojerez@riseup.net>
Sat, 28 May 2016 06:29:02 +0000 (23:29 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Sat, 28 May 2016 06:29:02 +0000 (23:29 -0700)
commit1e3c58ffaf35c6d37284b53c7b742c1bf7f2e67c
tree5ebdad6fc84e76fe1138445ff71610dd99bdb2df
parenta7d319c00be425be219a101b5b4d48f1cbe4ec01
i965/fs: Lower 32-wide scratch writes in the generator.

The hardware has messages that can write 32 32bit components at once
but the channel enable mask gets messed up.  We need to split them
into several 16-wide scratch writes for the channel enables to be
applied correctly.  The SIMD lowering pass cannot be used for this
because scratch writes are emitted rather late during register
allocation long after SIMD lowering has been done.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_fs_generator.cpp