Not a solution regarding CTDs and low GPU performance/limited by main thread on higher end CPU's - Enable all CPU cores in Windows!

You are correct. Nobody gets a pass on this Forum.
We all have received the same.

@JerryWeirdspeed So it goes.
Or my favorite from a Pat Metheny song: “As falls Witchita Falls, so falls Witchita”

1 Like

Hey there!

Thank you again for your reply and details. We all know by now that the above trick has no positive influence if any. However, I have been experimenting a bit more and I realize that it is possible to stabilize the game in its current state. Easy for me to say since I have invested much of my green stamps in hardware. But that is not the point.
Key is to balance main thread performance against GPU performance. For me, superscaling solves the issue. At around 100% texture scaling the main thread rages and ultimately leads to the display driver crashing(for AMD that is; Nvidia still remarkably more stable but I have had the odd CTD while testing it to the limit now). Increasing the render scaling above 100% brings down the main thread thus loading the GPU more. Once the CPU performance is acceptable I reduce graphics fidelity down from ultra to ensure a good frame rate. It all depends on where I actually fly and in which plane for fine tuning.
The way in which the built-in tool displays main thread times and GPU times is a great way to get straight feedback. Also have an eye for the performance tab in the task manager. Change the view to display individual cores. DirectX 11 only allows for four CPU cores to be used. So for the Ryzen 5 3600 you should see 12 CPU threads if I am not mistaken. Four of them will be rather busy and the rest might be at a much lower load. Like you wrote it, 30% CPU load, is not an accurate way of measuring the actual load on individual cores. The main thread time doesn’t depend on the whole CPU. A reading of 30% can be a lazy day for your CPU but it is more likely to work at it’s limits for one core while idling a few others. Hence why the built-in tool compares thread times in miliseconds. Key is to bring down the busiest thread so it doesn’t stop your GPU from performing.
Not sure what to recommend but to play it safe I would probably start with low-end settings while you work with the main thread. But you can try it out. I have actually been working with my intended settings so something between high-end and ultra and it turned out to be quite adequate to an RX 6900. However I might reduce on some settings.
A frame rate of 60 FPS is equivalent to 16.6ms thread completion time for example. You should bring it lower than that to enable 60 FPS in the first place. Don’t worry if it is not possible everywhere but you should set a target frame rate and calculate the thread time for it. You could try running a lower resolution and up the scaling. Keep a keen eye on the thread time. Look out for max’s and min’s and spikes. You will always want the thread time to be lower than the GPU time at least in not so busy areas or high in the sky. The closer to the ground you are the more individual objects with faces, vertices and edges to render. The more background work needs to be done to provide these to your GPU. Which causes load on the CPU(not the whole but on those cores used by DirectX) before the GPU even starts to get busy.

Then adjust graphics finesse. Now ramp up the other settings in the graphics tab. Start high and bring it down to match your main thread time or settle slightly above just to keep the GPU more busy than the main thread. Take your choices on which settings to keep high and which are less important to you. And this is what you can get out of your GPU. Always keep a keen eye on main thread time. The game is known to be unstable if it runs out of CPU overhead. This is actually the part which I stand by of my initial post. We are looking at a situation where the system runs out of resources. You should check your CPU load by changing the view in task manager and chack single cores.

For me, the Radeon Chill feature is a great tool to do some sound tuning in order not to get too loud. It is called Limit FPS in Nvidia’s driver settings and works the same.

Finally, there are spikes here and there. There are things which cause stuttering and high load. There are other load factors like external programmes. Traffic has seen an improvement but can still be an issue. AMD’s drivers are less stable in such situations and there will be CTD’s due to such spikes probably now and then but very likely not as much as you are experiencing.

I gotta say that I am more the plug-and-play kind of type and when I bought MSFS I didn’t look for learning how to monitor its performance and balance it out. I wanted to see the beauty and maybe learn to fly. I appreciate all the work that has been done and I am learning to fly and enjoying the beauty now.

Good luck!

1 Like

Not trying to start a debate, the following is just my opinion.

What I find very interesting about performance is that there are very few settings that have a significant impact on my FPS. The Glass Cockpit Refresh rate is the biggest one, followed by the chase camera HUD and the texture resolution scaling.

I can set most things on ultra or on low with very minimal impact. I have a higher end PC, and I get around 60 FPS usually, but it also greatly depends on the plane I am flying and the scenery.

i9 10400
32GB RAM (3200)
3080 RTX

I understand that some/many “simmers” don’t care about achieving a stable 60+ FPS. I fall more into the “gamer” category (but I love airplanes), and so I have been trying every possible thing to accomplish this. It’s my belief that there’s a big problem in the software itself. I think it’s borderline false advertising to have recommended specs like this:

Operating System: Windows 10
Processor: Intel i5-8400 | AMD Ryzen 5 1500X
RAM: 16 GB RAM
Video card: NVIDIA GTX 970 | AMD Radeon RX 590
Hard drive: 150 GB available space
Sound: Sound card, speakers, or headset

My system destroys these specs and cannot run the game at a stable 60 FPS. I could run Cyberpunk on release at 60-70+FPS.

