Mesa (master): radv: add sample mask input support

Dave Airlie airlied at kemper.freedesktop.org
Fri Feb 24 00:36:11 UTC 2017


Module: Mesa
Branch: master
Commit: bdcbe7c76bba3171f4f4c30b29e21f58c9a62856
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bdcbe7c76bba3171f4f4c30b29e21f58c9a62856

Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Jan 31 05:30:26 2017 +1000

radv: add sample mask input support

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/amd/common/ac_nir_to_llvm.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index ca1416d..0cc5810 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -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;




More information about the mesa-commit mailing list