Hi Jonathan, thanks so much for the detailed response, that’s super helpful information.
To answer some questions, we have 64 ‘tile’ levels and each of those has 16 LandscapeStreamingProxies, so this means a total of 1024 streaming proxies and 1024 landscape components I believe. I’m a bit unclear how “landscape components per proxy” is determined or set, but it appears we have 1 per proxy.
Our landscape tile levels are streamed in/out by distance, and we have LOD1 versions of all of those too with LanscapeMeshProxyComponents instead. That means there are usually around 6-8 real landscape tiles loaded at a time (so 96 components/streamingproxies) and the rest will typically be loaded as proxy meshes, and the two types swap in/out as you move around.
Our layers look quite lightweight from what I can tell, at least it’s all green in the visualiser you mentioned.
The info on how weightmap/heightmap textures are shared is really useful, I think this is part of where we’re going wrong, having 16 streaming proxies per level and 1 component per proxy means we’re not benefiting from any of the weightmap/heightmap texture sharing you mention and we’re hitting the worst case for those. And having multiple streaming proxies per level doesn’t make sense to me as it’s the unit of level streaming.
I’m also going to investigate our texture group settings further as it’s clear from using listtextures that all mips are always being loaded and no texture streaming is happening with these!
Thanks again for the info, I’ll try making some of these changes and report back if I have any further questions.