intel/fs: Make per-sample and coarse dispatch tri-state
authorJason Ekstrand <jason@jlekstrand.net>
Fri, 19 Nov 2021 22:32:24 +0000 (16:32 -0600)
committerMarge Bot <emma+marge@anholt.net>
Mon, 6 Feb 2023 09:12:18 +0000 (09:12 +0000)
commitd8dfd153c50f24ea50578202832b3eccfb61edf8
treeaa2c76f0c9237534ec1304616bcf9f38abbad345
parent43ca7f4178a0640308f0364cea8460dffc88a5b0
intel/fs: Make per-sample and coarse dispatch tri-state

Whenever one of them is BRW_SOMETIMES, we depend on dynamic flag pushed
in as a push constant.  In this case, we have to often have to do the
calculation both ways and SEL the result.  It's a bit more code but
decouples MSAA from the shader key.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21094>
12 files changed:
src/gallium/drivers/crocus/crocus_state.c
src/gallium/drivers/iris/iris_state.c
src/intel/blorp/blorp_genX_exec.h
src/intel/common/intel_genX_state.h
src/intel/compiler/brw_compiler.h
src/intel/compiler/brw_fs.cpp
src/intel/compiler/brw_fs.h
src/intel/compiler/brw_fs_visitor.cpp
src/intel/compiler/brw_lower_logical_sends.cpp
src/intel/vulkan/genX_pipeline.c
src/intel/vulkan/gfx8_cmd_buffer.c
src/intel/vulkan_hasvk/genX_pipeline.c