Limited By CPU / Limited by main thread /wo 100% Single Core Utilization - Why?

Thanks a lot I’ll try that.


Thanks Baracus250, I tried the dev mode and indeed I am limited by the main thread like everyone else. Looks like it mentions DX11 in the corner.

The screenshot was in 2d, and in VR it displayed the same.
My Ryzen 5 3600 doesn’t seem to suffer from overloading - most probably it is not that fast - I could see an average of 70% load when using hardware monitor.

I’ll wait some more for MSFS improvements before considering a CPU upgrade.

1 Like

The game is completely limited by main thread, nothing I do changes that.

My CPU (5900x) is considerably stronger in terms of tech than my GPU (2080ti) yet it makes no difference. Something definitely changed as after SU5 it was the other way around, and the GPU was the weak link, running at 100% all the time.

People talk about upgrading their CPU but where do you go from a 5900x? If the game is coded in such a way that even one of those can’t deal with it there are bigger problems to address.

Having just balanced my system, a few tips I’ve found. Mainthread limited situations (and their manifestations of stutters) are usually due the GPU not being loaded enough compared to the CPU, so GPU often looks like it’s not busy as it’s constantly waiting for CPU to give it data. Rebalancing (as discussed on numerous other threads now on here) involves loading up the GPU more to lessen the demand on the CPU. If you load the GPU up too much (or don’t have enough GPU) then you can hit GPU limited at 100% which works, but isn’t so great either. Best situation is to find a balance. So, to reduce CPU load and get out of CPU limited situations reduce both LOD sliders. To increase GPU load increase many of the other graphical sliders (other than LOD’s) up a bit. If you have a high end GPU and are not running it at 4K output, then you can also further load up the GPU quite easily by increasing render scale a bit which is a great way to tweak GPU load as it has a direct correlation.
ALSO I have found great smoothness in FS by switching it from variable FPS (so think 59 over clouds ->28 on approach, maybe with some visual stutters). to LOCKED 30 FPS (in game with VSync ON) and crucially too, monitor refresh rate at 60Hz (higher refresh rates can be detrimental to FPS). 30FPS when you get it everywhere consistently in FS can feel really smooth and it is where FS was I believe designed to operate. FPS chasers are I’m afraid chasing the wrong metric with this sim. The metric should be consistent smoothness.

6 Likes

Thanks a lot.
I changed the GPU render scale sliders a bit and started to get stutterings.
I need to play with the LOD a bit and decrease tree density.

Hi @Skyvertical you can try to set your secondary scale in usercfg.opt to 0.800000 instead of above 1.000000 and save this will change the way renderscale slider behave, make sure if you are doing this the usercfg.opt is Not marked as read only because than the change will not save. Also make a copy before u save so you can revert back to your former setting.

1 Like

Having seen this theory mentioned again (by you) I thought I’d give it a try. Honestly, up until now I thought it was some placebo old wive’s tale :grimacing:

I was getting anywhere between 40-60fps (mostly above 50) but they did tend to be a bit all over the place particularly when panning.

I previously limited the FPS to 60 in the Nvidia CP but disabled that and set VSYNC on the the sim and the FPS to 30. My monitor is a 4K 60hz panel. What is weird is that it seems to a smoother experience than 30fps really ought to be. My CPU is now no longer thrashing itself and the whole experience is much better. I’m still getting this stable 30fps at LHR with a tonne of AIG Traffic injected. FWIW my TerrainLOD is 230 and ObjectLOD 200. 90% of other settings are Ultra with just a couple set to high.

I was a cynic, I’m now a convert. Definitely worth a try if you haven’t done it before.

1 Like

