MadDog

Prepar3D Vsync/Triple Buffering... Placebo?

Recommended Posts

I'm curious about what the Vsync/Triple Buffering options in Prepar3D actually do?  Through various tests, I've confirmed that Vsync in Prepar3D is in fact being provided by Windows Desktop Composition (aka "DWM", aka "Aero").  I am also pretty confident that Desktop Composition is already triple buffered.  This can easily be confirmed by turning off Vsync in Prepar3D and observing that there is still no screen tearing.

Going a step further, disabling Desktop Composition in Windows (and reenabling Vsync/Triple Buffering in Prepar3D) will result in very noticable tearing in the sim (not to mention extremely smooth frames :happy:).  So what is the purpose of those options?  I'm unsure if it's totally placebo because the Prepar3D Vsync does appear to slightly reduce tearing with Desktop Composition disabled; but it certainly doesn't eliminate it.

Share this post


Link to post
Help AVSIM continue to serve you!
Please donate today!

1 minute ago, laserit said:

Full Screen

There is no Full Screen in Prepar3D.  Only borderless windows (unfortunately).

Share this post


Link to post
8 minutes ago, MadDog said:

There is no Full Screen in Prepar3D.  Only borderless windows (unfortunately).

If your in window mode, go to options/display and change your resolution. When you return to the sim, nothing will change until you hit alt_enter or switch to full screen in the menu.

Share this post


Link to post

This is useful if you are in SLI Surround to prevent tearing, I have to have enabled in Nvidia CC.  

Share this post


Link to post
13 minutes ago, angeli662 said:

This is useful if you are in SLI Surround to prevent tearing, I have to have enabled in Nvidia CC.  

Interesting. So would it only apply to SLI?  Personally, I've discovered that sync-induced micro-stutters are slightly better with Vsync/Triple buffering disabled in Prepar3D (using a single card on a single display).  I wonder if it adds additional processing for multiple monitors into the mix.

Share this post


Link to post
4 minutes ago, MadDog said:

Interesting. So would it only apply to SLI?  Personally, I've discovered that sync-induced micro-stutters are slightly better with Vsync/Triple buffering disabled in Prepar3D (using a single card on a single display).  I wonder if it adds additional processing for multiple monitors into the mix.

Not sure but in my case Triple displays and Triple cards  and SLI s. is very noticeable when comes to vertical sync. 

Share this post


Link to post

It does work for me, absolutely and what's even crazier, it doesn't even need to be at the V-Sync range to be effective. I have my sim framerate capped well below the actual V-Sync level but enabling V-Sync and Triple Buffering yields a smoother image when panning. I also tried uncapping the sim and the second I enable TB, I'm seeing a consistent reduction of 2ish FPS. So it's doing something. I can then disable it and the panning already feels a bit more direct but also less smoothed out. So Triple Buffering is definitely part of my setup to give me a smooth experience. 

Share this post


Link to post

I have 1070's in SLI and do not use vSync or TB and I have no tearing or lack of smoothness. This was the same on my old resolution 1920x and my new resolution 3560x.  FWIW, I did have it in FSX, when I turned my head using TIR the cockpit window edges would tear badly.

Vic

  • Upvote 1

Share this post


Link to post
28 minutes ago, vgbaron said:

 FWIW, I did have it in FSX, when I turned my head using TIR the cockpit window edges would tear badly.

Yes, that would make sense since FSX automatically disabled Aero and Desktop Composition - I don't think you could vsync it in a window.  When running in Full Screen Exclusive mode, FSX required Vertical Sync to be enabled at the driver level (Oh, how I miss my half vertical refresh!)

I'm still unclear why these options are provided in Prepar3D's UI when WIndows already has them enabled by default.  Is it supposed to be some sort of "enhanced" Vsync?

Share this post


Link to post
23 minutes ago, MadDog said:

Yes, that would make sense since FSX automatically disabled Aero and Desktop Composition - I don't think you could vsync it in a window.  When running in Full Screen Exclusive mode, FSX required Vertical Sync to be enabled at the driver level (Oh, how I miss my half vertical refresh!)

I'm still unclear why these options are provided in Prepar3D's UI when WIndows already has them enabled by default.  Is it supposed to be some sort of "enhanced" Vsync?

Nvidia Control Panel and Nvidia Inspector also has the option and can be Game specific.

Share this post


Link to post
3 hours ago, laserit said:

If your in window mode, go to options/display and change your resolution. When you return to the sim, nothing will change until you hit alt_enter or switch to full screen in the menu.

But full screen in p3d isn't really full screen. It's a borderless window. Always had been and it's why the 1/2 refresh setting doesn't work in nvidia inspector. I think this is what the poster is referring to.

Share this post


Link to post
8 minutes ago, GHarrall said:

But full screen in p3d isn't really full screen. It's a borderless window. Always had been and it's why the 1/2 refresh setting doesn't work in nvidia inspector. I think this is what the poster is referring to.

