Im still there: Limited by Main Thread

Yes, same old story… I left the SU11 beta early because the performance was just better or at least less stutters in SU10. Was hoping the polished version of SU11 would show something different. 3090, 10900k <4k ultra, airliner+complex airport+FSLTL=27-30FPS at the gate ~23-25 on takeoff. Add in new a310 and you’re looking at teens to low twenties. None of their implimentations seem to have made a big difference. They want me to buy a 4090 so I can finally see smooth >30FPS? As soon as they find something close to smooth they change it. Sure the game without mods looks ok but it’s just not the same. Back to tweaking settings again.

1 Like

I really do not think MS want you to buy a 4090 and if you did you would have the same problem. My 3070 works well as did my 2070S, if we stop chasing the Holy Grail of performance we will be better.

1 Like

It’s not just performance per say or a million FPS it’s smoothness at a highly detailed airport, with some traffic and a complex liner. Bonus it would be nice to see some high resolution ground textures too not some 100 TLOD all on a $4-5K machine… Hahaha It’s a great game, just saying there have been smoother iterations and unfortunately this one isn’t spectacular.

My Intel A770 16 GB GPU is great.

4K (3840x2160), Ultra, TAA, and DX12 provides smooth flight with
great graphics.

KJFK & New York
Terrain LoD=400, Object LoD = 900

FPS = 27 to 30
Real Weather
Real Traffic
Rain, Clouds

Unfortunately yes, with default airports performance is not bad. I could probably max out most everything with nothing but Asobo. I understand this debate has been beaten to a pulp in many forums. Just wish there was a better workaround for mainthread limitatations that have been plaguing FS since the dawn of time besides DLSS3 (possibly?). Just saying this update didn’t change much in that regard.

1 Like

Nvidia control panel did the same when i reduced frame rates to 40 fps for fs program…fs then gave that very same message .

Well buddy my gpu usage is around 40-55% sometimes dives in to 66%, now cpu a cross the all 8 core and 16 threads is about 30% +/- I can’t tell exactly, but what I’m doing is TAA all ultra and then use scale to 150% and TLOD is 200 and DLOD is 110 this way I get nice 37-38min and all the way up to 60FPS all rest just crazy ultra not to mention flying the 737PDG’s and HIgh quality sceneries by 3D parties developers and improved cities such as London by ORBX and REX ground textures, then before game I also use the FSTL air traffic and I always set in my task manager the MSFS as high priority! My cpu as I said is OC all cores 5.2GHz and I now going to set it to all cores 5.3GHz to extract some extra juice of it

I have a 5600x @4.7Ghz, a 6700xt @2.8GHz core and 2150MHz memory and I still get the “limited by MainThread” thing…

  1. Don’t tell me a 5600x isn’t enough to pair with a 6700xt, I had a 3600 before and it was fine for pretty much all the games, never encountered a case where it really did a noticeable bottleneck.
  2. As I said I had a 3600 before and I could get better FPS (around 80, now I get around 60/70) with DX11, DX12 was always way worst as the GPU optimization is one of the worst things I’ve ever seen…

I tried lowering the terrain LOD and the - but it just make the game less immersive at low altitudes and I can barely make GPU and CPU have the same frametime, so I can’t lower a bit the graphics to enjoy a more fluid experience (I would be fine with 60 FPS on a game like this, issue is I have really bad dips that I can’t really fix in any way as the CPU is causing them) and I’m playing on everything maxed out 1080p.

I think the 5600x and the RX 6700xt are a good pairing for MSFS 2020. If you’ve done tuning as per various posts in this forum and you still have issues this could be a reason why: Windows 11 2022 Update causing games to stutter and frame rates to drop | Windows Central

If you look at the individual CPU core usage via the Windows performance monitor (expand out the graph to show each core) you can see with DX12 how the workload is spread across each core. In my case with a 5900x with 12 cores/24 threads I can see a more efficient usage of the CPU with how the load is spread across all 24 threads when the sim is running (note: MSFS 2020 is not using all cores). When viewed with respect to DX11 in my case DX12 looks more efficient.

In addition, with DX12 I can also see more GPU VRAM being utilized which can improve the load on the GPU and possibly improve FPS.

I have Windows 10 so I’m sure Windows 11 updates aren’t affecting me at all.

Talking about core usage, sorry for not mentioning it before but I’ve checked and for the whole time I had a peak of 80/85% on two cores with 60% average, the others had around 60% peak and lower average, so I don’t really understand how the CPU is causing a bottleneck…
As I said I came from a 3600 and I had a better experience somehow with 5 more avg FPS and no dips with insanely high frame times like I’m having now, which is nuts considering the 5600x is absolutely faster than a 3600 and I had an improvement (from little to quite noticeable) in every game…

So the CPU is doing well in any game, fine both with monitor and VR gameplays on every single game I play and got better performances (of course) than before, the only issue is MFS2020.

