The engine does not free the LevelRenderAssetManagers array elements in FRenderAssetStreamingManager when changing lighting scenarios.
Following code can avoid this issue.
void FRenderAssetStreamingManager::PropagateLightingScenarioChange() { FScopeLock ScopeLock(&CriticalSection); QUICK_SCOPE_CYCLE_COUNTER(STAT_FRenderAssetStreamingManager_PropagateLightingScenarioChange); // Note that dynamic components don't need to be handled because their renderstates are updated, which triggers and update. TArray<ULevel*, TInlineAllocator<32> > Levels; for (FLevelRenderAssetManager* LevelManager : LevelRenderAssetManagers) { if (LevelManager!=nullptr) { Levels.Push(LevelManager->GetLevel()); LevelManager->Remove(nullptr); delete LevelManager; // add this line } }
Result:
StreamingManager memory amount keeps increasing.
The screenshot below is from an hour after launch.
[Image Removed]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-97571 in the post.