Mesa (main): nir: Add a ray launch size addr intrinsic
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu May 12 15:45:02 UTC 2022
Module: Mesa
Branch: main
Commit: 938c9d961552667a83b2ef5a32c6c86c9c295e04
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=938c9d961552667a83b2ef5a32c6c86c9c295e04
Author: Konstantin Seurer <konstantin.seurer at gmail.com>
Date: Fri Apr 1 15:57:51 2022 +0200
nir: Add a ray launch size addr intrinsic
Signed-off-by: Konstantin Seurer <konstantin.seurer at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15712>
---
src/compiler/nir/nir.c | 4 ++++
src/compiler/nir/nir_divergence_analysis.c | 1 +
src/compiler/nir/nir_gather_info.c | 1 +
src/compiler/nir/nir_intrinsics.py | 3 +++
src/compiler/shader_enums.c | 1 +
src/compiler/shader_enums.h | 1 +
6 files changed, 11 insertions(+)
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c
index b7446ec8c43..c6a235e103d 100644
--- a/src/compiler/nir/nir.c
+++ b/src/compiler/nir/nir.c
@@ -2481,6 +2481,8 @@ nir_intrinsic_from_system_value(gl_system_value val)
return nir_intrinsic_load_ray_launch_id;
case SYSTEM_VALUE_RAY_LAUNCH_SIZE:
return nir_intrinsic_load_ray_launch_size;
+ case SYSTEM_VALUE_RAY_LAUNCH_SIZE_ADDR_AMD:
+ return nir_intrinsic_load_ray_launch_size_addr_amd;
case SYSTEM_VALUE_RAY_WORLD_ORIGIN:
return nir_intrinsic_load_ray_world_origin;
case SYSTEM_VALUE_RAY_WORLD_DIRECTION:
@@ -2624,6 +2626,8 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
return SYSTEM_VALUE_RAY_LAUNCH_ID;
case nir_intrinsic_load_ray_launch_size:
return SYSTEM_VALUE_RAY_LAUNCH_SIZE;
+ case nir_intrinsic_load_ray_launch_size_addr_amd:
+ return SYSTEM_VALUE_RAY_LAUNCH_SIZE_ADDR_AMD;
case nir_intrinsic_load_ray_world_origin:
return SYSTEM_VALUE_RAY_WORLD_ORIGIN;
case nir_intrinsic_load_ray_world_direction:
diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c
index 7fba34fd229..7efbca39f46 100644
--- a/src/compiler/nir/nir_divergence_analysis.c
+++ b/src/compiler/nir/nir_divergence_analysis.c
@@ -106,6 +106,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
case nir_intrinsic_load_subgroup_id:
case nir_intrinsic_load_num_subgroups:
case nir_intrinsic_load_ray_launch_size:
+ case nir_intrinsic_load_ray_launch_size_addr_amd:
case nir_intrinsic_load_subgroup_size:
case nir_intrinsic_load_subgroup_eq_mask:
case nir_intrinsic_load_subgroup_ge_mask:
diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c
index 7f16abda517..f0e0262e58f 100644
--- a/src/compiler/nir/nir_gather_info.c
+++ b/src/compiler/nir/nir_gather_info.c
@@ -667,6 +667,7 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader,
case nir_intrinsic_load_barycentric_model:
case nir_intrinsic_load_ray_launch_id:
case nir_intrinsic_load_ray_launch_size:
+ case nir_intrinsic_load_ray_launch_size_addr_amd:
case nir_intrinsic_load_ray_world_origin:
case nir_intrinsic_load_ray_world_direction:
case nir_intrinsic_load_ray_object_origin:
diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py
index e0c3938d489..2b8a6c6ab6e 100644
--- a/src/compiler/nir/nir_intrinsics.py
+++ b/src/compiler/nir/nir_intrinsics.py
@@ -1355,6 +1355,9 @@ 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])
+# Used for indirect ray tracing.
+system_value("ray_launch_size_addr_amd", 1, bit_sizes=[64])
+
# Load forced VRS rates.
intrinsic("load_force_vrs_rates_amd", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER])
diff --git a/src/compiler/shader_enums.c b/src/compiler/shader_enums.c
index fcd5fd5e956..58d10adb664 100644
--- a/src/compiler/shader_enums.c
+++ b/src/compiler/shader_enums.c
@@ -318,6 +318,7 @@ gl_system_value_name(gl_system_value sysval)
ENUM(SYSTEM_VALUE_BARYCENTRIC_PULL_MODEL),
ENUM(SYSTEM_VALUE_RAY_LAUNCH_ID),
ENUM(SYSTEM_VALUE_RAY_LAUNCH_SIZE),
+ ENUM(SYSTEM_VALUE_RAY_LAUNCH_SIZE_ADDR_AMD),
ENUM(SYSTEM_VALUE_RAY_WORLD_ORIGIN),
ENUM(SYSTEM_VALUE_RAY_WORLD_DIRECTION),
ENUM(SYSTEM_VALUE_RAY_OBJECT_ORIGIN),
diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h
index e07761bf9f9..790dce018a9 100644
--- a/src/compiler/shader_enums.h
+++ b/src/compiler/shader_enums.h
@@ -808,6 +808,7 @@ typedef enum
/*@{*/
SYSTEM_VALUE_RAY_LAUNCH_ID,
SYSTEM_VALUE_RAY_LAUNCH_SIZE,
+ SYSTEM_VALUE_RAY_LAUNCH_SIZE_ADDR_AMD,
SYSTEM_VALUE_RAY_WORLD_ORIGIN,
SYSTEM_VALUE_RAY_WORLD_DIRECTION,
SYSTEM_VALUE_RAY_OBJECT_ORIGIN,
More information about the mesa-commit
mailing list