I have TLOD at 200 (could go a bit higher) and OLOD at 200, but if people are more CPU limited then drop these values further. 30 FPS/60Hz is a game changer for me (I’m running at 4K onto a UHD TV). For me the Pilot Pete video is key all of those settings including some settings in NVCP. Low latency mode on etc. I don’t restrict FPS in NVCP at all, just in game. Yes 30FPS when smooth all round can feel like more, once you get over the mental battle of trying it! (I was a cynic too). It’s what people are striving for but IMO are wrongly aiming for higher FPS which ends up overworking CPU/GPU resources trying to achieve. In the end of the day everyone has their own hardware specs/combinations & workarounds, and I feel that the devs should have an in game system opitmiser (or separate tool), but overall, following @Grabber523 's ecellent tips on CPU/GPU loading/balancing coupled with 30FPS/60Hz operation has led me to the smoothest FS experience yet.

5 Likes

Thank you very much. Did the change and got an +2 fps in dense areas and +4 FPS at higher altitudes.

1 Like
  • Disable Photogrammetry if experiencing heavy stutters on the ground and in the air. Under DATA settings
1 Like
  • Disable Photogrammetry if experiencing heavy stutters on the ground and in the air. Under DATA settings

How can you make the settings to shift the graphics processing to and from the CPU and GPU??

I haven’t taken a close look at the graphics parameters after SU10. Prior to SU10, the two main parameters impacting performance and graphics quality are Terrain Level of Detail and Objects Level of Detail. These directly affect how realistic looking everything looks. More detail equals more realistic. There are sliders for both of these, terrain 10-400: object 10-200. The higher the number provides more detail. The CPU prepares the graphic frames according to the specific level of detail before sending them to the GPU. The higher the Level of Detail, the more CPU processing is needed. When the CPU isn’t processing frames fast enough the GPU isn’t doing much work. If the Level of Detail is very low, the CPU doesn’t have a lot of work to do because their isn’t much detail. So it can create and send the frames the GPU needs very fast. GPU utilization goes up as the CPU sends frames faster.

To “shift” workload means trading performance for detail and the “currency” is FPS. Since PCs have different hardware, there is no “best” level of detail. Some people take the time to try different combinations to see what they like the best, i usually use 150 for both and my GPU runs 90-100% utilization. This means the CPU is generating frames fast enough for the GPU to provide maximum FPS. The quality of each frame can be improved by using higher numbers but FPS will decrease.

There are other graphic parameters that impact performance. DLSS was added in SU10 and can have an impact. Because the CPU does other things besides generating graphics, the more things the CPU has to do, the more impact it can have. For example, AI Traffic if set high enough uses a lot of CPU. The GPU cannot do any processing to help the GPU.

1 Like

The mainthread is the single thread that controls the linear processing of FS2020.

It does tasks and farms out tasks to other threads.

But it has to follow a linear progress. Wait for other threads to complete their tasks.

You can shove the throttle all the way but the airplane doesn’t jump into the sky. You have to release the parking brake, then roll down the runway, build up speed until rotation.

New to forums, so there may be a newer thread. However, a little more general of a question. As it seems CPUs will be limited mostly by a single core performance, would the speed of that single core be the primary factor? I’m currently running i5-6600K at 4.8ghz with a 2070. Usually around 25-35 FPS, CPU limited. How would upgrading to newer chip with more cores and a little higher speed really benefit MSFS?

Secondly, VR is tough with this setup, and audio is frequently skipping, especially with head motion. I would expect this performance would improve pretty significantly with more cores/hyper threading?

Beyond 8 cores or so doesn’t matter much, as MSFS is lightly-threaded and only uses a few threads. Typically mainthread render time scales with frequency. A higher single-core frequency = better mainthread performance. I wouldn’t dwell too much in comparing your frequency with the latest generation frequency, as typically frequencies can only be compared within the same generation or architecture. The latest 13th gen Intels at 4.8 Ghz will significantly outperform your 6600K at 4.8 Ghz thanks to the massive IPC gains between these generations.

Below is an image of recent CPU benchmarks for MSFS (sorry for those that see this all the time, but it’s a very good benchmark synthesis). Note that the 5800X3D is an outlier because it has a huge L3 cache, which can significantly increase performance despite its lower frequency.

1 Like

This is great. Thank you.