Hello fellow UE 5 trailblazers!
After days of targeted testing we acknowledge that Z space is not being taken into account by World Partition’s content loading. We have eliminated all other possibilities.
Imagine, if you will, a Blade Runner type city filled with content and much Z traversal. Now why isn’t something like that being considered?
We know that we are not using World partition as it was intended but we like to push limits and we have found the limit. We currently have close to 16,000 actors in a half finished level. Our video RAM sits around 4 to 5.5 Gigs. And our system RAM sits around 10-12 at its peak.
Upon entering areas with greater Z depth, rich with content, we experience lock up. Then after 2 minutes the render thread kills itself. This only happens when World Partition is enabled IN BUILDS, never in the editor. We do get well over 100 FPS in all areas. The lock up only happens in builds. Performance is smooth in the editor. The OS does not report the build as not responsive.
Admittedly our level is unique in that it is mesh based rather than terrain and the verticality could be called extreme when compared to traditional levels.
We understand that we could address this by using Streaming Volumes. We also understand that we could create smaller tighter levels. This would be working around World Partition’s limitations. Should we just accept that or is this something Epic intends to address?
OR do we need to write our own Z depth support?
Also curious if anyone else is trying to do something like us?
Please feel free to discuss. Thoughts and suggestions welcome.
Error for reference
Fatal error: [File:H:\current\UE5\Engine\Source\Runtime\RenderCore\Private\RenderingThread.cpp] [Line: 1243]
LogWindows: Error: GameThread timed out waiting for RenderThread after 120.00 secs
#if !WITH_EDITOR
#if !PLATFORM_IOS && !PLATFORM_MAC // @anonymous_user_5851a2121 MetalMRT: Timeout isn’t long enough…
// editor threads can block for quite a while…
if (!bDone && !bRenderThreadEnsured)
{
if (bOverdue && !bDisabled && !FPlatformMisc::IsDebuggerPresent())
{
UE_LOG(LogRendererCore, Fatal, TEXT(“GameThread timed out waiting for RenderThread after %.02f secs”), RenderThreadTimeoutClock.Seconds() - StartTime);
}
}
#endif
#endif