Steps to Reproduce

A licensee reported that it crashed when he was using UShaderCodeLibraryToolsCommandlet to generate the shader library patch.

The callstack is following, we believe that it was caused by the ShaderHashTable has been Initialized twice and this issue was introduced from CL#9951332.

[Image Removed]

 

[Image Removed]

 

[Inline Frame] UE4Editor-RenderCore.dll!FHashTable::Initialize(unsigned int InIndexSize, unsigned int) Line 256 C++
UE4Editor-RenderCore.dll!FSerializedShaderArchive::Serialize(FArchive & Ar) Line 174 C++
[Inline Frame] UE4Editor-RenderCore.dll!operator<<(FArchive &) Line 108 C++
UE4Editor-RenderCore.dll!FEditorShaderCodeArchive::LoadExistingShaderCodeLibrary(const FString & MetaDataDir) Line 952 C++
UE4Editor-RenderCore.dll!FEditorShaderCodeArchive::CreatePatchLibrary(FName FormatName, const FString & LibraryName, const TArray & OldMetaDataDirs, const FString & NewMetaDataDir, const FString & OutDir, bool bNativeFormat) Line 1257 C++
UE4Editor-RenderCore.dll!FShaderCodeLibrary::CreatePatchLibrary(const TArray & OldMetaDataDirs, const FString & NewMetaDataDir, const FString & OutDir, bool bNativeFormat) Line 2207 C++
UE4Editor-UnrealEd.dll!UShaderCodeLibraryToolsCommandlet::StaticMain(const FString & Params) Line 46 C++
UE4Editor.exe!FEngineLoop::PreInitPostStartupScreen(const wchar_t * CmdLine) Line 3391 C++
[Inline Frame] UE4Editor.exe!FEngineLoop::PreInit(const wchar_t *) Line 3617 C++
[Inline Frame] UE4Editor.exe!EnginePreInit(const wchar_t *) Line 42 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine) Line 127 C++
UE4Editor.exe!WinMain(HINSTANCE_ * hInInstance, HINSTANCE hPrevInstance, char _formal, int nCmdShow) Line 257 C++

 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-95788 in the post.

4
Login to Vote

Cannot Reproduce
CreatedJul 23, 2020
ResolvedFeb 13, 2024
UpdatedFeb 13, 2024