i965/fs: Don't attempt to copy the useless half of oMask for SIMD8 FB writes.
authorFrancisco Jerez <currojerez@riseup.net>
Wed, 15 Jul 2015 14:31:04 +0000 (17:31 +0300)
committerFrancisco Jerez <currojerez@riseup.net>
Wed, 29 Jul 2015 11:12:47 +0000 (14:12 +0300)
commit98b0122e0a194e0d6c5d3eb05fd3f29a5286b3b3
tree6f7206fcc41c9d7c6d1df7ccd89dcaf138617bd2
parentb1abfc49476f0277ddee0df269b56fc3de714c4b
i965/fs: Don't attempt to copy the useless half of oMask for SIMD8 FB writes.

There's no need to initialize the wrong half of oMask in the payload
when we're doing an 8-wide framebuffer write because it will be
ignored by the hardware anyway.  By doing it this way we can let the
SIMD lowering pass split the sample_mask source as a regular
per-channel source, otherwise we would have to introduce some sort of
per-instruction source query or use fs_inst::header_size for the
lowering pass to be able to find out whether some source is
header-like, and leave the source untouched in that case.

As a bonus this achieves the same purpose as the previous code without
making use of the SET_OMASK pseudo-instruction, which will be removed
in a future commit.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp