Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Amazing Simple Microstutter Fix

Featured Replies

37 minutes ago, Bert Pieke said:

BTW, I still have my AM set to 253 (11 11 11 01) for my quad core CPU, but not sure it makes any difference to no AM..

 

I too presently use an AM that ends in "01".  I've found that this works well.

I'm wonder what the difference is between just leaving vsync on versus using this new nvidia driver limiter.  By leaving on vsync I too see cpu usages in the goldilocks zone.

Rhett

7800X3D 96 GB G.Skill Flare  Gigabyte 4090  Crucial P5 Plus 2TB

  • Replies 79
  • Views 12.1k
  • Created
  • Last Reply

When I set limiter to 30 fps in NVCP and I open any undocked window (I use it for GTN moved to touchscreen monitor), I have fps 50% lower (~15fps). When I do the same procedure with limiter in P3D, I have the same 30fps all time. For me NV limiter working worse as internal P3D.

Mark

 

Prepare3Dv5, MSFS / TUF ASUS Z790 PRO / I9 14900K @ 5.8 GHz / GSkill 64 GB DDR5 6000 MHZ CL30 / RTX4070TI 12G / Windows 11 Home / Monitor Philips 436M6VBPAB / Force Feedback Yoke / Thrustmaster PTR rudder pedals

I've been using this tweak several times with no remarkable effects. I tried it because my P3D core 0 is pegged at 100% . Not sure since when it is like this, because some time ago core 0 was fluctuating between 90 and 100%.

Edited by Nemo

- Harry 

9800x3D (Strix x870e-E)  -  64GB RAM (DDR5 6000, CL 30)  -  RTX 5090, 34'' 1440p OLED HDR  -  Windows 11 Pro (1TB M.2)  -  MSFS 2024 (MS Store, 4TB M.2).

8 hours ago, MaSi said:

When I set limiter to 30 fps in NVCP and I open any undocked window (I use it for GTN moved to touchscreen monitor), I have fps 50% lower (~15fps). When I do the same procedure with limiter in P3D, I have the same 30fps all time. For me NV limiter working worse as internal P3D.

Mark

Multiple screens clearly do not work... 15 = 30 / 2  for two screens  :happy:

Bert

19 hours ago, Bert Pieke said:

 

Well said!

And what I would add is that with Nvidia driver 442.19, you can limit your fps in the Nvidia Control Panel (I have mine set to 29..) and this will cut back on your Core 0 usage..

So, now I have fps set to unlimited in P3D, vsynch off, fps capped at 29 in NCP, and I get smooth flight, and average Core 0 load of 60-70%..

This with a 1080p/60Hz monitor.

Looking pretty good to me :smile:

BTW, I still have my AM set to 253 (11 11 11 01) for my quad core CPU, but not sure it makes any difference to no AM..

 

Hey Bert.  So quick question.  By doing it this way is the advantage you can keep the monitor at the native 60hz?  Reason I ask.  My current setup is a 4k/60hz monitor.  What i do is unlimited in P3D with vsync on and TB on.  Then in NCP I set the refresh rate to 30hz when running P3D.  So essentially locking at 30.  Just want to see if there is a difference. 

5800X3D, 4090FE, 64GB DDR4 3600C16, Gigabyte X570S MB, EVO 970 M.2's, Alienware 3821DW  and 2  22" monitors, Corsair RM1000x PSU,  360MM MSI MEG, MFG Crosswind, T16000M Stick, Boeing TCA Yoke/Throttle, Skalarki MCDU and FCU, Logitech Radio Panel/Switch Panel, Spad.Next

9 minutes ago, micstatic said:

Hey Bert.  So quick question.  By doing it this way is the advantage you can keep the monitor at the native 60hz?  Reason I ask.  My current setup is a 4k/60hz monitor.  What i do is unlimited in P3D with vsync on and TB on.  Then in NCP I set the refresh rate to 30hz when running P3D.  So essentially locking at 30.  Just want to see if there is a difference. 

My monitor only runs at 60 Hz, so yes, for me, that is the reason.

If you can run your monitor at 30 Hz, that is likely better..

Bert

  • Author
On 2/16/2020 at 11:49 AM, w6kd said:

What you're really doing with this "tweak" is tricking the OS into swapping the main thread around to balance the load across the CPU cores.  Note that this is actually *less* efficient than running the main thread on a single core, because now overhead is being incurred to swap the thread from core to core, which unnecessarily uses CPU cycles.  90% utilization on a single core turns into something like 23% across four cores...the same instruction sequence and thread blocks occur either way, so it isn't any faster or more efficient.

Think of it like cooking muffins...you can put them into the oven for 20 minutes, or you can cook them for five in your oven, go to the neighbor's house and cook them for five more there, then move down the street again...etc.  The muffins won't be done any faster, and it takes more work to keep moving them from oven to oven.

 

 

Cute analogy. However, given the efficiency of modern OS/database/application design, it is more akin to moving the muffins from one oven to one immediately adjacent.

