summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-emit-spirv.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 018f833aa..3f3b5e707 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -3468,7 +3468,8 @@ struct SPIRVEmitContext : public SourceEmitterBase, public SPIRVEmitSharedContex
spvBlock,
spvFunc,
irDebugFunc,
- irFunc->getDataType());
+ irFunc->getDataType(),
+ irFunc);
}
if (funcDebugScope)
{
@@ -7964,7 +7965,8 @@ struct SPIRVEmitContext : public SourceEmitterBase, public SPIRVEmitSharedContex
SpvInst* firstBlock,
SpvInst* spvFunc,
IRDebugFunction* debugFunc,
- IRFuncType* debugType)
+ IRFuncType* debugType,
+ IRFunc* irFunc = nullptr)
{
SpvInst* debugFuncInfo = nullptr;
if (debugFunc && m_mapIRInstToSpvInst.tryGetValue(debugFunc, debugFuncInfo))
@@ -8002,6 +8004,11 @@ struct SPIRVEmitContext : public SourceEmitterBase, public SPIRVEmitSharedContex
builder.getIntValue(builder.getUIntType(), 0),
debugFunc->getLine());
+ if (irFunc)
+ {
+ registerDebugInst(irFunc, debugFuncInfo);
+ }
+
if (firstBlock && spvFunc)
{
emitOpDebugFunctionDefinition(