Fix seperate stores to swizzled lvalue.

Seen with += and ++ ops on swizzled lvalues. Was using stale access chain.

Fixes 2725.
This commit is contained in:
Greg Fischer 2021-08-09 17:52:40 -06:00
parent e0f3fdf433
commit 9f18258e41

View File

@ -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);