Also a thing worth noting is I tried to increase even more the graphics (just multisampling and ground shadows were not maxed) and resolution (via upscaling as I have native 1080p monitor9.
Even tho the GPU noticeably increased the frame time (from 10/11ms to 30+) the CPU somehow followed it and went from 13/14ms with spikes of 25ms to 34ms.
This truly goes beyond my comprehension, I’ve never seen a game reacting this way, no matter if I increase or lower the graphics I’ll always get a horrible experience with so many microstutters and insanely high frametimes, which are a problem on a monitor, in VR it’s just unplayable.

Just for a quick comparison I was able to run DCS in VR with only experiencing FPS drops rarely and for a split second only, now it’s fluid and I had no issues with it.

That isn’t a great way to see what the Main Thread is doing.

You might be able to spot issues like a core running at 100% would be a clue as to what is causing a slowdown. Or minimal usage across all cores could be a sign your slowdown is coming from elsewhere and not the CPU… but…

And this is important…

Very important…

The Main Thread is not a CPU, or a CPU core. It is the amount of time it takes ALL cores working together to perform one cycle to calculate data for one frame.

And to this day, even with the best CPUs, it is very likely folks will need to lower their Terrain Level of Detail especially, to get that Main Thread cycle fast enough to meet reasonable FPS requirements, and very tricky to get ultra high fidelity and 60 FPS.

If you are ok with 30 FPS, that can be done on most decent CPUs with a little LOD adjustment. If you want 60 FPS, you need to be prepared to make some real sacrifices. And you still might not get it 100% of the time.

DX11 and 12 do manage CPU efficiency differently and you can see some of those differences in that window, but that is not your Main Thread.

Again, the Main Thread is the amount of time it takes ALL cores working together to perform one cycle to calculate data for one frame.

So, sometimes a core has to wait for another to finish its calculations to be able to build upon the data generated with its own new calculations. Multiple cores working together often means cores are waiting for other cores. That time spent waiting for ALL cores to communicate, build, and perform the calculations needed to finish a cycle and build that next frame is like lag.

You can see some of this lag in the Developer Mode.

5 Likes

No, and yes.

sometimes a core has to wait for another to finish its calculations to be able to build upon the data

This is almost 100% of the time in MSFS.

Ok, thanks for the really short but right to the point explanation of what Main Thread actually is, I actually didn’t know that.

Back to the performance issue and possible solutions, I can’t understand how a 5600x can be worse in any aspect compared to a 3600, Idk if the 3600 actually had faster way to make all cores work together but the really strange thing is that I noticed a bump in performance from just a few to even 30 FPS in every single game (even GPU bound games) I play but MFS2020 is just totally unplayable with any setting I try…

Also, as I said before, how comes the Main Thread frame time gets higher if I increase the quality to higher the GPU frame time?
I tried literally any settings at different resolutions but it’s just unplayable, it has really bad dips and it freezes for a split second every like 5 seconds, even with LOD and object LOD to minimum I get a really unpleasant experience.
Is there any way to fix it without spending another 3k on my PC? 'cause otherwise I’m forced to just uninstall the game as it’s not just unenjoyable but literally unplayable, but it would be a pity considering how much I like it and the money I spent on a HOTAS (that I still use in DCS, but still…).

Btw thanks to everyone who replied lately, every form of help, wether it works or not, is greatly appreciated!

1 Like

You know how I explained that lag while cores wait for other cores?

You can see lag between GPU, Main Thread and other processes too in Dev Mode. It ALWAYS takes longer to render one frame than it takes to run a GPU or Main Thread process for one frame. All processes must wait for others to finally build the frame we see, so all it takes is one slow process to slow all others to a crawl (especially Main Theead and GPU).

Again, a CPU Main Thread bottleneck will slow the GPU and vice versa. Because each needs to communicate with the other to build each frame. If one becomes a big bottleneck, the other will suffer too.

Without working on your system in Dev Mode or making you post a LOT of pictures, I can give you my best guess.

Based on what you have said, I suspect your render scaling is too high for your GPU right now.

And your textures may be too high too. That would be my second guess. Textures are memory based, so the memory on your GPU determines what kind of textures you can run. 2 GB GPU Memory? Low. 4? Medium. 8? High. 16? Ultra. A 4 GB card trying to run Ultra textures is going to have a bad time.

To test, I would lower the most taxing details to around Medium across the board. Render scaling to around 50, textures to medium, clouds to medium, and both of your LOD sliders to 50. Maybe even drop traffic to 50.

Yeah, make it look like the Xbox Series S version. Xbox is optimized for 1080p play on a much slower system than you have, so you should be able to get decent results at similar settings.

Don’t worry, this is just for testing. You can bump things back up later.

I suspect your render scaling is WAY too high. I know it is nice, but with your monitor, you don’t have to go crazy. You have 1080p, so rendering at 4 or 8k is exponentially more GPU than you need to use for each frame. And I suspect if you find the Goldilocks Zone for render scaling, you’ll find your bottleneck is gone and both Main Thread and GPU will finally have some overhead. That’s just my best guess.

My second best guess is texture resolution, and again, with a 1080p monitor, you may not need more than Medium even if you can run higher. If you CAN run high, do, but Ultra is almost entirely wasted on your monitor and that extra GPU overhead could be used elsewhere if you have some to spare.

The issue may lie elsewhere but you are right, you should expect smoother results than you are currently getting. Something in your settings is too high.

Good luck.

2 Likes

There may be some (significant) waiting for a disk read or write to complete, a network read or write to complete, or to lookup a Registry value. Analysis needs to be done to determine exactly what is causing the wait.

1 Like

And THAT is above my pay grade!

Multi threading is almost too complex to wrap my head around let alone program.

But I understand it well enough to know it isn’t just CPU speed and efficient management across all cores.

Cool.

I’m trying to help.

Test my suggestions against your theories and see who is right.

2 Likes

The picture is from here.
It’s from 2020, but I guess the tendency is still the same.

That’s unbelievably useless here what MSFS needs is exactly the opposite, not a FPS guide but main thread guide.

2 Likes