From 2fee99a36cb5961a8a7be0990f945fbcdf080e14 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 21 Feb 2023 17:12:24 +0100 Subject: [PATCH] aco: implement load_ray_launch_{id|size} Part-of: --- src/amd/compiler/aco_instruction_selection.cpp | 12 ++++++++++++ src/amd/compiler/aco_instruction_selection_setup.cpp | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 262c3f3..ac615ec 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 3d41630..66bc77f 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: -- 2.7.4