nir: wire shading rate variables

v2: Fixup comment about bits in nir_intrinsics.py

v3: Use varying for primitive shading rate builtin (samuel)

v4: Reoder switch alphabetically
    Make divergence of frag_shading_rate an option

v5: Remove stage check for frag_shading_rate in divergence (Samuel)

v6: s/frag_shading_rate_per_subgroup/single_frag_shading_rate_per_subgroup/ (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7795>
This commit is contained in:
Lionel Landwerlin
2020-10-20 10:41:00 +03:00
committed by Marge Bot
parent f86668f487
commit 1c9488e0d1
8 changed files with 27 additions and 1 deletions

View File

@@ -136,6 +136,9 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
break;
/* Intrinsics with divergence depending on shader stage and hardware */
case nir_intrinsic_load_frag_shading_rate:
is_divergent = !(options & nir_divergence_single_frag_shading_rate_per_subgroup);
break;
case nir_intrinsic_load_input:
is_divergent = instr->src[0].ssa->divergent;
if (stage == MESA_SHADER_FRAGMENT)