All I know is that if I change the screen resolution setting inside of P3D it will ignore the change in windowed mode and the change will occur as soon as you enter fullscreen mode. So there definitely is something different between the two modes besides the removing of borders.

it will also switch back and forth between the two resolutions as you switch back and forth between windowed and fullscreen modes. 

Share this post


Link to post
24 minutes ago, laserit said:

All I know is that if I change the screen resolution setting inside of P3D it will ignore the change in windowed mode and the change will occur as soon as you enter fullscreen mode. So there definitely is something different between the two modes besides the removing of borders.

There is nothing different other than the fact that the resolution is not changed until the screen-filling window is created.  Once the Prepar3D window is open, if you ALT+TAB back to the desktop, you'll notice that the desktop resolution has changed to match whatever you selected in Display Options.  It is no different than selecting a different desktop resolution beforehand and expanding a window to fill it (except that the borders are hidden).

Share this post


Link to post

Also, if Prepar3d's  Vsync does nothing then why does my frame rate change when I deactivate Vsync? 

Share this post


Link to post
3 minutes ago, laserit said:

Also, if Prepar3d's  Vsync does nothing then why does my frame rate change when I deactivate Vsync?

I'm not stating for a fact that it does nothing... but I am stating that it appears to be doing something other than providing Vsync.  If you go through the steps I outlined in the original post, you can witness it for yourself.

Share this post


Link to post

I don't know whats its doing inside of P3D but it absolutely is having a positive effect for me and its definitely not a placebo ;)

Without the Vsync my frames jump around from a low of around 39 to a high of about 58 and I get microstutters. If I use the frame rate limiter I get microstutters. Limiting my frames by way of the Vsync inside of v4 gives me the smoothest experience and best feeling of speed that I've ever had with ESP. I haven't experimented with settings outside the sim yet as for the first time, I haven't felt the need to.

Share this post


Link to post

I think you are right, it is a well known trick in Xplane 11 to run the sim in windowed mode to get rid of screen tearing. p3d is just running windowed mode in full screen.

 

Share this post


Link to post

VSync in P3D steers the GPU output to the Monitor refresh frequency. Check out my other post:

 

 

Share this post


Link to post
10 hours ago, SteveW said:

VSync in P3D steers the GPU output to the Monitor refresh frequency. Check out my other post:

Ah...that makes sense - so it basically limits the framerates based on refresh rate (a la traditional vsync).  I normally keep P3D internally locked at 30... so didn't notice that.  It's interesting that desktop composition does not limit frames by default so it must be adaptive;  I assume that the P3D vsync option must disable the adaptive functionality.  So that just leaves the question of what the P3D Triple Buffering option does (since I'm pretty sure that desktop composition is already triple buffered).

Share this post


Link to post

 

2 hours ago, MadDog said:

Ah...that makes sense - so it basically limits the framerates based on refresh rate (a la traditional vsync).  I normally keep P3D internally locked at 30... so didn't notice that.  It's interesting that desktop composition does not limit frames by default so it must be adaptive;  I assume that the P3D vsync option must disable the adaptive functionality.  So that just leaves the question of what the P3D Triple Buffering option does (since I'm pretty sure that desktop composition is already triple buffered).

Yes, simply takes the monitor vsync frequency for output fps, actual frame vsync is handled by the desktop as you correctly worked out.

Triple buffer allows the renderer to start drawing a spare frame while one backbuffer is in mid-read and the other has just completed drawing. So it will be hard to see if that's operating, looking at processor graphs will be no use. Having the frame in hand is of benefit to the overall timing and accuracy of the physics and locations of objects in the sim. With the locked fps on the slider, this keeps up to three frames in hand but more important is the fact that the position of the terrain and objects in the next frame is calculated from the exact same period of each next frame, and is designed to run so that these are displayed exactly in the positions they were calculated to be in. With Unlimited the time of the next frame and the location of the objects is calculated on the average fps at the time. If the fps is wandering when the sim displays the next frame it's not showing the objects where they should be and shaves off accuracy. The triple buffer helps ensure the average fps is maintained as the timing from that is more stable. Whether it makes a difference to the GPU/Monitor coordination I'm not sure.

Share this post


Link to post

Seems vsync works best on lower-end systems or systems that have a pronounced bottle-neck somewhere.  I don't ( and never did even in FSX) use vsync as I want full throughput at all times.  V4 is nice because unlike V3.4, FPS stays fairly consistent with unlimited.

 

Cheers

bs

Share this post


Link to post
1 hour ago, bean_sprout said:

I don't ( and never did even in FSX) use vsync as I want full throughput at all times.

That was kind of the point of my post.  Unless you specifically disabled Desktop Composition in Windows, you've actually been using Vsync all along...you just didn't know it.

Share this post


Link to post

When vsync is enabled panning is unacceptable both in cockpit and external.  If it defaults to adaptive I can see your point as my FPS is generally over 100.
 

Cheers
bs

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now