diff options
author | Dave Airlie <[email protected]> | 2020-02-17 16:47:51 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2020-02-28 18:33:34 +1000 |
commit | 70a7603b6396fed615adc9ba06c1f0f09b5ac9ac (patch) | |
tree | d3f36b0e37615b2e24fdb282ec5687f995aacecb /src/gallium | |
parent | 87359d68a980c70e6f3a65ffd528496ee498e366 (diff) |
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_tgsi.h | 3 | ||||
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 2 | ||||
-rw-r--r-- | 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; |