I recently upgraded my i7-9700K 8Core, 32GB, 4K system from a 2080Ti to a 3090. After that, I found myself in a situation where I was continually bottlenecked by the main thread or my CPU. It couldn’t feed the 3090 fast enough to keep it working hard.
Tonight I overclocked my 9700K (8Core) to 5GHz all cores, up from 4.6GHz. That tipped the balance back toward the GPU being the bottleneck more often than not.
For reference, my initial settings here are: 4K 100%, Ultra on all terrain details (LOD 200). Wave Quality and all settings below it, which are not important to me, are set to “High”. The following are all done in the Cessna 208B.
Here’s a typical snapshot of various performance metrics… Note that one core is doing most of the work here (Core 8 at 92%). This was consistent. Strangely, this particular snapshot shows “Limited by MainThread” but that flashes occasionally with the majority of the time now spent “Limited by GPU”
LOD 200 by Virtual-Chris (Junk Photos), on Flickr
I get around 55fps on these settings which is up from 45-50 that I had prior to overclocking the CPU. At least the GPU is back to being the limiting factor most of the time, although clearly the CPU optimization is terrible.
Then I shut down and switched to LOD 4 (400?) in the usercfg file. This put more load on the CPU and I was back to being CPU constrained and FPS suffered as a result.
I get around 40-45fps on LOD 400, which is not far off where I was on LOD 200 before the overclock.
LOD 400 by Virtual-Chris (Junk Photos), on Flickr
It is using more cores a bit more, but still Core 8 was taking the brunt of the load, and by no means is the CPU being maxed out. So when running higher LOD, the CPU and GPU are both not fully utilized to their maximum potential. It’s all software. RAM and VRAM usage increases at higher LOD.
The difference in visuals is very noticeable. Here’s a side by side of roughly the same part of Vancouver from roughly the same location…
LOD Comparison by Virtual-Chris (Junk Photos), on Flickr
At LOD 200 nothing is being rendered past the lakes in the middle of the frame. Everything beyond that is completely devoid of features and covered in a flat texture. You would never know there was a major city or two out there. I really can’t do sight-seeing flights without hacking the LOD. It’s an immersion killer to see buildings and complete skylines popping onto the terrain as you get closer.
Then I flew over downtown Vancouver which is a photogrammetry city. Interestingly, this is much better threaded than the regular scenery. CPU core utilization goes up considerably, but even then, the main thread is really stalling the GPU. The GPU is only rendering 20fps and is mostly idle. This is an 8-core 5GHz CPU here.
Photogrametry Fly By LOD 400 by Virtual-Chris (Junk Photos), on Flickr
Photogrammetry also has this effect on LOD 200, but you get more FPS. (note the core utilization fluctuates a lot from nearly all 90% saturated as above to what you see here which is probably on the low-end of core utilization when doing a photogrammetry fly-by)…
Photogrametry Fly By LOD 200 by Virtual-Chris (Junk Photos), on Flickr
My conclusions…
CPU is important for LOD and photogrammetry rendering. This is unlike any other game I own, but then other games I own don’t use photogrammetry or offer these kinds of configurable LOD draw distance options. Unfortunately, the settings that have the most impact on terrain visuals from the air are LOD and photogrammetry. You can get great FPS by compromising on these two visual settings, but then what’s the point of flying around at 60fps if the scenery is popping in under your plane?
I’m still not sure how much throwing more CPU at this problem will help. It surely does make a difference as my own overclock proves. But could you throw enough CPU at this game to solve the photogrammetry penalty?
Asobo clearly has some work to do on optimizing CPU usage when not flying around photogrammetry… one core is heavily loaded while other cores aren not… and that one core can be holding up the whole system from rendering more frames. Interestingly though, the Photogrammetry stuff is already fairly well multi-threaded. I’m not sure what they can do with that to optimize it.
Ultimately, by overclocking my CPU, I’ve bought myself enough frames to be happy at LOD 4 (400) as I can fly around most places at around 40-45fps. I’ll take 45fps and high LOD rather than 60fps and low LOD.
The thing that will be chewing at me, is how much more performance I can get by upgrading to an AMD 5950X. Ugh. Before I spend more money, I’m really hoping Asobo can come along with some optimizations to get everyone some free performance gains.
I’m interested in any other’s interpretations of this, and other thoughts you might have. It’s the most fun I’ve had dissecting computer performance in a long time!