mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 19:58:09 +02:00
ac/nir,radeonsi: add and use ac_shader_abi::{ancillary,sample_coverage}
v2: update for LLVMValueRefs in ac_shader_abi Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
7de445377c
commit
f03c54e05a
3 changed files with 10 additions and 8 deletions
|
|
@ -132,8 +132,6 @@ struct nir_to_llvm_context {
|
|||
LLVMValueRef sample_pos_offset;
|
||||
LLVMValueRef persp_sample, persp_center, persp_centroid;
|
||||
LLVMValueRef linear_sample, linear_center, linear_centroid;
|
||||
LLVMValueRef ancillary;
|
||||
LLVMValueRef sample_coverage;
|
||||
LLVMValueRef frag_pos[4];
|
||||
|
||||
LLVMTypeRef i1;
|
||||
|
|
@ -816,8 +814,8 @@ static void create_function(struct nir_to_llvm_context *ctx)
|
|||
add_vgpr_argument(&args, ctx->f32, &ctx->frag_pos[2]); /* pos z float */
|
||||
add_vgpr_argument(&args, ctx->f32, &ctx->frag_pos[3]); /* pos w float */
|
||||
add_vgpr_argument(&args, ctx->i32, &ctx->abi.front_face); /* front face */
|
||||
add_vgpr_argument(&args, ctx->i32, &ctx->ancillary); /* ancillary */
|
||||
add_vgpr_argument(&args, ctx->i32, &ctx->sample_coverage); /* sample coverage */
|
||||
add_vgpr_argument(&args, ctx->i32, &ctx->abi.ancillary); /* ancillary */
|
||||
add_vgpr_argument(&args, ctx->i32, &ctx->abi.sample_coverage); /* sample coverage */
|
||||
add_vgpr_argument(&args, ctx->i32, NULL); /* fixed pt */
|
||||
break;
|
||||
default:
|
||||
|
|
@ -4003,13 +4001,13 @@ static void visit_intrinsic(struct ac_nir_context *ctx,
|
|||
fprintf(stderr, "Unknown primitive id intrinsic: %d", ctx->stage);
|
||||
break;
|
||||
case nir_intrinsic_load_sample_id:
|
||||
result = unpack_param(ctx->nctx, ctx->nctx->ancillary, 8, 4);
|
||||
result = unpack_param(ctx->nctx, ctx->abi->ancillary, 8, 4);
|
||||
break;
|
||||
case nir_intrinsic_load_sample_pos:
|
||||
result = load_sample_pos(ctx->nctx);
|
||||
break;
|
||||
case nir_intrinsic_load_sample_mask_in:
|
||||
result = ctx->nctx->sample_coverage;
|
||||
result = ctx->abi->sample_coverage;
|
||||
break;
|
||||
case nir_intrinsic_load_front_face:
|
||||
result = ctx->abi->front_face;
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@ struct ac_shader_abi {
|
|||
LLVMValueRef vertex_id;
|
||||
LLVMValueRef instance_id;
|
||||
LLVMValueRef front_face;
|
||||
LLVMValueRef ancillary;
|
||||
LLVMValueRef sample_coverage;
|
||||
|
||||
/* For VS and PS: pre-loaded shader inputs.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -4541,8 +4541,10 @@ static void create_function(struct si_shader_context *ctx)
|
|||
add_arg_assign_checked(&fninfo, ARG_VGPR, ctx->i32,
|
||||
&ctx->abi.front_face, SI_PARAM_FRONT_FACE);
|
||||
shader->info.face_vgpr_index = 20;
|
||||
add_arg_checked(&fninfo, ARG_VGPR, ctx->i32, SI_PARAM_ANCILLARY);
|
||||
add_arg_checked(&fninfo, ARG_VGPR, ctx->f32, SI_PARAM_SAMPLE_COVERAGE);
|
||||
add_arg_assign_checked(&fninfo, ARG_VGPR, ctx->i32,
|
||||
&ctx->abi.ancillary, SI_PARAM_ANCILLARY);
|
||||
add_arg_assign_checked(&fninfo, ARG_VGPR, ctx->f32,
|
||||
&ctx->abi.sample_coverage, SI_PARAM_SAMPLE_COVERAGE);
|
||||
add_arg_checked(&fninfo, ARG_VGPR, ctx->i32, SI_PARAM_POS_FIXED_PT);
|
||||
|
||||
/* Color inputs from the prolog. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue