diff --git a/src/amd/llvm/ac_nir_to_llvm.c b/src/amd/llvm/ac_nir_to_llvm.c index 7bd1ffcadf7..f83ca8a86a9 100644 --- a/src/amd/llvm/ac_nir_to_llvm.c +++ b/src/amd/llvm/ac_nir_to_llvm.c @@ -2879,6 +2879,14 @@ emit_load_frag_coord(struct ac_nir_context *ctx) return ac_to_integer(&ctx->ac, ac_build_gather_values(&ctx->ac, values, 4)); } +static LLVMValueRef +emit_load_pixel_coord(struct ac_nir_context *ctx) +{ + LLVMValueRef value = ac_get_arg(&ctx->ac, ctx->args->pos_fixed_pt); + + return LLVMBuildBitCast(ctx->ac.builder, value, ctx->ac.v2i16, ""); +} + static bool visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *instr) { LLVMValueRef result = NULL; @@ -3023,6 +3031,9 @@ static bool visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins case nir_intrinsic_load_frag_coord: result = emit_load_frag_coord(ctx); break; + case nir_intrinsic_load_pixel_coord: + result = emit_load_pixel_coord(ctx); + break; case nir_intrinsic_load_frag_shading_rate: result = emit_load_frag_shading_rate(ctx); break;