Mesa (master): ac/nir: fix lds store for patch outputs.

Dave Airlie airlied at kemper.freedesktop.org
Mon Dec 18 20:44:39 UTC 2017


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Dec 18 16:53:44 2017 +1000

ac/nir: fix lds store for patch outputs.

This wasn't calculating the correct value, this along with
a nir patch fixes a regression in:
dEQP-VK.tessellation.shader_input_output.barrier

Fixes: 043d14db30a (ac/nir: don't write tcs outputs to LDS that aren't read back.)
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/amd/common/ac_nir_to_llvm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 69d7bead8c..bd5748d80d 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -2803,7 +2803,7 @@ store_tcs_output(struct nir_to_llvm_context *ctx,
 	bool store_lds = true;
 
 	if (instr->variables[0]->var->data.patch) {
-		if (!(ctx->tcs_patch_outputs_read & (1U << instr->variables[0]->var->data.location)))
+		if (!(ctx->tcs_patch_outputs_read & (1U << (instr->variables[0]->var->data.location - VARYING_SLOT_PATCH0))))
 			store_lds = false;
 	} else {
 		if (!(ctx->tcs_outputs_read & (1ULL << instr->variables[0]->var->data.location)))




More information about the mesa-commit mailing list