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>
This commit is contained in:
Jason Ekstrand
2021-11-19 16:32:24 -06:00
committed by Marge Bot
parent 43ca7f4178
commit d8dfd153c5
12 changed files with 349 additions and 80 deletions
+4 -2
View File
@@ -899,7 +899,8 @@ blorp_emit_ps_config(struct blorp_batch *batch,
if (prog_data) {
intel_set_ps_dispatch_state(&ps, devinfo, prog_data,
params->num_samples);
params->num_samples,
0 /* msaa_flags */);
ps.DispatchGRFStartRegisterForConstantSetupData0 =
brw_wm_prog_data_dispatch_grf_start_reg(prog_data, ps, 0);
@@ -981,7 +982,8 @@ blorp_emit_ps_config(struct blorp_batch *batch,
if (prog_data) {
intel_set_ps_dispatch_state(&ps, devinfo, prog_data,
params->num_samples);
params->num_samples,
0 /* msaa_flags */);
ps.DispatchGRFStartRegisterForConstantSetupData0 =
brw_wm_prog_data_dispatch_grf_start_reg(prog_data, ps, 0);