ac/llvm: Implement nir_intrinsic_load_point_coord_maybe_flipped opcodes

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15117>
This commit is contained in:
Arvind Yadav 2022-02-22 21:35:58 +05:30 committed by Marek Olšák
parent 689559d10f
commit 8adbd2a964
2 changed files with 9 additions and 0 deletions

View File

@ -4009,6 +4009,14 @@ static void visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins
nir_intrinsic_io_semantics(instr).high_16bits);
break;
}
case nir_intrinsic_load_point_coord_maybe_flipped: {
LLVMValueRef interp_param = lookup_interp_param(ctx, INTERP_MODE_NONE, INTERP_CENTER);
/* Load point coordinates (x, y) which are written by the hw after the interpolated inputs */
result = load_interpolated_input(ctx, interp_param, ctx->abi->num_interp, 2,
instr->dest.ssa.num_components, instr->dest.ssa.bit_size,
false);
break;
}
case nir_intrinsic_emit_vertex:
ctx->abi->emit_vertex(ctx->abi, nir_intrinsic_stream_id(instr), ctx->abi->outputs);
break;

View File

@ -403,6 +403,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
case nir_intrinsic_load_sample_id_no_per_sample:
case nir_intrinsic_load_sample_mask_in:
case nir_intrinsic_load_interpolated_input:
case nir_intrinsic_load_point_coord_maybe_flipped:
case nir_intrinsic_load_barycentric_pixel:
case nir_intrinsic_load_barycentric_centroid:
case nir_intrinsic_load_barycentric_sample: