ac/nir: implement load_frag_coord intrinsic

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Nicolai Hähnle 2017-07-04 11:09:24 +02:00
parent d5741489d3
commit b7d36efc2d

View file

@ -4012,6 +4012,16 @@ static void visit_intrinsic(struct ac_nir_context *ctx,
case nir_intrinsic_load_sample_mask_in:
result = ctx->abi->sample_coverage;
break;
case nir_intrinsic_load_frag_coord: {
LLVMValueRef values[4] = {
ctx->abi->frag_pos[0],
ctx->abi->frag_pos[1],
ctx->abi->frag_pos[2],
ac_build_fdiv(&ctx->ac, ctx->ac.f32_1, ctx->abi->frag_pos[3])
};
result = ac_build_gather_values(&ctx->ac, values, 4);
break;
}
case nir_intrinsic_load_front_face:
result = ctx->abi->front_face;
break;