We’re seeing a deadlock on cook when the ShaderCompilingThread triggers lazy init of Oodle compression. The lazy path calls IModularFeatures::RegisterModularFeature which broadcasts to delegates that try to acquire the GC lock, creating a circular lock dependency with the shader compilation mutex.
We’ve temporarily worked around this by deliberately initializing the Oodle compression format on the GameThread (by calling FCompression::GetCompressorVersion(NAME_Oodle); in LaunchEngineLoop.cpp)
Is this a known issue? I could not find any trace of it on UDN, but my search fu may not be strong enough!
[Attachment Removed]
Not a known issue AFAIK. Are you seeing this in the ShaderCompilerWorker process , or in Editor ? Can you post a call stack ?
[Attachment Removed]
[mention removed] I was running a cook via command line. I did post a callstack, and what I was doing in all the extra boxes on the question form, but now can only see the basic description?
[Attachment Removed]
Sorry, the interface we’re seeing for this on our end puts the pertinent info in weird places. We have the callstack.
Looks to be a bug. We’re not aware of anyone else running into this, not sure why it’s happening for you. For now your workaround should be fine.
[Attachment Removed]
Thanks [mention removed], I was / am confused as I can’t see any of that extra info I entered either. Anyway, please do let me know if I can provide any more details!
[Attachment Removed]
Forgot to update you on this, but a fix for this landed in 5.8. I’ll close this ticket unless there’s further questions!
[Attachment Removed]