# I use Vsync for all my games, but is Triple Buffering worth it? Why is it even there?



## Phusius (Jun 25, 2012)

Just wondering if there is any reason Triple Buffering exists (and what its pros and cons are)


----------



## razaron (Jun 25, 2012)

Double buffering is a rendering technique where the image currently being rendered is held in a buffer and you are shown an old image until the new one is complete. After completing, the buffers swap so you see the new image and the old image is removed with a newer image being drawn in its place. Basically, this stops you from seeing the image as it's being rendered piece by piece.
Triple buffering is the same thing, but with an extra buffer. This increases performance by allowing the unused buffer to start drawing after the new image is being swapped with the old image. This increases performance because the swapping of images takes a certain amount of time, thus creating lag.

I assume you're talking about CCC, so, this will only affect programs that use OpenGL.


----------



## Phusius (Jun 25, 2012)

So in CCC I should enable vsync and triple buffering then for the hell of it?  even though triple buffering is CL only or w.e?

also, are the call of duty games OPEN GL?  cause that would be cool if triple buffering helps them.


edit:  I love London!!!!  can't wait to go back someday, I just wish it was easier to get a job/visa over there.


----------



## entropy13 (Jun 25, 2012)

There aren't that many OpenGL games in the first place...


----------



## Phusius (Jun 25, 2012)

entropy13 said:


> There aren't that many OpenGL games in the first place...



So I would need a Nvidia graphics card to enable triple buffering for all games?


----------



## razaron (Jun 25, 2012)

OpenGL is a graphics library. It's something like DirectX. Just like DirectX, only games that are built to use it can use it.


----------



## Spaceman Spiff (Jun 25, 2012)

Use a program called D3DOverrider to force triple buffering in DirectX games, since CCC and Nvida CP only force it in OpenGL apps.


----------



## librin.so.1 (Jun 25, 2012)

Spaceman Spiff said:


> since CCC and Nvida CP only force it in OpenGL apps.



Wait. What!?

~Back on topic~

Some games have an in-game setting to set triple buffering. It's best to enable it from there, when possible.
Also, note that triple buffering increases the input lag a little. When playing games that don't require extreme responsiveness (e.g.: MMOs, RPGs, among others), it's completely unnoticeable, thus having it on is usually a Good Thing™ there. On the other hand, when playing games that _do require_ extreme responsiveness (competitive shooters, mostly), it is best to avoid it, as the input lag becomes noticeable and really annoying at times.


----------



## happita (Jun 26, 2012)

So a game like Counter-Strike 1.6 will be affected in a negative way with extra input lag by turning on triple buffering? If this is true, then its no wonder why I never made the pros


----------



## Kreij (Jun 26, 2012)

Screen data always comes from a buffer. GCs render to a buffer, never directly to the screen.
That would be a disaster fron an efficiency standpoint.

The front buffer is what is sent to the screen when a refresh event occurs (the speed of this is dependant upon the refresh rate of your monitor).

The back buffers (2nd and 3rd) are independent of the refresh timing so the GC can fill them as fast as it possibly can. The buffers are then moved to the front for display when needed.
There is no theorectical limit as to how many back buffers a game (or whatever) can use, but more than 3 buffers is rarely used. This eliminates or reduces flicker, tearing and other artifacts.

Quad buffering in 3D is sometimes used (double buffering for each eyes image), but I've never seen a game that is not 3D use more than 3.

To say that an FPS game benefits from a single buffer is nonsense. Any modern GC can fill two buffers much faster than even the fastest monitors can display them, and the buffer transfers within the GC memory are in the sub millisecond range. If the game employs good algorithms for buffer fills, the GC could easily refresh the back buffer before it's needed if it had to do so.

As was stated, though, tripple buffering may not be of much benefit in some cases.


----------



## robal (Jun 26, 2012)

The basic issue with Vsync is that you FPS is tied to your display's refresh frequency.  Most displays these days have 60Hz, hence your FPS will be 60 FPS.
The trouble starts when your GPU cannot sustain rendering 60fps. In this case FPS will be cut in half, and drop all the way to 30fps (60/2=30) (which is pretty bad).

