Soliton's Guide to MSFS - (Not Sucking) Edition
I am quite sure that everyone has been enjoying MSFS as much as I have lately. Well....sort of enjoying...Everyone was plagued by installation issues on launch only to finally reach the game and see sub-par, stuttering performance on even on the most powerful systems.
While I believe that optimization will need to come from updates to the simulator itself, there is MUCH optimization to be done on the machine itself. After hours of tweaking, researching, performing tests, I now have a stable, COMPLETELY SMOOTH simulator. From that, I'm compiling this guide of everything I've learned so far. I have made this guide following a format that shows you clusters of optimizations, ranked in effectiveness.
UPDATES:
- (9/30/2020 - Patch 1.9.3.0 was released today, bringing a major Japan centered enhancement, various bug fixes, aircraft corrections, and others. Sensitivity menu is back as well. Very little mention of performance enhancements, but ocean rendering was updated among a few others areas. It has been nice and stable since 1.8.3.0, will report on performance.
- (9/24/2020) - After reviewing the 1.8.3.0 patch, I’m seeing much better multi core utilization. Overall, we can see that Asobo put some real effort into fine tuning some of the locking up. A few bugs were introduced, mostly cosmetic. I would still apply this guide but you should see much better performance and stability.
- (9/16/2020) - 1.8.3.0 patch has been released, addressing numerous performance issues and optimizing thread usage. Currently installing but here is hoping that they alleviate what I believe is the OVERALL cause of slowness and reason for half of the tweaks below: badly optimized threading. Will report back my findings.
- (9/12/2020) - Made each section a bit prettier. Added some details I uncovered today. Currently testing a CPU tweak...it seems MSFS may perform better when not hyper threaded..
- Turns out I was partially right. By disabling hyper-threading through Process Lasso, we gain 1-2ms response time on MainThread. Hopefully upcoming threading updates will fix this need.
Go to the end for TL;DR
Assumptions
I assume that a few items have been verified already. First, ensure your device is in a healthy state. This means:
Machine Health - No malware present on the machine.
- CPU/GPU is not being throttled due to power or thermal limits.
- CPU/GPU overclock should be stable. Note that MSFS seems to be finicky with overclocking, - crashing when other games won't.
- Sufficient free disk space is available.
Machine Specs - Your machine should be of REASONABLE spec to support flying this sim. Don't take the minimum requirements for it lightly. Being as vague and accepting of many different combos of hardware out there:
- Decent 4+ core CPU with high core clock. The sim doesn't seem to use multi-threading optimally. Individual core clock speeds will matter here. Overclocking should help quite a bit if you can get it stable.
- The OS and sim should be running from a solid state drive.
- 16GB of RAM is a MINIMUM in my opinion, as the game consumes 11GB of RAM for me while at a sparsely populated airport.
- A 1060/equivalent or better. You can probably get away with a high end 9xx series card but I'd say no lower.
Update your Graphics Drivers If your graphics card's drivers are not up to date, you may see degraded performance or bugs. Make sure to always use the latest driver for your card. Unless you see issues on the latest version, there's no reason to downgrade.
Let's Get Started
Step 1: Monitor Setup Let's talk about monitors. The speed at which your monitor refreshes is important. Most low to medium performance monitors run at 60hz or lower. This means the screen updates the image 60 times / sec. A mismatch in refresh rate causes the sim and other games to stutter significantly. The same can go for different resolutions to a lesser extent depending on how the displays are being used. I have observed this EVEN when you have disabled one monitor but have two plugged in.
- Ensure that ALL monitors are set to a matching frame rate.
- Ensure that ALL monitors are the same resolution.
1a: Resolution You will want to set your resolution to the best scale and performance for your monitor. This may be 1080, 1440 or greater. You will be able to scale down the rendering in MSFS itself. This will preserve your monitor's clarity while not having to actually render the sim at that high resolution.
Note on 4K: If you have 4K monitors, it may be tempting to run the game at 4K resolution itself. If you can get it stable, awesome! However, I would remember to be realistic in what your machine's specs can adequately handle.
Step 2: Limit Your Frame Rate The internal limiter in MSFS does not command good control over the frame rate. Instead, it is ideal to cap your frame rate directly in NVIDIA Control Panel.
You truly do not need any more than 60FPS in a flight simulator; You want stable, smooth, low latency flight. I highly recommend setting a frame rate limit at the GPU. This will ensure the CPU/GPU are not focused on trying to render max frames, instead focusing on that set target. Some machines may benefit from an unlimited frame rate, feel free to experiment.
- High End Machine = 60FPS
- Lower End = 30FPS
Step 3: Disable Background Tasks and Applications Any applications running in the background, even as small as OneDrive, Google Drive, etc. is enough to cause a minimal, but additive impact. For those running it through Steam, you'll need to leave steam running. Otherwise, no other applications should be open or in background.
Step 4: Disable any Overlay Applications
If you will be streaming or recording your playing, disregard this. Otherwise, you should consider disabling any overlay apps like Xbox Game Bar, Nvidia's GeForce Experience, etc. Anything that will draw over the sim should be avoided as this will tax the CPU/GPU.
- Disable Xbox Game Bar by going into Windows Settings, search for Game Bar and Disable.
Step 4: Ensure Power Mode is Set to High Performance While not quite as important on desktops at times, you'll want to have Windows set to a high performance power setting. We do not want the OS to attempt to through the CPU or GPU to save power. Flight sim requires all the power on tap.
Some machines also include an "Ultimate Performance" power mode that is hidden. In Power Options, expand "Show Additional Plans" to find it. If you don't have it, the normal high performance profile is a good start. (thanks DepLoc)
Step 5: Tweaking NVIDIA Control Panel / AMD Panel I apologize ahead of time, but these instructions will be for NVIDIA. The idea is the same for AMD, but I don't have access to an AMD GPU to get screenshots and menu names. There are various optimizations we can put in place to make sure the GPU itself is running at it's best.
I recommend tweaking the following either globally or for the MSFS application profile:
Antialiasing FXAA = Off
Power Management Mode = Prefer Maximum Performance
Texture Filtering - Quality = High Performance
Vertical Sync = Off
Multi-Frame Sampled Antialiasing = On
All others = Default
Tweaking the Simulator
Now that we are moving on to actually launching the simulator,let's enable developer options to supervise the simulator's behavior. Once you've enabled developer options, you'll see that a new menu appears on the top of the screen. Under "Options", check "View FPS". You'll see a graph and information pop up. You may also need to watch your CPU/GPU through something like CPU-Z or the Task Manager to make sure no anomalies are there.
This is important as it'll be an insight into what the game and various components of it are doing. I'll explain it here:
The top most box shows your frame rate, total response time in milliseconds and resolution. The graph itself shows the rendering of frames. A greener, smoother chart means the sim is running smoother.
Remember, you're going for green charts and low response time, not FPS. Ideally, all graphs should be primarily green. Use the tables below to get an idea of what it all means. Metric | Ideal Response (ms) | Description |
MainThread | < 20ms | Where most of game processing takes place. Physics, scenery generation, systems, etc. |
RdrThread | < 10 ms | Rendering thread. |
Manipulators | Mostly Green? | Unsure what this metric is doing. I assume it has do with actual response to user inputs in the cockpit. |
CoherentGTDraw | < 15 ms | Drawing UI from what I understand. |
The graphs are displayed as a visualization of processed frames going by. It'll highlight red when response was subpar, yellow for low-average, and green for optimal.
Observation | Cause | Remedy |
Limited by MainThread | CPU & GPU can affect main thread performance. Either there is a lot of processing going on in the background or it's simply not going fast enough to keep up to the expected response time. | - Reduce airport and world AI traffic. Reduce Level of Detail for Terrain and Objects. Ensure no background tasks are running. Rule out any other causes such as slow network speeds affecting online data load. |
Limited by GPU | GPU is what is currently limiting the sim. Can be bag or okay. If you see limited by GPU but the sim is stable, stutter-free, and is highlighted green, it's fine. | - May be okay if it's just you running at max settings, will show green. Otherwise, reduce graphics settings. Especially anti aliasing, shadows, and level of detail. |
Limited by CPU | Usually seen when the CPU locks up or is not performing well enough to demand. | Consider closing any other background apps/tasks. Ensure you are not being limited due to temperature or power limit. May need to overclock if CPU just isn't powerful enough. |
Graphics Settings
You will likely be surprised to find that graphics aren't the largest bottleneck for this game. The CPU is. With a 1080 or even a 2060 graphics card, you should be able to run medium level and up. Start with a lower graphics setting and work up after all tweaks. My machine showed ~ 2FPS and ~1ms drop from Low to Ultra! Wuttt?
All other settings can be left at their "preset" defaults if your machine performs well. Otherwise, feel free to individually tweak each component of graphics in the sim to find the best balance. When you start tweaking settings and are actually flying, try and use the TBM or similar aircraft for a good balance between a "light" running aircraft and something like the A320 that is much more taxing.
Remember: Shadows, Reflections, Anti-aliasing, and dense scenery tax the GPU quite a bit. With that comes additional CPU processing of all those objects and calculations.
The ones I mention below are what I suggest changing for sure:
Display Mode: Full Screen
**Terrain Level of Detail: Start at 10 up to 100 (**thanks OldGuyGeek)
- Very taxing on resources. How far out the sim will render high quality terrain. I would set these at 10 initially, tweak all other graphics settings FIRST, then finally start raising the LODs.
Object Level of Detail
- Same as above but for objects.
V-Sync = Off
- For whatever reason, MSFS' V-Sync sucks. Either use V-Sync enabled on your GPU or leave it off.
Use Generic Plan Models (AI Traffic): On
Use Generic Plane Models (Multiplayer): On
- I know that some people really like the AI and player planes to look realistic, but it can be a bit taxing especially when in a heavily populated area. I'd consider at least enabling generic models for AI traffic.
Traffic Settings
Aircraft Traffic Type = Real-Time Online
If you have an extremely slow internet connection, this can actually be bad for performance.
Show Traffic Nameplates = Off
Believe it or not, displaying 10 names above other players flying taxes the sim a bit. I actually gained about 3 FPS there alone.
The following options are very taxing on the simulator. While it is nice to have a very dense airport and scenery, it can tank your frame rate and smoothness. I'd suggest setting them to ZERO during tweaking, then increase at the end to your liking. This is after graphics settings changes too.
Airport Vehicle Density = < 50
Ground Aircraft Density = < 50
Worker Density < 50
Leisure Boats < 20
Road Vehicles < 20
Ships/Ferries < 20
Disable HUD Elements
I personally found that having the HUD icons up while flying contributed to some stuttering and a 2-3 FPS drop. Your mileage may vary on this one. Just click the settings icon and disable all options. This is a bit annoying to have to load those items through keystrokes, but I got used to it.
Data Caching
Ideally, you should have data caching enabled with unlimited or a high limit cache size. This cache is what MSFS uses to hold previously used information for areas you've visited and the world around. If you are low on disk space, consider moving the cache to another installed drive.
I did everything...it's still BAD!
If you've followed everything in this guide and still have not seen ANY improvement or just cannot get the simulator to run smoothly, I'd say there is something else in the way, not the OS or simulator anymore. These are just some likely culprits. I suggest fixing them and checking your performance again after:
Unstable CPU/GPU overclock can cause stuttering, crashes, etc. Try running stock clocks and see if the issue persists.
Machine performance is lacking. Whether it is your CPU isn't strong enough, GPU is too weak, not enough RAM, HDD vs SSD, something isn't powerful enough. Considering dropping your graphics settings and run at 30fps. Reduce level of detail.
TL;DR
Make sure machine is free of malware, has sufficient free space, is not thermally or power limited.
Ensure your machine is powerful enough for minimum requirements. More cores + Higher clock = better. 16GB+ RAM suggested, 1060 equivalent GPU or better. SSD/NVMes or bust.
Update your graphics card drivers.
Make sure all background programs are off. Yes, this includes OneDrive, OneNote, any background tasks.
If using multiple monitors, ensure refresh rates match. Mismatched rates cause stuttering especially on NVIDIA GPUs.
Don't go crazy with resolution, try and avoid 4K unless your machine is that high end.
Set power options to high performance.
Tweak NVIDIA settings according to above.
Tweak MSFS graphics and traffic according to above.
Make sure you're caching data.
Disable HUD in-flight.
Get a better computer or keep researching :)
Please let me know if you find anything incorrect here or have suggestions. I will be updating this with evidence from my research and tweaks over the next few days. All feedback is appreciated.
Also: I’d love to collect some data from you guys to get a baseline of what people are seeing with which hardware. Let me know your FPS, settings, smoothness, machine specs and if these tweaks had any impact on performance.