From: Samuel Pitoiset Date: Wed, 21 Aug 2019 14:29:46 +0000 (+0200) Subject: ac: fix exclusive scans on GFX8-GFX9 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2d9f401a830693cd2a97a25ee49c0671606b1878;p=mesa.git ac: fix exclusive scans on GFX8-GFX9 This fixes a regression introduced with scan&reduce operations on GFX10. Note that some subgroups CTS still fail on GFX10 but I assume it's a different issue. This fixes dEQP-VK.subgroups.arithmetic.*.subgroupexclusive*. Fixes: 227c29a80de "amd/common/gfx10: implement scan & reduce operations" Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index 05871f5ea98..5abae00d8f6 100644 --- a/src/amd/common/ac_llvm_build.c +++ b/src/amd/common/ac_llvm_build.c @@ -4221,10 +4221,9 @@ ac_build_scan(struct ac_llvm_context *ctx, nir_op op, LLVMValueRef src, LLVMValu if (ctx->chip_class >= GFX10) { result = inclusive ? src : identity; } else { - if (inclusive) - result = src; - else - result = ac_build_dpp(ctx, identity, src, dpp_wf_sr1, 0xf, 0xf, false); + if (!inclusive) + src = ac_build_dpp(ctx, identity, src, dpp_wf_sr1, 0xf, 0xf, false); + result = src; } if (maxprefix <= 1) return result;