diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/slang.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/slang.h b/include/slang.h index 11538bcac..9797ea00c 100644 --- a/include/slang.h +++ b/include/slang.h @@ -1025,6 +1025,7 @@ typedef uint32_t SlangSizeT; SkipDownstreamLinking, // bool, experimental DumpModule, + EmitSeparateDebug, // bool CountOf, }; @@ -4163,9 +4164,32 @@ struct IMetadata : public ISlangCastable SlangUInt spaceIndex, // `space` for D3D12, `set` for Vulkan SlangUInt registerIndex, // `register` for D3D12, `binding` for Vulkan bool& outUsed) = 0; + + /* + Returns the debug build identifier for a base and debug spirv pair. + */ + virtual const char* getDebugBuildIdentifier() = 0; }; #define SLANG_UUID_IMetadata IMetadata::getTypeGuid() +/** Compile result for storing and retrieving multiple output blobs. + This is needed for features such as separate debug compilation which + output both base and debug spirv. + */ +struct ICompileResult : public ISlangCastable +{ + SLANG_COM_INTERFACE( + 0x5fa9380e, + 0xb62f, + 0x41e5, + {0x9f, 0x12, 0x4b, 0xad, 0x4d, 0x9e, 0xaa, 0xe4}) + + virtual uint32_t getItemCount() = 0; + virtual SlangResult getItemData(uint32_t index, IBlob** outblob) = 0; + virtual SlangResult getMetadata(IMetadata** outMetadata) = 0; +}; + #define SLANG_UUID_ICompileResult ICompileResult::getTypeGuid() + /** A component type is a unit of shader code layout, reflection, and linking. A component type is a unit of shader code that can be included into @@ -4384,6 +4408,16 @@ struct IComponentType : public ISlangUnknown SlangInt targetIndex, IMetadata** outMetadata, IBlob** outDiagnostics = nullptr) = 0; + + virtual SLANG_NO_THROW SlangResult SLANG_MCALL getTargetCompileResult( + SlangInt targetIndex, + ICompileResult** outCompileResult, + IBlob** outDiagnostics = nullptr) = 0; + virtual SLANG_NO_THROW SlangResult SLANG_MCALL getEntryPointCompileResult( + SlangInt entryPointIndex, + SlangInt targetIndex, + ICompileResult** outCompileResult, + IBlob** outDiagnostics = nullptr) = 0; }; #define SLANG_UUID_IComponentType IComponentType::getTypeGuid() |
