nir: add nir_intrinsic_resume_shader_address_amd
authorDaniel Schürmann <daniel@schuermann.dev>
Thu, 12 May 2022 21:21:57 +0000 (23:21 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 8 Jun 2023 00:37:03 +0000 (00:37 +0000)
This intrinsic returns a pointer to the end of the shader
and is intended for stitched binaries.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>

src/compiler/nir/nir_divergence_analysis.c
src/compiler/nir/nir_intrinsics.py

index 981024c..16a4d67 100644 (file)
@@ -186,6 +186,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
    case nir_intrinsic_load_scalar_arg_amd:
    case nir_intrinsic_load_smem_amd:
    case nir_intrinsic_load_rt_dynamic_callable_stack_base_amd:
+   case nir_intrinsic_load_resume_shader_address_amd:
    case nir_intrinsic_load_global_const_block_intel:
    case nir_intrinsic_load_reloc_const_intel:
    case nir_intrinsic_load_global_block_intel:
index 3e34a49..19f2443 100644 (file)
@@ -1495,6 +1495,9 @@ system_value("intersection_opaque_amd", 1, bit_sizes=[1])
 # Used for indirect ray tracing.
 system_value("ray_launch_size_addr_amd", 1, bit_sizes=[64])
 
+# pointer to the next resume shader
+system_value("resume_shader_address_amd", 1, bit_sizes=[64], indices=[CALL_IDX])
+
 # Scratch base of callable stack for ray tracing.
 system_value("rt_dynamic_callable_stack_base_amd", 1)