One of our level designers noticed a big performance drop and even a crash due to full memory recently, when sculpting a large (8k) landscape. After a bit of debugging, I found that the landscape is creating tons of textures per tick, whenever you sculpt it.
This is NOT related to the height field GI or mesh distance field generation, because both are turned off.
I tracked it down to the UCookOnTheFlyServer::TickPrecacheObjectsForPlatforms function, which seems to cache landscape textures, but never releases the old ones.
Steps to reproduce are simple: Create a new landscape with any size, assign the Material’/Engine/Tutorial/Landscape/TutorialAssets/Landscape_Material.Landscape_Material’ (or any other, really, but with this one it works reliably) to it and try to sculpt it. You will get tons of “LogTexture:Display: Building textures: Texture2D_XXX (BGRA8)” messages in the output log.
What I noticed: Not all landscape materials seem to trigger this caching, but I haven’t found which exactly is the problem with those that trigger it.
This also appears in new projects.
Our engine version is 4.11.2.
It would be nice if someone can tell us if this is a known issue, why it caches so many textures all the time and maybe (if already fixed) in which github commit this was fixed. We can’t upgrade to a newer engine version at the moment, but I can potentially merge in fixes of higher versions.
Thank you very much.
I just checked and it seems the problem above also fills up the DDC quite a lot. We have a DDC of 400GB after just a few days, where we had only a few GB before we created the new landscape…