llvmpipe/fs: pass mask type to alpha to coverage handler
authorDave Airlie <airlied@redhat.com>
Wed, 28 Sep 2022 22:19:44 +0000 (08:19 +1000)
committerMarge Bot <emma+marge@anholt.net>
Fri, 30 Sep 2022 01:22:42 +0000 (01:22 +0000)
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18876>

src/gallium/drivers/llvmpipe/lp_state_fs.c

index 7e55466..9dabfcb 100644 (file)
@@ -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);
          }
       }
    }