Microsoft Flight Simulator 5 min read

How do I fix “Limited by main thread” in MSFS 2020?

Ian Stephens
In short

Fix the “Limited by main thread” warning in MSFS 2020 by tuning Terrain LOD, traffic and cockpit displays, then checking add-ons and CPU limits.

To fix “Limited by main thread” in Microsoft Flight Simulator 2020, reduce Terrain Level of Detail and CPU-heavy traffic first, then lower Object LOD and glass-cockpit refresh rate. Test at the same airport after each change. If one route or aircraft triggers it, isolate scenery, aircraft and utility add-ons before changing hardware.

What does “Limited by main thread” mean?

It means MSFS 2020’s primary simulation thread is taking longer to prepare each frame than the graphics card takes to render it. This is a CPU-side bottleneck indicator in the Developer Mode FPS overlay, not an error or damaged-installation warning.

The simulator distributes work across several CPU cores, but flight modelling, scenery preparation, traffic, avionics and draw-call submission cannot all run in parallel. One critical thread can therefore restrict frame rate while Windows reports modest overall CPU usage.

Use our steps for enabling and reading the MSFS FPS overlay to confirm the diagnosis. Compare the MainThread and GPU frame times: the slower one is the active bottleneck.

How do I reduce MainThread time in MSFS 2020?

Lower the settings that create terrain, objects, traffic and cockpit processing; reducing resolution first is a common mistake because it mainly relieves the GPU.

  1. Create a repeatable test. Use the same aircraft, airport, runway, weather, traffic conditions and camera view. A busy handcrafted airport in an airliner is much heavier than a rural airfield in a simple piston aircraft, so comparisons between unrelated flights are unreliable.
  2. Lower Terrain Level of Detail first. Reduce it by a meaningful step and retest. Terrain LOD increases the distance over which detailed terrain and scenery must be prepared, making it one of the strongest MainThread controls during low-level flight and around cities.
  3. Reduce traffic and airport activity. Temporarily switch AI or live traffic off, then lower ground aircraft, airport vehicles and road or sea traffic. If the warning improves, restore each category gradually instead of enabling everything at its previous level.
  4. Lower Objects Level of Detail. This reduces distant buildings, vegetation and other scenery objects. It is particularly useful when performance collapses near dense cities or detailed airports but remains acceptable at altitude.
  5. Reduce Glass Cockpit Refresh Rate. Use a lower setting when an airliner or Garmin-equipped cockpit is much slower than an external view or a steam-gauge aircraft. It will have little effect in an aircraft without electronic displays.
  6. Test without third-party content. Temporarily move packages out of the Community folder and disable other third-party packages through Content Manager where possible. If performance returns, restore add-ons in batches until the aircraft, airport, traffic injector or utility responsible is identified.
  7. Remove competing CPU loads. Close browsers, recording tools, hardware-monitoring overlays and unneeded companion applications. On a laptop, connect mains power and avoid battery-saving modes. If performance suddenly became worse, also check for thermal or power throttling.
Setting or changeMain-thread effectChoose it when
Terrain Level of DetailUsually highDense terrain, cities or low-altitude flying cause the slowdown
Traffic and airport activityHigh in busy areasLarge hubs or live/AI traffic produce a sharp frame-rate loss
Objects Level of DetailModerate to highDetailed airports and urban scenery are the trigger
Glass Cockpit Refresh RateAircraft-dependentThe cockpit is slower than the external view
Render Scaling and anti-aliasingMostly GPU-sideThe overlay says GPU-limited rather than MainThread-limited

Once the MainThread time is under control, our broader MSFS 2020 performance-tuning sequence explains how to balance visual quality against the remaining CPU and GPU headroom.

Why is CPU usage low when MSFS is main-thread limited?

Low total CPU usage does not rule out a main-thread bottleneck because Windows averages activity across all logical processors. One critical simulation thread can be saturated while the remaining cores are partly occupied or idle, and the scheduler may move that thread between physical cores.

Do not force processor affinity, disable cores or assign real-time priority in an attempt to make every core busy. Those changes can interfere with background simulation threads and Windows services. Our explanation of low FPS with low overall CPU usage covers how to distinguish this behaviour from a GPU, memory or power problem.

Can I ignore the warning if MSFS 2020 is smooth?

Yes—if the simulator holds your chosen frame-rate target with consistent frame times, “Limited by MainThread” does not require repair. It simply reports which component would prevent the next increase in frame rate.

A sensible 30, 40 or 60 FPS cap, chosen according to the display and what the computer can sustain, often gives better pacing than an unstable uncapped rate. Increasing GPU-heavy settings may use spare graphics capacity, but it does not reduce MainThread time or create additional simulation frames.

Will DX12, frame generation or a new GPU fix it?

DX12 can change CPU and GPU overhead, but it is not a guaranteed MainThread fix in MSFS 2020. Test DX11 and DX12 in the same scenario after restarting the simulator, then keep the mode with the lower, more consistent frame times and acceptable add-on stability.

Frame generation, where supported, can increase the number of displayed frames without making the underlying simulation thread run faster. It may improve perceived smoothness, but severe MainThread spikes, delayed avionics or CPU-driven stutters can remain.

A faster graphics card will not materially improve performance when GPU frame time is already well below MainThread time. Consider a CPU-platform upgrade only after testing lower LOD and traffic settings, a clean add-on configuration and representative flights; strong per-core simulation performance matters more than headline total CPU utilisation.

What if the MainThread warning comes with stutters?

Steady high MainThread time and brief MainThread spikes require different treatment. A sustained limit points towards excessive LOD, traffic or cockpit workload, while spikes tied to one airport, aircraft or recurring interval often indicate scenery conflicts, scripted systems or an external utility.

Test the affected location with a default aircraft and an empty Community folder, then reverse the test by using the affected aircraft at a simple default airport. This separates aircraft load from scenery load quickly. If average FPS is acceptable but pauses remain, follow our targeted checks for MSFS 2020 stutters and micro-pauses rather than lowering every graphics option.

AI Assistant New

Still stuck? Ask Fly Away

Ask Fly Away is our AI flight-sim assistant. Ask your exact question and get a direct, step-by-step answer in seconds — free to try.

Ask Fly Away Free preview · unlimited for PRO members