From 9eb6a84285c1597d723be13924a7ad2991cf717f Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 7 Aug 2023 15:00:38 -0700 Subject: Fix `Val` deduplication bug. (#3050) * Fix `Val` deduplication bug. * Fix * Concat stdlib files into a single module. * Remove unnecessary logic in `resolve`. --------- Co-authored-by: Yong He --- source/slang/slang.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'source/slang/slang.cpp') diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 266533874..cb6e88db4 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -311,9 +311,13 @@ SlangResult Session::compileStdLib(slang::CompileStdLibFlags compileFlags) } // TODO(JS): Could make this return a SlangResult as opposed to exception - addBuiltinSource(coreLanguageScope, "core", getCoreLibraryCode()); - addBuiltinSource(hlslLanguageScope, "hlsl", getHLSLLibraryCode()); - addBuiltinSource(autodiffLanguageScope, "diff", getAutodiffLibraryCode()); + StringBuilder stdLibSrcBuilder; + stdLibSrcBuilder + << (const char*)getCoreLibraryCode()->getBufferPointer() + << (const char*)getHLSLLibraryCode()->getBufferPointer() + << (const char*)getAutodiffLibraryCode()->getBufferPointer(); + auto stdLibSrcBlob = StringBlob::moveCreate(stdLibSrcBuilder.produceString()); + addBuiltinSource(coreLanguageScope, "core", stdLibSrcBlob); if (compileFlags & slang::CompileStdLibFlag::WriteDocumentation) { @@ -359,6 +363,8 @@ SlangResult Session::compileStdLib(slang::CompileStdLibFlags compileFlags) SlangResult Session::loadStdLib(const void* stdLib, size_t stdLibSizeInBytes) { + SLANG_PROFILE; + if (m_builtinLinkage->mapNameToLoadedModules.getCount()) { // Already have a StdLib loaded @@ -373,8 +379,6 @@ SlangResult Session::loadStdLib(const void* stdLib, size_t stdLibSizeInBytes) // Let's try loading serialized modules and adding them SLANG_RETURN_ON_FAIL(_readBuiltinModule(fileSystem, coreLanguageScope, "core")); - SLANG_RETURN_ON_FAIL(_readBuiltinModule(fileSystem, hlslLanguageScope, "hlsl")); - SLANG_RETURN_ON_FAIL(_readBuiltinModule(fileSystem, autodiffLanguageScope, "diff")); return SLANG_OK; } -- cgit v1.2.3