From 38907a40ab0848c9fe8d1b7ad6d0f4047fcf6f5b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 29 Sep 2022 08:19:44 +1000 Subject: [PATCH] llvmpipe/fs: pass mask type to alpha to coverage handler Reviewed-by: Brian Paul Reviewed-by: Mihai Preda Part-of: --- src/gallium/drivers/llvmpipe/lp_state_fs.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 7e554662bdd..9dabfcb4a80 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -408,6 +408,7 @@ lp_build_sample_alpha_to_coverage(struct gallivm_state *gallivm, unsigned coverage_samples, LLVMValueRef num_loop, LLVMValueRef loop_counter, + LLVMTypeRef coverage_mask_type, LLVMValueRef coverage_mask_store, LLVMValueRef alpha) { @@ -422,8 +423,9 @@ lp_build_sample_alpha_to_coverage(struct gallivm_state *gallivm, LLVMValueRef s_mask_idx = LLVMBuildMul(builder, lp_build_const_int32(gallivm, s), num_loop, ""); s_mask_idx = LLVMBuildAdd(builder, s_mask_idx, loop_counter, ""); - LLVMValueRef s_mask_ptr = LLVMBuildGEP(builder, coverage_mask_store, &s_mask_idx, 1, ""); - LLVMValueRef s_mask = LLVMBuildLoad(builder, s_mask_ptr, ""); + LLVMValueRef s_mask_ptr = LLVMBuildGEP2(builder, coverage_mask_type, + coverage_mask_store, &s_mask_idx, 1, ""); + LLVMValueRef s_mask = LLVMBuildLoad2(builder, coverage_mask_type, s_mask_ptr, ""); s_mask = LLVMBuildAnd(builder, s_mask, test, ""); LLVMBuildStore(builder, s_mask, s_mask_ptr); } @@ -1089,7 +1091,7 @@ generate_fs_loop(struct gallivm_state *gallivm, } else { lp_build_sample_alpha_to_coverage(gallivm, type, key->coverage_samples, num_loop, loop_state.counter, - mask_store, alpha); + mask_type, mask_store, alpha); } } }