Triple buffering allows to use hardware more efficiently. If your GPU could render, say: 50 fps, you'll see benefit of it (it won't drop immediately to 30fps).

That comes at a cost of increased input lag (which is quite noticeable, and prevents any competitive shooter gaming).


When you've got a good GPU, a very good idea is to get a "3D" monitor (or projector in my case).
These displays support 120Hz. That makes Vsync work at beautifully fluid 120fps, and when you GPU can't sustain it, it drops to 60fps, which is still great.


----------



## Benetanegia (Jun 26, 2012)

Kreij said:


> To say that an FPS game benefits from a single buffer is nonsense. Any modern GC can fill two buffers much faster than even the fastest monitors can display them, and the buffer transfers within the GC memory are in the sub millisecond range. If the game employs good algorithms for buffer fills, the GC could easily refresh the back buffer before it's needed if it had to do so.



It's a little more tricky than that. When fps are lower than refresh rate, sometimes you'll see frames that are 2 frames old, and at 60 Hz that lag suposes 33 ms, which is quite a lot for competitive play. For older games like CSS running at 300 fps on modern cards that's not a problem but for, say Battlefield 3, it can be very noticeable.


----------



## qubit (Jun 26, 2012)

There's a really good article on what triple buffering is all about on either Ars Technica or AnandTech, I can't remember now and I'm too busy to go look.

However, it basically gives you all the benefits of regular vsync while minimising the inpu lag, which is important in fast FPS games. In short, use it.


----------



## Kreij (Jun 27, 2012)

Benetanegia said:


> It's a little more tricky than that. When fps are lower than refresh rate, sometimes you'll see frames that are 2 frames old, and at 60 Hz that lag suposes 33 ms, which is quite a lot for competitive play. For older games like CSS running at 300 fps on modern cards that's not a problem but for, say Battlefield 3, it can be very noticeable.



I understand that, but if your GC can't handle a single buffer at 60Hz, then you either need to drop the eye candy or get a better card.
I know that some of the games are GC killers, for whatever reason, and that everyone wants to run them at max, but that ain't reality in many cases.


----------



## Phusius (Jul 7, 2012)

qubit said:


> There's a really good article on what triple buffering is all about on either Ars Technica or AnandTech, I can't remember now and I'm too busy to go look.
> 
> *However, it basically gives you all the benefits of regular vsync while minimising the inpu lag, which is important in fast FPS games. In short, use it.*





robal said:


> Triple buffering allows to use hardware more efficiently. If your GPU could render, say: 50 fps, you'll see benefit of it (it won't drop immediately to 30fps).
> 
> *That comes at a cost of increased input lag (which is quite noticeable, and prevents any competitive shooter gaming).*
> 
> ...





So confused, will Triple Buffering hinder me in competitive online FPS or not?


----------



## qubit (Jul 7, 2012)

Phusius said:


> So confused, will Triple Buffering hinder me in competitive online FPS or not?



No, not at all. It will actually help. Ultimately, just try it and see which setting you like best.


----------



## Phusius (Jul 28, 2012)

I for one have seen no input lag in high twitch FPS games with Vsync on and Triple Buffering on, and yes this was an (Open GL game, which is required for triple buffering).

Not sure why people say input lag is very noticeable, I have noticed none at all, maybe it is irrelevant now for high end GPU's?


----------



## librin.so.1 (Jul 28, 2012)

Phusius said:


> Not sure why people say input lag is very noticeable, I have noticed none at all



...is in the eye of the beholder.


----------



## Drone (Jul 28, 2012)

entropy13 said:


> There aren't that many OpenGL games in the first place...



lolwut







Doom series, Unreal series, Medal of Honor series, Quake series, Serious Sam series, Wolfenstein (new and old), Max Payne, Prey, Spring, Soldier of Fortune, Rage, Red Faction, Half-Life ...

Should I go on?


----------

