diff --git a/src/gallium/drivers/radeonsi/si_shader_llvm.c b/src/gallium/drivers/radeonsi/si_shader_llvm.c index 5b6f3f43c28..e78f83c2edb 100644 --- a/src/gallium/drivers/radeonsi/si_shader_llvm.c +++ b/src/gallium/drivers/radeonsi/si_shader_llvm.c @@ -391,7 +391,9 @@ LLVMValueRef si_get_primitive_id(struct si_shader_context *ctx, unsigned swizzle case MESA_SHADER_TESS_CTRL: return ac_get_arg(&ctx->ac, ctx->args.tcs_patch_id); case MESA_SHADER_TESS_EVAL: - return ac_get_arg(&ctx->ac, ctx->args.tes_patch_id); + return ctx->abi.tes_patch_id_replaced ? + ctx->abi.tes_patch_id_replaced : + ac_get_arg(&ctx->ac, ctx->args.tes_patch_id); case MESA_SHADER_GEOMETRY: return ac_get_arg(&ctx->ac, ctx->args.gs_prim_id); default: diff --git a/src/gallium/drivers/radeonsi/si_shader_llvm_tess.c b/src/gallium/drivers/radeonsi/si_shader_llvm_tess.c index 34f5175cbea..382ed80b8f1 100644 --- a/src/gallium/drivers/radeonsi/si_shader_llvm_tess.c +++ b/src/gallium/drivers/radeonsi/si_shader_llvm_tess.c @@ -33,7 +33,9 @@ LLVMValueRef si_get_rel_patch_id(struct si_shader_context *ctx) return si_unpack_param(ctx, ctx->args.tcs_rel_ids, 0, 8); case MESA_SHADER_TESS_EVAL: - return ac_get_arg(&ctx->ac, ctx->args.tes_rel_patch_id); + return ctx->abi.tes_rel_patch_id_replaced ? + ctx->abi.tes_rel_patch_id_replaced : + ac_get_arg(&ctx->ac, ctx->args.tes_rel_patch_id); default: assert(0);