Description

A memory leak occurs in global distance fields when bDisableWorldRendering=true

As a workaround until this is fixed, you can disable the logic that checks bUpdatedThisFrame *in *GlobalDistanceField.cpp locally.

Steps to Reproduce
  1. DF AO must be enabled and used
  2. set bDisableWorldRendering to false -> as a result FScene::IncrementFrameNumber() is not called and FrameNumber is not incremented
  3. keep updating/moving stuff in background -> DistanceFieldSceneData.PrimitiveModifiedBounds is not empty
  4. Render in scene capture -> ComputeUpdateRegionsAndUpdateViewState() is called. In it
ClipmapViewState.Cache[CacheType].PrimitiveModifiedBounds.Append(Scene->DistanceFieldSceneData.PrimitiveModifiedBounds[SourceCacheType]);

is called every frame, but PrimitiveModifiedBounds is never emptied, because *bUpdatedThisFrame *is true, because FrameNumber is never incremented.

Note: appending to PrimitiveModifiedBounds takes longer and longer every frame, since it's never emptied, so low FPS can be observed too. Eventually, memory is exhausted.

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Graphics Features
Affects Versions5.35.45.55.65.7
Target Fix5.8
CreatedJan 7, 2025
UpdatedNov 13, 2025
View Jira Issue