aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler/nir/nir_divergence_analysis.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/nir/nir_divergence_analysis.c')
-rw-r--r--src/compiler/nir/nir_divergence_analysis.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c
index f0c8bfad7b2..bfa12d1a57d 100644
--- a/src/compiler/nir/nir_divergence_analysis.c
+++ b/src/compiler/nir/nir_divergence_analysis.c
@@ -125,6 +125,11 @@ visit_intrinsic(bool *divergent, nir_intrinsic_instr *instr,
else
is_divergent = true;
break;
+ case nir_intrinsic_load_input_vertex:
+ is_divergent = divergent[instr->src[1].ssa->index];
+ assert(stage == MESA_SHADER_FRAGMENT);
+ is_divergent |= !(options & nir_divergence_single_prim_per_subgroup);
+ break;
case nir_intrinsic_load_output:
assert(stage == MESA_SHADER_TESS_CTRL || stage == MESA_SHADER_FRAGMENT);
is_divergent = divergent[instr->src[0].ssa->index];
@@ -264,6 +269,7 @@ visit_intrinsic(bool *divergent, nir_intrinsic_instr *instr,
case nir_intrinsic_load_barycentric_pixel:
case nir_intrinsic_load_barycentric_centroid:
case nir_intrinsic_load_barycentric_sample:
+ case nir_intrinsic_load_barycentric_model:
case nir_intrinsic_load_barycentric_at_sample:
case nir_intrinsic_load_barycentric_at_offset:
case nir_intrinsic_interp_deref_at_offset: