From 0d16228ae22fa2e1a00e62dc099eea08da7717fe Mon Sep 17 00:00:00 2001 From: jarcherNV Date: Fri, 6 Jun 2025 14:30:06 -0700 Subject: 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. --- source/slang/slang-ir.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/slang/slang-ir.cpp') 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, -- cgit v1.2.3