diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 6a6ef29ef91..30f0729615c 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -531,6 +531,8 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr) case nir_intrinsic_load_packed_passthrough_primitive_amd: case nir_intrinsic_load_initial_edgeflags_amd: case nir_intrinsic_gds_atomic_add_amd: + case nir_intrinsic_load_rt_arg_scratch_offset_amd: + case nir_intrinsic_load_intersection_opaque_amd: is_divergent = true; break; diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index e4ad0d4216d..00a72d63084 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -1227,6 +1227,15 @@ intrinsic("load_sbt_amd", dest_comp=4, bit_sizes=[32], indices=[BINDING], # 6. inverse ray direction (componentwise 1.0/ray direction) intrinsic("bvh64_intersect_ray_amd", [4, 2, 1, 3, 3, 3], 4, flags=[CAN_ELIMINATE, CAN_REORDER]) +# Return of a callable in raytracing pipelines +intrinsic("rt_return_amd") + +# offset into scratch for the input callable data in a raytracing pipeline. +system_value("rt_arg_scratch_offset_amd", 1) + +# Whether to call the anyhit shader for an intersection in an intersection shader. +system_value("intersection_opaque_amd", 1, bit_sizes=[1]) + # V3D-specific instrinc for tile buffer color reads. # # The hardware requires that we read the samples and components of a pixel