diff options
| author | jarcherNV <jarcher@nvidia.com> | 2025-06-06 14:30:06 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-06 14:30:06 -0700 |
| commit | 0d16228ae22fa2e1a00e62dc099eea08da7717fe (patch) | |
| tree | 067573914132892dc1336dcdea2c8b595f24f871 /source/slang/slang-ir.cpp | |
| parent | 649d533727b31b28397ffb3a530e655ac3861547 (diff) | |
Add command line option for separate debug info (#7178)
* Add command line option for separate debug info
Add command line arg -separate-debug-info which, if provided, produces
both a .spv and a .dbg.spv file. The .dbg.spv file contains full debug
info and the .spv file has all debug info stripped out.
Also add a DebugBuildIdentifier instruction to store a unique hash in
both the output files, so they can be more easily matched together.
A matching API is provided to allow using the Slang API to retrieve a
base and debug SPIRV as well as the debug build identifier string.
Diffstat (limited to 'source/slang/slang-ir.cpp')
| -rw-r--r-- | source/slang/slang-ir.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp index e66ad69ce..89d7a666e 100644 --- a/source/slang/slang-ir.cpp +++ b/source/slang/slang-ir.cpp @@ -3393,6 +3393,13 @@ IRInst* IRBuilder::emitDebugSource(UnownedStringSlice fileName, UnownedStringSli IRInst* args[] = {getStringValue(fileName), getStringValue(source)}; return emitIntrinsicInst(getVoidType(), kIROp_DebugSource, 2, args); } +IRInst* IRBuilder::emitDebugBuildIdentifier( + UnownedStringSlice buildIdentifier, + IRIntegerValue flags) +{ + IRInst* args[] = {getStringValue(buildIdentifier), getIntValue(getUIntType(), flags)}; + return emitIntrinsicInst(getVoidType(), kIROp_DebugBuildIdentifier, 2, args); +} IRInst* IRBuilder::emitDebugLine( IRInst* source, IRIntegerValue lineStart, |
