World Composition Landscape Performance Issues

I have a 4x4km landscape that I am trying to use with world composition for streaming. I have it broken down to a bunch of 505x505 tiles and dropped into the world comp. It made the terrain just fine. But for whatever reason, my framerate goes from around 100 to 60-70 when simply moving. Not rotating, but walking forward. And it goes back to 100 when standing still. There is only a landscape with NO material in the scene. And I am testing it with the character from the first-person template but with gun and shooting logic removed.

Am I missing something?

Please, this is driving me nuts and is killing performance in my game.

Please, someone. I need help with this. I can’t continue development until this is solved. I can’t even get to adding foliage since it drops framerates as low as 20-30 with just some basic foliage and this broken landscape.

Just guessing here, but are you loading these landscape layers with level streaming? If all the tiles are located in the persistent level they are all loaded, and in this case it means that the engine has to assess all tiles when you move, instead of one big one. Enable level streaming, and add level streaming volumes, then move the corresponding tile into the corresponding level.

I just made the map using the world composition window. That automatically splits the landscape into individual levels and enables distance streaming.

Each landscape tile needs to be its own level. The docs have a tutorial.

I already said the engine does it automatically when using the “World Composition” tool built in. You just feed it tiles and it assembles it into a streamed level with everything separated already. I’m not putting things into one single level because why wouldn’t I just make it one single landscape actor then? That’s what I have been doing for years already. I am generating tiles and giving the game the tiles for it to stream in. I have a whole folder in the content browser full of 49 separate map files, one for each map tile. I didn’t make them, the engine its self did when I used the world comp tool.

How many components per landscape tile?
Each component has a render-thread CPU processing cost. I have a 4x4km map where I used 1009x1009, 63x63 comp. Runs fine with a 5Km streaming distance.

In the “Levels” panel each landscape tile should be represented by a level and be a child of the persistent level (indented).

https://i.imgur.com/r8uk1M5.jpg

In the “World Outliner” each level should have a level bounds and a landscape proxy. I’ve organized mine.

https://i.imgur.com/VHlbCU9.jpg

If everything is setup correctly the only things I can think of are world origin shifting (rebasing) or hardware performance. For comparison I’m running on an AMD FX 8350, 16GB RAM, AMD RX 580 GPU (8GB) and all is good.

The tiles are 505x505 pixels and have 16 components per tile as that is the lowest the editor will allow me to choose in World Comp.

Specs:

16GB RAM

AMD FX-8350 Black Edition CPU

PNY GTX 1660 XLR8 GPU (Factory Overclocked)

Windows 10 64-bit

All drivers up-to-date, project stored on 3tb HDD, but no difference when loading from SSD.

I’m stumped then. I can’t think of anything world comp / landscape wise that would cause your issue.

Out of curiosity have you tested the character in its own level? A 40 FPS dip only on forward/backward movement seems physics related. Something bogging down CMC.

The character is just the default “first-person template” player actor. In all other levels, including the template’s own test level, it doesn’t show any performance dip when walking or strafing.

I’ve managed to drop it to 10fps difference by testing in a standalone window instead of PIE. But that still doesn’t seem right since I don’t get any framedrops at all with one solid landscape.

Hi, I’m having the same issue have you figured it out?

Same problem, Can’t find reason.
I did profiling and on high spike showing high ms on garbage collection. And i tried all tweaking with garbage collection in project setting, even i set panding kill to 30min for test, and still in profiling show garbage collection ms high on level streaming.