mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-27 17:40:43 +00:00
radv: add sample mask input support
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
58c97a0791
commit
bdcbe7c76b
@ -99,6 +99,7 @@ struct nir_to_llvm_context {
|
||||
LLVMValueRef linear_sample, linear_center, linear_centroid;
|
||||
LLVMValueRef front_face;
|
||||
LLVMValueRef ancillary;
|
||||
LLVMValueRef sample_coverage;
|
||||
LLVMValueRef frag_pos[4];
|
||||
|
||||
LLVMBasicBlockRef continue_block;
|
||||
@ -532,7 +533,7 @@ static void create_function(struct nir_to_llvm_context *ctx)
|
||||
arg_types[arg_idx++] = ctx->f32; /* pos w float */
|
||||
arg_types[arg_idx++] = ctx->i32; /* front face */
|
||||
arg_types[arg_idx++] = ctx->i32; /* ancillary */
|
||||
arg_types[arg_idx++] = ctx->f32; /* sample coverage */
|
||||
arg_types[arg_idx++] = ctx->i32; /* sample coverage */
|
||||
arg_types[arg_idx++] = ctx->i32; /* fixed pt */
|
||||
break;
|
||||
default:
|
||||
@ -659,6 +660,7 @@ static void create_function(struct nir_to_llvm_context *ctx)
|
||||
ctx->frag_pos[3] = LLVMGetParam(ctx->main_function, arg_idx++);
|
||||
ctx->front_face = LLVMGetParam(ctx->main_function, arg_idx++);
|
||||
ctx->ancillary = LLVMGetParam(ctx->main_function, arg_idx++);
|
||||
ctx->sample_coverage = LLVMGetParam(ctx->main_function, arg_idx++);
|
||||
break;
|
||||
default:
|
||||
unreachable("Shader stage not implemented");
|
||||
@ -3115,6 +3117,9 @@ static void visit_intrinsic(struct nir_to_llvm_context *ctx,
|
||||
ctx->shader_info->fs.force_persample = true;
|
||||
result = load_sample_pos(ctx);
|
||||
break;
|
||||
case nir_intrinsic_load_sample_mask_in:
|
||||
result = ctx->sample_coverage;
|
||||
break;
|
||||
case nir_intrinsic_load_front_face:
|
||||
result = ctx->front_face;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user