diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-ir-insert-debug-value-store.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/slang-ir-insert-debug-value-store.cpp b/source/slang/slang-ir-insert-debug-value-store.cpp index 6243e6c09..004598b5d 100644 --- a/source/slang/slang-ir-insert-debug-value-store.cpp +++ b/source/slang/slang-ir-insert-debug-value-store.cpp @@ -130,6 +130,18 @@ namespace Slang setDebugValue(debugVar, varInst, storeInst->getVal(), accessChain.getArrayView()); } } + else if (auto swizzledStore = as<IRSwizzledStore>(inst)) + { + List<IRInst*> accessChain; + auto varInst = getRootAddr(swizzledStore->getDest(), accessChain); + IRInst* debugVar = nullptr; + if (mapVarToDebugVar.tryGetValue(varInst, debugVar)) + { + builder.setInsertAfter(swizzledStore); + auto loadVal = builder.emitLoad(swizzledStore->getDest()); + setDebugValue(debugVar, varInst, loadVal, accessChain.getArrayView()); + } + } else if (auto callInst = as<IRCall>(inst)) { auto funcValue = getResolvedInstForDecorations(callInst->getCallee()); |
