P3D VSync and Performance Tuning

Any problems with your Installation or other install related questions, please post here

Moderators: Steve Waite, SysAdmin

P3D VSync and Performance Tuning

Postby Steve Waite » Tue Jun 20, 2017 5:06 am

P3D VSync and Performance Tuning

P3D Display Settings: With VSync=On and Unlimited fps set on the slider control P3D will steer output framerate to the refresh frequency of the monitor. It is important to note that the VSync setting in P3D Display Settings does not control screen tearing. Screen tearing is handled from the Windows desktop vsync which is normally on.

In other words, when we turn OFF VSync in P3D Display Settings the renderer will output at the fastest rate it can make. This can use a lot of CPU, we can see the effect when we turn P3D VSync on with Unlimited fps setting the framerate is limited to the monitor frequency and the work on the CPU calms down - that is if the fps frequency output could be maintained faster than the monitor before we introduce VSync=On.

(We can use the nvidiaProfileInspector.exe fps limit setting if our monitor refresh is too high, or we can make a new monitor profile with a lower refresh rate in NVidia Control Panel, DIsplay, Change resolution, Customise...)

We can make settings that overwhelm the simulator and reduce the output to below the monitor frequency, then VSync has no effect. Using the VSync feature allows careful study of the performance we are placing on the sim, we need only watch the sim perform in the Task Manager graphs when adding features.

Study the graphs below and see how P3D limits fps output and how adding graphical features slows down the fps. (Four core HT Off No AM=1111):


The graphs in the graphic above were taken with the sim stable at rest and aircraft parked at the gate, in effect there's no scenery loading which keeps the graphs clear. The top left graph is core zero working on rendering fps, can be seen at 100% throughput in the first and last graphs. The top right core 1 is threadpooling and some other duties, the lower two cores 2 and 3 are loading scenery.

P3D v4 splits out its processes across the CPU depending on how many Logical Processors (LP) it can see. in the following set of graphs a four core +HT is used, HT enabled so that we can unmask up to eight LPs, with HT disabled we only have four LPs. The six core (or more) CPU looks favourable for P3D v4 because we can eliminate loading tasks from the first two processes with six Logical Processors:


AffinityMask 245=11,11,01,01 shows use of only two cores (four LPs) for loading but the first two sim processes are free from loading tasks and each to a separate core. The four LPs loading maximise use of the last two cores and benefit from Hyperthreading performance boost. A system may need more loading throughput with three cores loading, 85=01,01,01,01 may be better with some systems and slower fps.

With P3D v4 and six core (or more) HT enabled try AM=3028=10,11,11,01,01,00, splits out all three main rendering tasks to a core each and uses in total four cores for loading. Pattern equivalents to AM=3028 and six cores are the minimum requirement for maximum performance.

We can use NVidia Profile Inspector to set the fps limit if our monitor refresh is very high. With a typical 60Hz refresh monitor, this may well perform at 59fps, so we can limit at half or third or quarter (30, 20 or 15) the refresh rate for a greater co-incidence rate between frame output and monitor timing. It is better to set the slightly lower fps limit than vsync frequency. See the graphs:

software architect at codelegend.com
i7-3960x 32Gb GTX680 4Tb Intel RAID 10 Win10
Steve Waite
Posts: 3379
Joined: Wed Jun 29, 2011 12:02 am

Return to Installation

Who is online

Users browsing this forum: No registered users and 1 guest