summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-emit-spirv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
-rw-r--r--source/slang/slang-emit-spirv.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 0a3dab78a..ec9857ecf 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -2284,6 +2284,18 @@ struct SPIRVEmitContext : public SourceEmitterBase, public SPIRVEmitSharedContex
}
return result;
}
+ case kIROp_DebugBuildIdentifier:
+ {
+ ensureExtensionDeclaration(UnownedStringSlice("SPV_KHR_non_semantic_info"));
+ auto debugBuildIdentifier = as<IRDebugBuildIdentifier>(inst);
+ return emitOpDebugBuildIdentifier(
+ getSection(SpvLogicalSectionID::GlobalVariables),
+ inst,
+ inst->getFullType(),
+ getNonSemanticDebugInfoExtInst(),
+ debugBuildIdentifier->getBuildIdentifier(),
+ debugBuildIdentifier->getFlags());
+ }
case kIROp_GetStringHash:
return emitGetStringHash(inst);
case kIROp_AttributedType:
@@ -9184,6 +9196,10 @@ SlangResult emitSPIRVFromIR(
{
context.ensureInst(inst);
}
+ if (as<IRDebugBuildIdentifier>(inst))
+ {
+ context.ensureInst(inst);
+ }
if (shouldPreserveParams && as<IRGlobalParam>(inst))
{
context.ensureInst(inst);