Mesa (master): gallivm/tgsi/swr: add mask vec to the tcs store

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Feb 28 08:53:32 UTC 2020


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Feb 17 16:47:51 2020 +1000

gallivm/tgsi/swr: add mask vec to the tcs store

For the nir paths we want to access the mask vector to only
store when the mask allows it.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841>

---

 src/gallium/auxiliary/gallivm/lp_bld_tgsi.h     | 3 ++-
 src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 2 +-
 src/gallium/drivers/swr/swr_shader.cpp          | 3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h
index 380579c3f70..6af8b0bea55 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.h
@@ -441,7 +441,8 @@ struct lp_build_tcs_iface
                              boolean is_aindex_indirect,
                              LLVMValueRef attrib_index,
                              LLVMValueRef swizzle_index,
-                             LLVMValueRef value);
+                             LLVMValueRef value,
+                             LLVMValueRef mask_vec);
 
    LLVMValueRef (*emit_fetch_input)(const struct lp_build_tcs_iface *tcs_iface,
                                     struct lp_build_context * bld,
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
index 5895fa90451..2586830bb46 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
@@ -1764,7 +1764,7 @@ emit_store_tcs_output(struct lp_build_tgsi_context *bld_base,
                                           reg->Register.Indirect,
                                           attrib_index,
                                           channel_index,
-                                          value);
+                                          value, NULL);
 }
 
 static void
diff --git a/src/gallium/drivers/swr/swr_shader.cpp b/src/gallium/drivers/swr/swr_shader.cpp
index c4d0bb2fc52..94321570369 100644
--- a/src/gallium/drivers/swr/swr_shader.cpp
+++ b/src/gallium/drivers/swr/swr_shader.cpp
@@ -601,7 +601,8 @@ void swr_tcs_llvm_store_output(const struct lp_build_tcs_iface *tcs_iface,
                          boolean is_aindex_indirect,
                          LLVMValueRef attrib_index,
                          LLVMValueRef swizzle_index,
-                         LLVMValueRef value)
+                         LLVMValueRef value,
+                         LLVMValueRef mask_vec)
 {
     swr_tcs_llvm_iface *iface = (swr_tcs_llvm_iface*)tcs_iface;
     struct lp_build_tgsi_context *bld_base = (struct lp_build_tgsi_context*)bld;



More information about the mesa-commit mailing list