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; }