Performance degradation at LYTV (even with latest patch

The Main Thread is suddenly very slow at LYTV, even with latest patch
Analysis showed that the issue depends on Hyperthreading (100% reproducible at me).
At LYTV, clear sky, 12 UTC:
Hyperthreading=Enabled → MainThread=42ms(A32NX),=32ms(DV20)
Hyperthreading=Disabled → MainThread=29ms(A32NX),=22ms(DV20)
Hopefully this is just a bug that can/will be fixed. I want to keep Hyperthreading enabled.

Community folder was cleared for the test with the DV20 to exclude any third party issue.
(PC: 10700k, 32GB, GTX1660super)

Wow. Thanks for this findings. I was “going crazy” about this issue on LYVT since I fly there often. Even before the latest update and the hotfix something was wrong there around LYTV. I have just tested this airport with my Ryzen 3600 Multithreading OFF - and YES! Finally it works perfect. No more strange FPS drops and Main Thread load behaves normal. Great finding, thank you!

I made a post about this place about a month ago. I was wondering why would FPS be so bad at such an unremarkable place - regarding autogen, terrain, etc. - it’s amazing to look at, don’t get me wrong but there’s nothing that should eat so much FPS. I get the same FPS at LYTV that I get at KLAS! That’s just nuts.

Out of curiosity, does the total CPU usage also go way up while flying in this area? In general, hyperthreading performance drop-offs are due to assigning extra work on additional threads that ends up running on the “other thread” of a core that’s running an important workload (such as the main thread); unless there’s actually enough stuff being run at once to fill up all the logical cores, this usually doesn’t happen.

So it may be that something in this area is actually triggering a huge performance usage in code that’s really well threaded, and that’s taking CPU time away from the main thread…

Ideally the thread workload management shouldn’t let that happen, but it might be one of those tricky things. :wink:

1 Like

Does this happen with the default A320 Neo too?
Before posting (and voting) about any issues with the sim, we have to make sure that the issue occurs with an empty community folder.

Yup. That’s the “risk” of hyperthreading that the marketing narrative doesn’t tell you.

It might more fully utilize a physical core, or it might conflict and cause pipeline flushes and cost performance.

1 Like

Yes, this happens also with empty community folder, as I mentioned in the initial post. Of course not with the A32NX. That’s why I also added my test results with the DV20, which is not a third party aircraft and has obviously less complexity.
I detected this issue first when flying to LYTV during the descent phase with the A32NX. But further investigations showed that it occurs also when you directly spawn at LYTV and with empty community folder.
I can reproduce this issue 100%, but other users cannot detect it (with different hardware).

With HT enabled:
CPU15 is fully loaded:
CPU0: 75%, CPU1: 10%, CPU2: 75%, CPU3: 10%, CPU4: 70%, CPU5: 10%, CPU6: 65%, CPU7: 10%,
CPU8: 60%, CPU9: 10%, CPU10: 60%, CPU11: 10%, CPU12: 50%, CPU13: 15%, CPU14: 20%, CPU15: 100%

With HT disabled:
CPU15 is less loaded and the other CPU loads are more equally distributed:
CPU0: 45%, CPU1: 40%, CPU2: 40%, CPU3: 40%, CPU4: 35%, CPU5: 35%, CPU6: 45%, CPU7: 80%,

It looks like something in this area loads only the main thread and cannot be distributed to the other CPUs.
Do you think this is an MSFS issue or something with windows or any hardware driver?

1 Like

I agree, nothing special in this scenery. Other regions, even with complex third party airports have no performance issues.
I know your thread and added a post there before creating this new one. I created it in the bug section to have the option to vote. The issue is still present after patch

Yes, you mentioned that you cleaned the community but reported A32NX… that’s why I asked :slight_smile:

At first, I thought it’s due to the bug bur after the patch LYTV is still problematic so it must be something else going on there. It’s good you made this post, specific LYTV issue was lost in my thread.

You are right, that could be misunderstood. I’ll change the text. Thank you.

1 Like

Can you check if your performance drop depends also on Hyperthreading?

Sure. I’ll do it tomorrow but I don’t intend to turn HT off just for this on the regular basis. I’ll report back.

1 Like

There is a difference in Hyperthreading and Multithreading (multitasking).

Hyperthreading is an Intel name for taking each Core and providing
2 virtual Cores called Threads to process Instructions from the program.
AMD calls it SMT or something.

Multithreading is having a program (application) use all of the cores/threads
to run execution independently.
Non-linear processing. 4 cores or 8 threads can do simultaneous processing.

FS2020 (and other Games) cannot process as multithreading (Tile processing).

FS2020 is linear processing. The “Mainthread” processes instructions for itself
and the other threads ( gives them tasks to perform and waits for completion).

As such, it is a linear process. Accept an interrupt, do it or give it to a thread.
Wait for the completion before sending a display task to another thread to
display the results.

Thus, “mainthread” bottleneck.

Not much you can do about it and DX12 will not change it.
It is a linear process, not tile.

It is not a Windows issue, or processor issue or driver issue or anything.
It is a linear issue. One thing must happen before you can go on to the next thing.

For example, see an Alt Change interrupt from the pilot clicking the knob.
Give that instruction to a thread to get the Altitude.
Must wait for that thread to return the altitude and then display it and also do a task to perform the altitude change request from the pilot.

If you have a PC with 5 CPUs, the 5 still cannot run the program 5 times
as fast as 1 CPU.

Linear! With 5 CPU, 4 would be idle waiting on the 1 to complete.

We have to accept the concept of the “mainthread” bottleneck reality.

1 Like

Deleted by owner Posted into the wrong thread.

Thank you for the detailed explanation.
This means for MSFS with the one MainThread architecture at the moment, it can be better to have HT disabled to give the maximum available performance of one complete core to this one thread.
I think that’s clear for me now.

Remains the question why LYTV generates such much more load than the majority of other scenery.
I changed the title and removed the “Hyperthreading” to make it more related to the LYTV issue.

1 Like

I have done many test around LYTV with clean MFS and different default airplanes. Huge FPS drops with multithreading ON. No issues with multithreading OFF.

1 Like

Thank you, great education, helps me to keep calm a bit.

Well… i beg to disagree. Just because the simulation itself is linear, it doesn’t mean the elements of the simulation is linear. So while i have to calculate the current state of the simulation before i calculate the next state, i can take the calculation apart and spread it over multiple cores. I can have the lift from one wing calculated on a core, from the other wing on another core, the tail on a third core, drag, on a fourth, and so on. And for each timesteps i feed those cores with the initial conditions, the cores crunch the numbers, then return the results to the main thread to pull them all together. Parallelism can still be achieved.