From 70a7603b6396fed615adc9ba06c1f0f09b5ac9ac Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 17 Feb 2020 16:47:51 +1000 Subject: [PATCH] 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 Part-of: --- 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; -- 2.30.2