From 07e025a390a0d07bdf2d8888a4291f1153f088cd Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Mon, 23 May 2022 14:42:06 +0800 Subject: [PATCH] radeonsi: implement nir_intrinsic_load_tcs_num_patches_amd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Used by ac_nir_lower_tess_io_to_mem.c. Reviewed-by: Marek Olšák Acked-by: Pierre-Eric Pelloux-Prayer Reviewed-by: Timur Kristóf Signed-off-by: Qiang Yu Part-of: --- src/amd/llvm/ac_nir_to_llvm.c | 1 + src/gallium/drivers/radeonsi/si_shader_llvm.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/amd/llvm/ac_nir_to_llvm.c b/src/amd/llvm/ac_nir_to_llvm.c index 4ee645e746c..c116543fbfb 100644 --- a/src/amd/llvm/ac_nir_to_llvm.c +++ b/src/amd/llvm/ac_nir_to_llvm.c @@ -3637,6 +3637,7 @@ static void visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins case nir_intrinsic_load_ring_tess_offchip_amd: case nir_intrinsic_load_ring_esgs_amd: case nir_intrinsic_load_lshs_vertex_stride_amd: + case nir_intrinsic_load_tcs_num_patches_amd: result = ctx->abi->intrinsic_load(ctx->abi, instr->intrinsic); break; case nir_intrinsic_load_vertex_id: diff --git a/src/gallium/drivers/radeonsi/si_shader_llvm.c b/src/gallium/drivers/radeonsi/si_shader_llvm.c index 5e9b3d441ab..dd48b83cf6b 100644 --- a/src/gallium/drivers/radeonsi/si_shader_llvm.c +++ b/src/gallium/drivers/radeonsi/si_shader_llvm.c @@ -780,6 +780,11 @@ static LLVMValueRef si_llvm_load_intrinsic(struct ac_shader_abi *abi, nir_intrin return LLVMBuildShl(ctx->ac.builder, si_get_tcs_in_vertex_dw_stride(ctx), LLVMConstInt(ctx->ac.i32, 2, 0), ""); + case nir_intrinsic_load_tcs_num_patches_amd: + return LLVMBuildAdd(ctx->ac.builder, + si_unpack_param(ctx, ctx->tcs_offchip_layout, 0, 6), + ctx->ac.i32_1, ""); + default: return NULL; }