When UGameViewportClient::bDisableWorldRendering is true and the scene is rendered only through manually triggered scene captures, FDistanceFieldSceneData::PrimitiveModifiedBounds is never reset and grows without bound while primitives move (reported ~500 MB/h depending on the scene).
Cause: the per-frame renderer cleanup CleanupViewFamilies_RenderThread (SceneRendering.cpp) is only queued from FRendererModule::BeginRenderingViewFamilies. With world rendering disabled, UGameViewportClient::Draw only calls PerFrameCleanupIfSkipRenderer, and scene captures (USceneCaptureComponent2D/Cube::CaptureScene -> FScene::UpdateSceneCaptureContents -> FSceneRenderBuilder::Execute) never run that cleanup. ResetAndShrinkModifiedBounds is only called from it, so the scene-level array is never reset. The other work in that cleanup (ray tracing scene/SBT EndFrame, IPersistentViewUniformBufferExtension::EndFrame, hair strands end-of-frame, PrevFrameViewInfo update) is also skipped on this path.
Related to [Link Removed], which covers the per-view-state ClipmapViewState.Cache[].PrimitiveModifiedBounds growth caused by the same setup (FrameNumber not incremented). Fixing [Link Removed] alone does not reset the scene-level array.
Workaround: call ResetAndShrinkModifiedBounds on each Scene->DistanceFieldSceneData.PrimitiveModifiedBounds[] entry once per frame after captures (requires a local engine change), or leave bDisableWorldRendering false.
Present in 5.8 and in current UE5/Main and UE6/Main code.
Result: memory grows continuously; Scene->DistanceFieldSceneData.PrimitiveModifiedBounds is never reset.
Expected: PrimitiveModifiedBounds is reset/shrunk every frame as it is when the main view renders.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-404496 in the post.
| 0 |
| Component | UE - Rendering - Features |
|---|---|
| Affects Versions | 5.8 |
| Created | Oct 20, 2026 |
|---|---|
| Updated | Oct 21, 2026 |