Summary
In Unreal Engine 5.8.2, streaming dense World Partition foliage causes severe frame hitches associated with distance-field object-buffer replacement and GPU residency synchronization.
The distance-field Data/Bounds buffers change between 1,664 MiB and 3,328 MiB when the active object population crosses a power-of-two capacity threshold. Temporary replacement allocations can overlap at approximately 4,992 MiB.
GPU captures reproduced residency-fence waits exceeding one second, correlated with long occlusion-query waits. The problem occurs during repeated forward/return traversal, including standalone testing.
We are using an RTX 5080 (16 GB VRAM) at 5120×1440. Existing measurements show insufficient conservative VRAM headroom for simply retaining larger buffers.
We would appreciate Epic’s guidance on whether this is a known issue, whether a supported correction exists, and whether the UE 5.8.3 D3D12 synchronization change (UE-387332) addresses this particular resource-retirement and residency path.
What Type of Bug are you experiencing?
Rendering (Graphics / Niagara)
Steps to Reproduce
- Open a dense, foliage-heavy World Partition level in Unreal Engine 5.8.2 using DirectX 12 with distance-field lighting enabled.
- Run the level in standalone mode at 5120×1440 on an RTX 5080 (16 GB VRAM).
- Traverse between World Partition cells containing large numbers of distance-field-enabled foliage instances.
- Repeat forward and return traversal across the same cell boundaries.
- Observe frame times and GPU residency synchronization while distance-field object counts cross the 8,388,608-slot capacity threshold.
- In the affected project, the combined distance-field object buffers resize between 1,664 MiB and 3,328 MiB, correlating with severe frame hitches.
Note: This is a project-specific reproduction procedure, not a verified minimal reproduction project.
Expected Result
World Partition streaming should update distance-field resources without causing severe gameplay freezes. Buffer growth, contraction and deferred retirement should avoid excessive GPU residency/synchronization stalls during normal traversal.
Observed Result
Repeated traversal produces severe frame hitches associated with distance-field object-buffer replacement.
Captured examples include a 1,230 ms occlusion-query wait and a linked 1,154 ms residency-fence wait. These durations overlap and must not be added together.
On a separate return transition, a 231.12 ms frame included a 223.00 ms occlusion-query wait and a linked 171.94 ms residency-fence wait.
The buffer capacity oscillates between 1,664 MiB and 3,328 MiB, with temporary allocation overlap reaching 4,992 MiB.
The underlying Windows/NVIDIA synchronization cause remains unresolved. No VRAM-exhaustion warning was required to reproduce the stalls.
Affects Versions
5.8
Platform(s)
Windows
Additional Notes
Additional technical findings:
- Engine: Unreal Engine 5.8.2, CL 56702186, DirectX 12.
- Hardware: NVIDIA RTX 5080, 16 GB VRAM.
- Distance-field object-buffer allocation uses power-of-two capacity sizing.
- The observed transition crosses the 8,388,608-slot threshold, causing replacement allocations.
- The issue occurs in standalone execution as well as PIE.
- The relevant allocation path appears unchanged between official UE 5.8.2 and 5.8.3 source.
We identified UE-387332 (CL 57782924), a UE 5.8.3 D3D12 synchronization correction involving deletion-queue backpressure and residency-set handling. Its applicability to this issue remains unproven.
We would appreciate guidance on whether Epic has a supported workaround or correction for distance-field object-buffer replacement/retirement stalls, and whether UE-387332 is relevant.
Detailed diagnostic measurements and source references are available if needed.