From 9f18258e41f119b3b7df80f5313c1e1fa248546f Mon Sep 17 00:00:00 2001 From: Greg Fischer Date: Mon, 9 Aug 2021 17:52:40 -0600 Subject: [PATCH] Fix seperate stores to swizzled lvalue. Seen with += and ++ ops on swizzled lvalues. Was using stale access chain. Fixes 2725. --- SPIRV/SpvBuilder.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 6751dec2..e83306eb 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -2812,6 +2812,7 @@ void Builder::accessChainStore(Id rvalue, Decoration nonUniform, spv::MemoryAcce accessChain.component == NoResult) { for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) { accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle[i])); + accessChain.instr = NoResult; Id base = collapseAccessChain(); addDecoration(base, nonUniform);