Triple Buffering - Adds or reduces input lag?

crow41798

Junior Member
Apr 29, 2014
1
0
0
After searching multiple forums for about an hour, I've gotten conflicting answers about whether or not triple buffering introduces or reduces input lag. Anyone willing to give me a straight answer as to why there's so much confusion on this?
 

toyota

Lifer
Apr 15, 2001
12,957
1
0
no straight answer will ever been given. it will just be the same arguments that have happened for years.
 

bystander36

Diamond Member
Apr 1, 2013
5,154
132
106
It depends. There is no clear answer, because it depends on several different conditions.

Assuming a 60hz monitor:
OpenGL - There are no conditions where triple buffering adds to latency. At worst, it won't improve things.

DirectX:
FPS are lower than 60 - latency is improved with triple buffering, as it allows the GPU to start on new frames while waiting to display an existing one.

FPS are a solid at 60
- You'll get added latency. DirectX requires all rendered frames to be displayed, as a result, you will end up in a render ahead system where the frame being displayed is the older of 2 rendered frames.

Note: SLI and Crossfire force triple or more buffering.
 

bystander36

Diamond Member
Apr 1, 2013
5,154
132
106
Less input lag than two buffer v-sync. More lag than no v-sync at all.
Not always true. With DirectX games (most games), if you are maintaining your FPS at your refresh rate, triple buffering increases latency.
 
Last edited:

TrulyUncouth

Senior member
Jul 16, 2013
213
0
76
Any buffering will add latency over not buffering. Do the people who think otherwise not know what the word buffer means?
 

dacostafilipe

Senior member
Oct 10, 2013
779
253
136
As long as you have to "wait" to show a new frame, you will always have a "lag" between what you see and where you are located in the 3D space. It's the case with v-sync, tripple buffering, g-sync, every-sync, ...

Yes, you can play with the fps, hz, buffering type tp minimize the lag, but you can not remove it, unless you remove the "waiting"
part.
 

PliotronX

Diamond Member
Oct 17, 1999
8,883
107
106
As long as you have to "wait" to show a new frame, you will always have a "lag" between what you see and where you are located in the 3D space. It's the case with v-sync, tripple buffering, g-sync, every-sync, ...

Yes, you can play with the fps, hz, buffering type tp minimize the lag, but you can not remove it, unless you remove the "waiting"
part.
Yes! Just by the nature of triple buffering, you will always be one frame refresh behind. At 60Hz that is 16ms. A lot of people will not notice it but if you're the type to run your mouse at 1000Hz on a USB port, you most definitely will.
 

bystander36

Diamond Member
Apr 1, 2013
5,154
132
106
Any buffering will add latency over not buffering. Do the people who think otherwise not know what the word buffer means?

With double buffering, v-sync and FPS below 60, the lack of buffering makes the GPU have to wait until vertical retrace mode before it can start working on the next frame. That waiting causes more latency than if you had a 3rd buffer for the GPU to start working on the next frame, getting a head start for the next refresh. That reduces latency. Without triple buffering, in this case, your FPS will tend to stick near 30 FPS until you can reach 60 FPS.

If you are able to reach 60 FPS and stay there, then in DirectX, triple buffering will result in the newest frame being held back until the oldest frame is displayed. This causes more latency than double buffering.

Triple buffering without V-sync does nothing. G-sync reduces the latency of seeing the whole frame, better than no sync at all, as part of the image has to wait a refresh to be seen.
 

KingFatty

Diamond Member
Dec 29, 2010
3,034
1
81
This seems to illustrate how you may or may not get a delay, depending on various factors as explained above?

512px-Comparison_double_triple_buffering.svg.png


http://en.wikipedia.org/wiki/Multiple_buffering