diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 262c3f3113b..ac615ec4216 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -8195,6 +8195,18 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr) emit_split_vector(ctx, dst, 3); break; } + case nir_intrinsic_load_ray_launch_size: { + Temp dst = get_ssa_temp(ctx, &instr->dest.ssa); + bld.copy(Definition(dst), Operand(get_arg(ctx, ctx->args->ray_launch_size))); + emit_split_vector(ctx, dst, 3); + break; + } + case nir_intrinsic_load_ray_launch_id: { + Temp dst = get_ssa_temp(ctx, &instr->dest.ssa); + bld.copy(Definition(dst), Operand(get_arg(ctx, ctx->args->ray_launch_id))); + emit_split_vector(ctx, dst, 3); + break; + } case nir_intrinsic_load_ray_launch_size_addr_amd: { Temp dst = get_ssa_temp(ctx, &instr->dest.ssa); Temp addr = get_arg(ctx, ctx->args->ray_launch_size_addr); diff --git a/src/amd/compiler/aco_instruction_selection_setup.cpp b/src/amd/compiler/aco_instruction_selection_setup.cpp index 3d41630af37..66bc77f70c0 100644 --- a/src/amd/compiler/aco_instruction_selection_setup.cpp +++ b/src/amd/compiler/aco_instruction_selection_setup.cpp @@ -543,6 +543,7 @@ init_context(isel_context* ctx, nir_shader* shader) case nir_intrinsic_load_push_constant: case nir_intrinsic_load_workgroup_id: case nir_intrinsic_load_num_workgroups: + case nir_intrinsic_load_ray_launch_size: case nir_intrinsic_load_ray_launch_size_addr_amd: case nir_intrinsic_load_sbt_base_amd: case nir_intrinsic_load_subgroup_id: @@ -579,6 +580,7 @@ init_context(isel_context* ctx, nir_shader* shader) case nir_intrinsic_load_local_invocation_id: case nir_intrinsic_load_local_invocation_index: case nir_intrinsic_load_subgroup_invocation: + case nir_intrinsic_load_ray_launch_id: case nir_intrinsic_load_tess_coord: case nir_intrinsic_write_invocation_amd: case nir_intrinsic_mbcnt_amd: