i965/fs: Relax fs_builder channel group assertion when force_writemask_all is on.
authorFrancisco Jerez <currojerez@riseup.net>
Tue, 30 Jun 2015 12:15:44 +0000 (15:15 +0300)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 1 Jul 2015 16:24:46 +0000 (09:24 -0700)
commitdabec9c293ee29335f5a6d5d1d3c2b7a715605c1
tree8d7c33caf84e0289dad73af1bf7b03c3bde22d90
parent8276ba260e5500664b8d8748f3224f73ef221887
i965/fs: Relax fs_builder channel group assertion when force_writemask_all is on.

This assertion was meant to catch code inadvertently escaping the
control flow jail determined by the group of channel enable signals
selected by some caller, however it seems useful to be able to
increase the default execution size as long as force_writemask_all is
enabled, because force_writemask_all is an explicit indication that
there is no longer a one-to-one correspondence between channels and
SIMD components so the restriction doesn't apply.

In addition reorder the calls to fs_builder::group and ::exec_all in a
couple of places to make sure that we don't temporarily break this
invariant in the future for instructions with exec_size higher than
the dispatch width.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs_builder.h
src/mesa/drivers/dri/i965/brw_fs_cse.cpp