nir: Teach nir_divergence_analysis about Intel-specific intrinsics
- load_reloc_const is just an immediate constant load, it's convergent. - nir_intrinsic_load_global_const_block_intel should be convergent, it says the address must be uniform, and we uniformize the predicate - Lowered image intrinsics: image_deref_load_param_intel just reads information about an image, as long as the image variable is convergent it should be too. load_raw_intel...if the address we come up with is convergent, it ought to be as well. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15484>
This commit is contained in:

committed by
Marge Bot

parent
3e9bd67f23
commit
af529b545a
@@ -161,6 +161,8 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
|
||||
case nir_intrinsic_load_tess_level_outer_default:
|
||||
case nir_intrinsic_load_scalar_arg_amd:
|
||||
case nir_intrinsic_load_smem_amd:
|
||||
case nir_intrinsic_load_global_const_block_intel:
|
||||
case nir_intrinsic_load_reloc_const_intel:
|
||||
is_divergent = false;
|
||||
break;
|
||||
|
||||
@@ -354,6 +356,8 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
|
||||
case nir_intrinsic_sparse_residency_code_and:
|
||||
case nir_intrinsic_load_sbt_amd:
|
||||
case nir_intrinsic_bvh64_intersect_ray_amd:
|
||||
case nir_intrinsic_image_deref_load_param_intel:
|
||||
case nir_intrinsic_image_load_raw_intel:
|
||||
case nir_intrinsic_get_ubo_size:
|
||||
case nir_intrinsic_load_ssbo_address: {
|
||||
unsigned num_srcs = nir_intrinsic_infos[instr->intrinsic].num_srcs;
|
||||
|
Reference in New Issue
Block a user