Yeah, it is pretty odd until you realize that clearly none of them know anything about complex games programming. As if it will ever be desirable or possible to balance near 100% CPU with 100% GPS on a PC, ever.
I think many flight sim people like to play with hardware more than just play the game. I know I had to play with hardware all the time in FSX/X-Plane. It is one of the reasons I love MSFS, it looks amazing and plays infinitely better without ever having to touch a thing.
Although it’s hard to balance GPU and CPU, it is perfectly possible to at least saturate some cores to extract the most performance. Take a look at Doom Eternal, it’s beautifully balanced core-wise with almost all of them maxing out. Oh, and it runs smoothly as well, with texture streaming from high latency IO and no stutters.
The argument that you don’t saturate the CPU because you’d get stutters for example is nonsense. You don’t underuse your CPU because you might stutter. The CPU doesn’t stutter. Higher latency I/O causes stuttering and no “CPU usage buffer” would fix that (the CPU going from 75% to 100% won’t make your SSD to RAM or RAM to CPU data exchange any faster), so it doesn’t make sense to penalize your CPU processing power for that.
I think my CPU utilization in Doom Eternal is something like 30%. Duno never cared… all i know is that my GPU is at 100% thats all thats important in Video Games
In Video Games, If my CPU Utilization is higher than my GPU than im doing something wrong or the Game is not good optimized. Best case for me would be all CPU cores evenly used also the logical ones and lower than my GPU, since i want my GPU always at 100%. Easy to get in 4K Gaming.
That’s the problem. Take a look at the picture I’ve posted. I’m already maxed out on graphics, there’s nothing more to do to increase my GPU usage and get it closer to 100%. It’s running on 70% exactly because my CPU is holding it down (idle time while the CPU gets done with its tasks on the game loop)
I’m aware that I’ll ever be CPU bound (my GPU is quite higher end than my CPU), but I’m just searching for at a way to at least use 100% of one of my cores instead of only 75%, so I can drop my CPU frametime (currently 25ms) to at least get it a bit closer to my GPU frametime (16ms and already maxed out).
I see. Well im not a programmer so i cant tell what it comes down to other than speculating.
I got a good fps increase from upgrading my old i7 to an i10 (intel). Since im at 4K i dont see GPU usage drops. Its constantly at over 95%. Have you experimented with deactivating CPU cores (physical and logical). Maybe your Ram is holding it back due to memory starvation.
Like i already mentioned CPU usage optimization is work in progress and i dont know in what direction it goes and It might also be that some CPUs just utilize different across AMD/Intel and in their generations of Models.
I was comparing my setup against a friend’s one with a very similar system (but he was getting much better CPU frametimes) and the only thing different was he had virtualization turned off.
Guess what? I disabled SVM in BIOS and I’m now getting much better core utilization. That main core is now on 90% instead of 70, 75%. My CPU frametime dropped from 24ms to 17ms (paired with my GPU’s) and the FPS increased from 38 to 52 around the same spot.
Here’s a new screenshot, more or less on the same place, time and weather. I haven’t changed anything on FS settings between the first screenshot and this one:
Pretty happy with the result and I leave that as a suggestion for people struggling with CPU limits. Try disabling virtualization on the BIOS (SVM/AMD-V for AMD and VT-x for Intel) and see if it makes a difference. Solved for me.
Wow, seriously? I might have a go, but I do use it from time to time.
Did you have Hyper-V enabled also (which may well impact performance)?
I wonder how many other have it enabled Just checked mine and had already disabled it.
Give it a try. Honestly, I haven’t changed anything else except for that single option in the BIOS. I don’t have a clue why it had such an impact either.
And regarding your second question, yes, I still have Hyper-V installed and enabled on W10 as I use WSL2 quite a bit. I only disabled the hardware virtualization (VSM for AMD, VT-x for Intel). Just be aware that disabling hardware virtualization will probably have quite an impact on your VMs if you do some heavy work on them, but in my case I use it more to run a Debian shell on Windows, so it doesn’t make that much of a difference.
I tried it, and it did help a bit, though I only did one run each so I’m not sure how big the variance is.
45.3 fps average before, 50 after. 1% percentile 31.8 vs 28.8. So there’s an improvement.
MainThread limited 98% of the time in both cases. A320 (stock), no traffic/MP.
However, my Hyper-V VM can’t start and WSL2 doesn’t work either:
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/wsl2-install
[process exited with code 4294967295]
I’m not surprised, but are you saying your WSL2 VM works?
Sorry, my mistake. I thought I was on WSL2 but I’m still on WSL1, which doesn’t seem to require hardware virtualization.
Nevertheless, I’m glad that disabling it also (sort of) worked for you too. More than 10% fps increase, good stuff tbh! It also means that it’s not something specific to my system and more people might benefit from this tweak.
Thanks for sharing your experience.
Well it wont work for me obviously (4K) but im happy it worked out for you.
I think it’s not VT itself giving you the gain, but something on your computer that was using VT and now gets disabled along with VT.
I tried and doesn’t see any different. I don’t enable Hyper-V or WSL2 on the PCs.
Well I just tried disabling virtualization and wow, my sim is so much smoother now. Thanks for the tip.
I tried again to check with run variation, and indeed there is a lot of variation.
Top to bottom these are SVM off, on, off, on.
So with SVM off I get from 44 to 49.9 fps and with it on I get 39.1 to 45.2. Doesn’t sound conclusive since one on-run gave better results than one off-run. But certainly it looks like there may well be a difference.
Edit: Wow, I just broke the occasional 100 fps in the Cessna 152 over rural land (near ESSA, Stockholm)!
Not sure what I’d have with SVM on however. I converted back to WSL1; I use it very rarely so the downsides don’t matter for me at all. The Hyper-V VM was also not really necessary.
I’ll still miss the Android emulator though, but it’s only a reboot away and I usually develop in spurts, far from daily or even weekly.
Wouldn’t this be a Windows 10 problem? Or a problem with CPU architecture? If virtualization is enabled but not used, I would think that MSFS performance should be identical.
Great stuff @Aeluwas , thanks for sharing!
I’d think so too, but for some reason, it is affecting. Perhaps is what @NguyenQHy said, that there was something in my system making use of virtualization that now also got disabled due to VSM not being available anymore. I just don’t know what it may be, since I don’t have any virtualization stuff except for WSL1, which doesn’t even use hardware virtualization.
It wouldn’t make a whole lot of sense that disabling virtualization would improve performance unless there was a very odd bug occurring.
However looking at the screenshots something else is very apparent to me. In the 1st image MSFS claims to be using only 4GB of RAM, even though the system is at ~80% memory usage. In the 2nd image MSFS has ~8GB memory usage for the same total system memory load.
In other words, this PC is under extreme memory pressure, and the performance improved because the game managed to get twice as much memory the second time out (probably fresh reboot?). That’s why the performance increased.
I can confirm, disabled virtualisation too. And much smoother sim!. Disabled Vtd on a Gigabyte ZD3P mobo