just a request for an explanation. I have been flightsimming for 30 years now, and always upgrade incrementaly as it is needed.
if someone would be so kind and explain in laymen’s terms what I am experiencing. I upgraded from a ryzen 3600X to 13600KF overclocked to 5.5ghz on Performance cores and 4.2 on ecores. however, developer mode still shows main tread limited, however in task manager and HWInfo none of my cores are ever maxed out, or even reach close to 5ghz. i have a 2080 and graphics are 2k Ultra. My fps are between 40 and 45 fps usually, however i still have the same stutters I have had since launch day.
can anyone explain to me why it shows I am still main thread limited?
I´m sorry to hear that.
I decided NOT to upgrade from my 12900K (@5.0) because by now i think this simply is a problem of software architecture. I thought that now that we are finally seing an increase in clock speeds again, maybe a stable 5.5 to 6 ghz might do the trick but by now (and also after about 30yrs in the hobby) i think this is something to come to terms with…
If the platform really is to be supported for a at least a decade, then we might finally get there.
You didn’t say if your FPS counter is mostly green, amber or red - main thread limited but green is not a big issue; the FPS counter will always say that you’re limited by either CPU or GPU, even if everything is green and both timings are super-low.
The main thread coordinates all of the other threads and can be bound on things beyond simply executing code, such as I/O completion (disk, memory etc), thread completion (where another thread has to finish doing something before the main thread can continue) and other hardware operations. If you see your CPU usage graphs peaking and dropping as a regular pattern, that indicates that that core is waiting on something before it can continue to work. I see that pattern regularly on my sim, although 90% of the time I am GPU-limited.
This actually indicates that Asobo has done a good job in terms of thread synchronisation, because that thread is not just continuously looping and taking up CPU time when it has nothing to do because it’s waiting on something. Whereas seeing a core pinned to 100% continuously would indicate the opposite.
It’s pretty rare that a given task can be executed straight through start to end without needing to be synchronised on some shared resource, so making sure your code yields control back to the operating system when it’s waiting on something is good programming practice.
Now, as to why in your specific case you are MainThread limited, but don’t see your cores pinned to 100%? Presumably because the main thread time is greater than your GPU time but the main thread itself is waiting on tasks to complete. That could be down to a lot of things. Slow hardware (for example HDD vs SSD vs NVME), bad drivers, other software pre-empting the sim because its thread priority is set higher. It’s an endless series of possibilities. I couldn’t even begin to speculate on what’s happening on your system.
To begin with, I’d try dropping your settings to Low-End and see if you’re still MainThread limited. If you aren’t, then increase your settings gradually until you see it flip. That should give you an indication of where the stress point is for your system.
This stuff is far from simple and definitely not as straightforward as some people suggest.
Yes it’s all quite annoyingly incremental in nature at times and most of the time we assume all is right where local operations are concerned, drivers, software, ect and some of it so not obvious.
I just did a Windows reinstall, all the drivers for my mainboard on the site, graphics, sound and the like, C++, DX, Windows updates and more … ran a tertiary program and it had me short 8 drivers/updates.
Thank you for the detailed feedback. I understand that there are so many permutations of why it is behaving as it is. My MSFS is installed on my C (OS) drive and is a Samsung 980 NVME SSD. and in task manager my GPU is pegged at 99%. timing wise my GPU timing is about 20 and CPU is 21ms. if this at all explains anything
It’s possible that you’re pushing your GPU hard enough that it’s actually bottlenecking the CPU, especially if you’re using shared memory at all.
I’d turn down all the graphical bells and whistles to get the GPU down as low as you can, and see what that does to your CPU times. For comparison, mine are usually 9-13ms with a 12900K and I’m about to put in a 13900K, so I’ll see what that does.
Mainthread limited does not mean your CPU’s are maxed out. It means the CPU is working harder than the GPU. This is the case for everyone, not something new for your setup.
Final comment and maybe it helps someone. turning off hyperthreading in the Bios made a massive difference for me. the sim is for the first time rock solid
that is exactly what it means . A single thread on a single core gets hammered . And this is not a case for everyone . Some updates makes it better , some makes it worst . SU10 was better for me in that term . SU11 introduced a new “bug” or code , or whatever , that makes it more frequent . To me, it’s smooth flying for 15 min, than the stutters start , pulling up the performance overlay , getting the main thread limited in every 5 seconds . That single thread handles too many calculations … and for whatever reason , it only happens after a certain time …
so , looks like, at least for me, is the new airflow simulation that causes the game to get into "main thread limited " problem. I only get the problem ^^^^^^ only with airplanes/helis , using the new airflow simulations , and only after certain time flying ,like 10-15 mins …
I also just upgraded to the 13600KF and posted this on another thread:
I think it’s safe to say you’ll have the same issue no matter what CPU you use.
I just upgraded to a i5-13600 with 32GB DDR5 6000Mhz and at Chicago O’Hare (KORD) (probably the most demanding airport I’ve come across) the frame rate drops to low 30s.
Reducing TLoD makes a difference of a few FPS but nothing major. And I’ve tried both DX11 and 12.
I’ve seen videos on youtube where the 12900K has the same issues, I don’t think the 13900 will fare much better either.
Which leads me to think it’s an engine optimisation issue.
That particular number was obtained on the ground at EGLL. My FPS tests are always done on the ground at high-density airports in dense scenery areas, since those generally represent the worst case. Not that I never ever get stutters, I sometimes do, but usually that’s a prelude to a CTD