I was, and remain, leery of multi-processor effects (MP scaling) that can be exacerbated by switching from core to core, moving working sets all over the place resulting in cache thrashing, et al. However, I have yet to "see" a detrimental effect. Right now, I am going by feel, as in how smooth does it feel with the affinity change in or out. As I get a better feel, I will try to quantify the change. As it is, my overall SYSTEM busy remains in the range of 70 to 90-percent (and I am thrashing my GTX 1080 pretty hard too) while using RivaTuner to set my monitor at slightly less than 30 fps (my ultrawide monitor cannot achieve 60 fps). I get a consistent 29.9 fps and smooth operation. Still get glitches from ChasePlane but I think that is a different issue.

It will be interesting to see if I can determine how efficient the P3DV4.5 kernel is, assuming Lockheed Martin programmers designated a core kernel that dispatches all other threads. Will keep you posted! 

John Howell

Prepar3D V5, Windows 10 Pro, I7-9700K @ 4.6Ghz, EVGA GTX1080, 32GB Corsair Dominator 3200GHz, SanDisk Ultimate Pro 480GB SSD (OS), 2x Samsung 1TB 970 EVO M.2 (P3D), Corsair H80i V2 AIO Cooler, Fulcrum One Yoke, Samsung 34" 3440x1440 curved monitor, Honeycomb Bravo throttle quadrant, Thrustmaster TPR rudder pedals, Thrustmaster T1600M stick 

  • Commercial Member

The main thread communicates with another task handling coalescing parallel threads. In Windows multi-threaded apps the UI thread is stalled by other threads so care must be taken in this respect.

Steve Waite: Engineer at codelegend.com

  • Commercial Member

Whether we use an AM or not the simulator is running with an AM. Or rather, when the sim starts up it lays out its tasks one per Logical Processor (LP). When watching the graphs we can see that there are four main tasks. Other LPs are collecting data so don't run all the time. We can see those all operating when the sim is starting up. When the sim is relaxed we see four main tasks.

If we use the CPU HT disabled, looking at for example a four core we see those tasks one per core = 1111

If we then enable HT we see those four tasks 00,00,11,11 - they occupy the first two cores.

The sim makes four mores tasks 11,11,00,00 so we now have 8 tasks 11,11,11,11.

It can be seen that the main task 00,00,00,01 is sharing with task two 00,00,00,10.

So if we move task two to the next available physical core we are not sharing the core that we need the most 11,11,11,01. Now we have seven tasks.

So anyone that went from HT disabled no AM 1111 to HT enabled no AM 11,11,11,11 has a surprise in store since the main sim is running on only two shared cores, giving rise to the abandonment of HT:

The main task is shared so it has not access to the full throughput available. The background tasks are improved and fill in is faster. That's because using parallel tasks on HT enabled extracts more throughput from a core because HT is the optimisation of a core.

With no AM in HT mode the main task is shared. With '01' on the right of the AM the main task has a core to itself.

When checking or unchecking a box in Task Manager details, set affinity, the jobscheduler is nudged into operation and will rearrange tasks. This might result in moving the main task onto a lesser used core freeing up throughput to it. That's perfectly legal and does not affect the operation of threads. It doesn't matter the arrangement of tasks or which cores or LPs are used by which tasks.

 

 

Edited by SteveW

Steve Waite: Engineer at codelegend.com

  • Commercial Member

Other games don't have an Affinity Mask and task layout arrangement and may be better suited to HT disabled. The ESP FSX P3D engine is designed for us to extract the full effect from a CPU, if we know how to. The blanket dismissal of HT shows a lack of understanding of the concepts of the P3D engine and are unsure of the way CPUs work in muti-tasking arrangements.

Steve Waite: Engineer at codelegend.com

  • Commercial Member

Tried this for laughs just to see the result on my specific system.  As expected, seemed to induce even more stutters.  Guess as others have said, YMMV.

 

(i7 7700K @ 4.8 with HT on)

Edited by CaptKornDog

Kyle Weber (Private Pilot, ASEL; Flight Test Engineer)
Check out my repaints and downloads, all right here on AVSIM

  • Commercial Member
1 minute ago, CaptKornDog said:

Tried this for laughs just to see the result on my specific system.  As expected, seemed to induce even more stutters.  Guess as others have said, YMMY.

 

(i7 7700K @ 4.8 with HT on)

AM used?

Steve Waite: Engineer at codelegend.com

  • Commercial Member
7 minutes ago, SteveW said:

AM used?

No answer!

The usual story of poor HT performance is that the instructions have been ignored.

Other aspects of typical failures to test properly are that the system must be run a few times after rebooting into HT On or OFF due to windows caching.

It's easy to spot the difference with parallel tasks being doubled, the sim loads up faster. We have to marry faster loading parallel tasks sharing cores with monolithic tasks protected from sharing cores.

Blanket dismissal of HT by jokers causes unnecessary confusion for those looking to trim up their sim and get the best out of their PC.

Steve Waite: Engineer at codelegend.com

  • Commercial Member
17 minutes ago, CaptKornDog said:

Tried this for laughs just to see the result on my specific system.  As expected, seemed to induce even more stutters.  Guess as others have said, YMMY.

 

(i7 7700K @ 4.8 with HT on)

Beg your pardon. You obviously mean by adjusting the checkboxes in task manager set affinity after starting the sim?

Problem here is this depends a lot on what AM is in use and what checkboxes are checked or unchecked after.

The effect can go either way.

Instead as I mentioned above the best plan is to set the thing up so that the tickboxes are not needed a visit.

Steve Waite: Engineer at codelegend.com

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.