diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 1ac2cca7a17..feafb307088 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -361,8 +361,6 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) case nir_intrinsic_load_core_max_id_arm: case nir_intrinsic_load_warp_max_id_arm: case nir_intrinsic_load_tess_config_intel: - case nir_intrinsic_load_urb_input_handle_intel: - case nir_intrinsic_load_urb_output_handle_intel: case nir_intrinsic_load_ray_query_global_intel: case nir_intrinsic_load_call_return_address_amd: case nir_intrinsic_load_indirect_address_intel: @@ -398,9 +396,14 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) */ case nir_intrinsic_load_global_block_intel: case nir_intrinsic_load_urb_input_handle_indexed_intel: + case nir_intrinsic_load_urb_output_handle_intel: is_divergent = true; break; + case nir_intrinsic_load_urb_input_handle_intel: + is_divergent = stage != MESA_SHADER_TESS_EVAL; + break; + case nir_intrinsic_decl_reg: case nir_intrinsic_load_sysval_nv: is_divergent = nir_intrinsic_divergent(instr);