intel/fs/gen12: Fix hangs with per-sample SIMD32 fragment shader dispatch.
authorFrancisco Jerez <currojerez@riseup.net>
Wed, 8 Apr 2020 00:22:10 +0000 (17:22 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Wed, 29 Apr 2020 06:00:28 +0000 (23:00 -0700)
commitd6ae079771bc8f5ae3a9e8a333c50a6cacb7a77c
treecbd50b3997a2794cef9f9671c21894abce18fc4e
parent35ee6b3d361b13c6380cf357ef05c9681639cfc1
intel/fs/gen12: Fix hangs with per-sample SIMD32 fragment shader dispatch.

The Gen12 docs are rather contradictory regarding the dispatch
configurations supported by the fragment shader -- The same table
present in previous generations seems to imply that only one dispatch
mode can be enabled when doing per-sample shading, but a restriction
documented in the 3DSTATE_PS_BODY page implies the opposite: That
SIMD32 can only be used in combination with some other dispatch mode.

The latter seems to match the behavior of real hardware as I could
tell from my testing: A bunch of multisample test-cases that do
per-sample shading hang if we only provide a SIMD32 shader.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/compiler/brw_fs.cpp