nir: Add a ray launch size addr intrinsic

Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15712>
This commit is contained in:
Konstantin Seurer 2022-04-01 15:57:51 +02:00 committed by Marge Bot
parent b5b2bcab54
commit 938c9d9615
6 changed files with 11 additions and 0 deletions

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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])

View File

@ -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),

View File

@ -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,