PSA: Use the in-game FPS Counter to check for Performance Bottlenecks

I recommend trying out the in-game FPS counter to find out what’s causing your FPS bottleneck.

To activate the in-fame FPS counter you have to turn on the developer mode in the settings. You’ll find this in the General Menu > Developers

Next, turn on the FPS counter:
msfs_fps1

Then check the info on the FPS counter:
msfs_fps2

If you see “Limited by MainThread” (as shown above), this means you are limited by your CPU. Otherwise you’d see “Limited by GPU”. You can also check the RAM and VRAM usage.

FYI, I have a Ryzen 3600 with a 2070 Super. These FPS were clocked with a GA aircraft.

5 Likes

I did this yesterday and was “Limited by GPU” so turned off vSync which resolved that however now get “Limited by MainThread”.

How would one go about resolving this? I’ve got a Ryzen 3900x

1 Like

I’m getting the same issue. It appears that the SIM is pushing hard on my first core, while my other 15 just sit by idling. Sounds like the SIM is not fully optimized for multi threading and isn’t evenly distributing the workload across multiple cores.

1 Like

Judging by all the posts I’ve been reading as well as my own experience, I think that MSFS is not fully optimized to use all cores. I hope Asobo will be able to fix it in future releases.

I don’t have any concrete evidence, but I have the feeling that MSFS will run better on an overclocked Intel rather than an AMD because of Intels better single core performance. Next gen Vermeer AMD CPUs will probably change that however.

Well, you’re always going to be limited by something, whatever is the slowest part in your setup for this game and how it’s architectured and optimized. Upgrade your CPU enough and it will go back to GPU limited, upgrade your GPU and back to CPU. Upgrade both with hardware from the future and at some point you’ll be limited by the refresh rate of your monitor.

2 Likes

I have an i7-8700K @4.9. I also have a 1080ti and figured the graphics card would be the issue. After running the developer tool I actually never see “limited by GPU” unless i’m in a loading screen. I constantly see “limited by CPU” when the sim is loaded and i’m flying. Even lowering the settings continues to show that my CPU is the limiting factor. How can I view each core’s performance? Task manager just shows one CPU graph when this is a 6 core processor. Thanks!

EDIT: Found it by right clicking the graph and choosing logical view. Now its time to see what the usage looks like :slight_smile:

I’ve got CPUID So will be monitoring that but when I’ve been playing, It seems like it’s not utilizing the full cores at all. But hey, it’s early days for the sim so we’ll have to see what it brings over the next few weeks/months etc

Thank you for this tip, Great help in figuring what to turn down to get an acceptable FPS. My only issue now is how to fix “Limited by Main thread” I did check and all 4 cores at 90-100%

if you right click on the graph > change gragh > logical proccesors

then you will see each cpu core + the ones created by hyperthreating / smt

1 Like

I get a Limited by Coherent GTDraw. What ever that means.
Thats when im in the 787 btw.

Thanks … I do a lot of overclocking and had disabled hyper-threading… Turned it back on and now get much better FPS and all cores now use 50-70% and only get limited by thread in high density areas.

I have the exact same framerate in 4k, 1440p and 1080p with a 2080ti…

My cpu is a 3900X OC’ed to 4.4ghz in all cores with SMT on, water cooled, 32gigs DDR4 3600 CL16 and I get the “limited by mainthread” in every res not 4k.

That makes absolutely no sense to be bottlenecked by a 3900X cpu.

You’ll need to understand how programs like these work; there’s a ‘Main thread’, the thread that coordinates all the work the other threads do, and makes sure they stay in sync. This ‘Main thread’ can only run on a single core. So it doesn’t matter if you have 8 cores or 100 cores, There will always be a single core that’s running the main thread.
edit: The other cores will be loaded pretty evenly, so on a 6C/12T CPU (like the R5 3600) you’ll see the main thread core on 98%, and the others on like 25%. On a 12C/24T CPU you’ll see the main thread on 98%, and the rest of the other cores on around 12%, or some around 20%, and some completely idle, since there are just not enough tasks to hand out to the other cores.

There’s not a single game that will make 100% use of all your cores, only specialized productivity software optimized for multi-core workloads will do that (like video editing/rendering software).

It’s just how it works.

Asobo have been working the last few patches to offload more work from the main thread to other threads, but every task that gets moved to another core, will also require resources from the main thread core to make sure that that new task as well stays synced.

It will probably keep improving in the future, but it will never utilize all cores fully.

1 Like

Sure, I understand that, but the fact is that the overall performance got much worse since the last update and there’s literally no difference in FPS if I set a lower resolution.

This “game” is not optimized!

That’s because it’s a Sim. The CPU is handling a lot of complex stuff like the flight model, autopilot, AI aircraft etc etc where the resolution you run at has 0 effect, those calculations have to be done regardless of the resolution. That’s why it helps to have a higher clocked CPU, as long as the sim has all the cores it needs. Adding more cores (which is what a 3900x has) doesn’t help at all.

For most ‘games’ as you call them, the CPU is almost exclusively busy feeding the GPU with data, so the behaviour is vastly different.

Can there be improvements in optimization? Sure, which is what they’re doing. But as said, due to the nature of this sim, it will only help up to a certain point. Better GPU’s only allow for higher resolution / better effects if the main thread is limiting the FPS (which is what you’re experiencing).

Well, I tried with the 10900K and it didn’t change (and many say the 10900K is the best in single-core gaming performance)

The 10900K has a base frequency of 3.7GHz, and a max. boost of 5.2GHz. It won’t be able to run that ‘main thread’ core at 5.2 for a long time, so it will throttle down, most likely to around the same frequency your 3900X is doing. It’s a 10C/20T CPU, so it’s logical it behaves equally.

I’m running my 3900X at 4.4GHZ all cores, ram at 3600mhz and its bottlenecking since last update

1 Like

Running a slightly overclocked 5700XT with an I7-7700K at stock speed. 3 32" monitors at 1080 and managing about 30fps. Even on a single monitor I’m still getting limited by GPU. Would have thought with a CPU that old, that would be the bottleneck but it’s rarely going over 50%.