The fact is, many people are unhappy with this simulation’s performance and for good reason. I realize I’m getting better frames than most people, and that’s just sad. The human eye can easily detect >60 FPS when moving the camera around and using inputs. It’s not like watching a movie or a light bulb flicker. Inputs and camera movement are noticeably laggy at lower framerates.

Asobo needs to address this situation. There are a good amount of people on this forum alone having major performance issues. Many of them did not have performance issues before certain updates. They need to stop adding content and focus entirely on the sim’s PC performance until they move the needle on this.

That’s just one man’s opinion.

Cheers.

1 Like

I accept your point.

But, I’m one of the “wanting visuals” simmer.
There are many of us.

I fly 4K Ultra with the only change is Render Scaling set to 100.
Real World Traffic = Off
Live Weather = Off
Multiplayer = Off

I get between 8 to 24 FPS.

I’m content with that. The Graphics are great. The plane handles great. IFR/ILS, AP
WT CJ4, C172 G1000
No Heavies.

1 Like

I’m truly happy you enjoy the experience! For the record, I mostly do as well. I fully acknowledge there’s a degree of “obsession” in my pursuit of FPS.

Also, side note, I respect your ability to fly the WT CJ4. I have it modded with WT as well, and I tried to fly a flight plan with Simbrief. It took me an hour to get it set up, then I tried to engage the autopilot during take off and promptly crashed my jet into the ground! :smiley: The best I can do is use GPS AP and hand fly it in.

I use Navigraph (paid subscription) and use it to set up the Flight Plan.
Also have the Navi Charts on the MFD.

I really like it. Easy to use.

I set up one Flight Plan with Simbrief. It was difficult to use.

This is off Topic.

Take a look at my write up for an initial flight in the WT CJ4. (how to)
Plan , Take off, Cruise, Land, IFR/ILS, AP, FMC

Your orignal idea - at least for me - resulted in the load being spread over all 8 cores (i7 7700k) on task manager. No ill effects and seemingly a bit smoother in VR.

That is odd.
As I have learned, this feature has no effect. If you saw 8 cores before setting the boot option, the load distribution should have been applied under the very same conditions as with 8 cores clicked and enabled. The feature can supposedly only be used to reduce the number of cores utilized by the system.

1 Like

Without that option i.e. all boxes ticked, MSFS was blowing up only one of the eight cores in Task Manager.

Now, the load is much more evenly spread across all eight.

Does that translate into anything useful though, like better FPS?

Marginal - if at all in flat screen - FPS, but VR FPS more stable and VR seems quite smooth.

1 Like

Eh what i9 is that? Or is it the i5 10400 paired with a 3080?

Please, the global CPU load in the two pictures has a 2:1 ratio, making this proof irrelevant.

Also, it just means, in the first condition, that one thread was very busy with likely no wait time - the OS won’t allocate it to another core uselessly as this would be inefficient.

Do some people really think that Microsoft would configure Windows to only utilise one core by default, and that no one has spotted this until now? This just beggars belief!

1 Like

Yes, but they should not.

It is not the fault of Microsoft or ASOBO.

The issue is the Task being performed and the type it is.

Tile Based or Linear Based.

Tile based, you can paint the display at any order of location and at any point in time.
Or do any task at any time.

Linear based, you cannot have a 4 core 8 thread CPU running any Flight Simulator (or any other Game) with 8 threads running full blast with any task.
Certain asks have to be completed before any other can be started.

The mainthread runs the FS2020 program in a required Linear function.
If not the plane will not fly. Most definitely crash.

It handles the processes that it performs and gives the other threads their
tasks to perform and manages the flow of all processes of the flight of all threads
in a linear function.

Say the pilot wants to decrease his altitude and moves the ALT selector to the altitude desired and presses the VS button and spins the Speed wheel.
Then activates the Auto Pilot.

The mainthread could process all these tasks itself in lineal steps or could give some of these to the other threads.

Assume that some thread(s) process the interrupts resulting in the Pilots actions.
Mainthread assigns himself the task of activating the AP.
Gives thread 2 the task of getting the new altitude requested.
Gives thread 3 the task of getting the VS speed of altitude change.

Mainthread cannot activate the AP until thread 2 and 3 are completed.

Thus Linear process.

1 Like

Do you happen to have and design or coding documents explaining the main thread. I’ve been taking several traces at the Windows OS level to better understand the internals. I’ve been looking at all the threads and thread stacks. I’m trying to figure out which thread is the main thread but there are too many threads to identify the main thread without documentation. At first the thread using the most CPU might be the main thread. But if the main thread “parks” itself waiting for threads to complete, it probably isn’t using very much CPU.

Anyhow, right now I’m stuck without additional documentation.

No. I’m sorry but I do not.

Thought I’d let you know that the time I experienced my rock solid performance was when I flew the Beech Bonanza for a day. That worked pretty well for over 10 hours. However, problems came back with other planes.

This is my cpu-consumption. I really have no clue but tried all the recommended settings mentioned above (xbox settings, nvidia, bios v-td, lasso…)

200 mbit internet bandwith and with mid and low settings never over 30 fps always with bottleneck “main thread…”