Triple Buffering
crae
Join Date: 2005-01-30 Member: 39035Members
<div class="IPBDescription">Why We Love It</div>We often neglect to get too involved in the discussion of what options people should always enable when they play games. Rather, we tend to focus on what we test with. Honestly, our recommended settings for playing the games we test would be very similar to the settings we use to benchmark with one very important exception: we would enable triple buffering (which implies vsync) whenever possible. While it's not an available option in all games, it really needs to be, and we are here to make the case for why gamers should use triple buffering and why developers need to support it.
Most often gamers, when it comes to anything regarding vsync, swear by forcing vsync off in the driver or disabling it in the game. In fact, this is what we do when benchmarking because it allows us to see more clearly what is going on under the hood. Those who do enable vsync typically do so to avoid the visual "tearing" that can occur in some cases despite the negative side effects.
Read on...
<a href="http://www.anandtech.com/video/showdoc.aspx?i=3591&p=1" target="_blank">http://www.anandtech.com/video/showdoc.aspx?i=3591&p=1</a>
Most often gamers, when it comes to anything regarding vsync, swear by forcing vsync off in the driver or disabling it in the game. In fact, this is what we do when benchmarking because it allows us to see more clearly what is going on under the hood. Those who do enable vsync typically do so to avoid the visual "tearing" that can occur in some cases despite the negative side effects.
Read on...
<a href="http://www.anandtech.com/video/showdoc.aspx?i=3591&p=1" target="_blank">http://www.anandtech.com/video/showdoc.aspx?i=3591&p=1</a>
Comments
Just messing with you a bit. I don't see triple buffering as that big of a deal, though I see no harm in making it available for others. It all boils down to whether or not you think that 15MB or 25MB of used video card memory is worth removing the possibility of 'tearing'. If it doesn't happen to you, it's not worth it. :P
--Scythe--
I play my FPS games double buffered with vsync off, even when triple buffering is available. For singleplayer non-FPS games I'd probably choose triple buffering if I could spare the extra GDDR.
And I think VSync is not that important as most modern TFTs don't suffer from tearing anymore.
Wait... this ain't ns2 related !11
Tearing is not monitor related, it's video card related, so you will still get tearing on modern tft panels
I don't need more FPS than my monitor can handle anyway, in fact I don't even want that, why would I?
No, but I thought it was a really good read (it clarified the issue for me) and allot of other people would benefit by knowing this.
There isn't one perfect answer for every situation. Double buffering with vsync is best when you don't want to render frames you won't see, you don't need frame by frame syncing with mouse input, and you're consistently getting more than 60FPS. Vsync off is best when you need as little input lag as possible, and image quality is of lesser importance -- turn vsync off if you consistently get lower than 60FPS. Triple buffering is best when you don't want tearing, input lag is of somewhat importance, and it's an option in the game -- especially helpful over double buffering w/ vsync when you're jumping between 50FPS and 70FPS, for example.
With CRT displays that can get well over 60hz, the drawback of triple buffering is reduced as the maximum possible added display lag is reduced. However, this makes tearing less noticeable as well. Essentially, CRTs are more flexible for gaming.
The article can claim whatever it wants - fact of the matter is that vsync adds a perceptible amount of mouse lag. This is not a placebo. Try it yourself. Moreover, even if it didn't add any mouse lag, I'd still keep it off because the FPS at which HL runs affects the physics of the game. Bhopping is significantly slower at 60 FPS, unless you're ccnccc99.
Triple buffering solves the halving problem by buffering an extra frame and providing the machine a little breathing room to keep rendering while the other frame buffers are accessed/purged/filled.
Basically, any competent 3d engine should afford triple buffering and its the only way to use vsync properly.
Triple bufering can add a delay of 1 frame but generally it isn't laggy. What you may notice though are the excess buffered frames that the video card does anyway. You can set the pre-render value on nvidia and ati cards, sometimes they are set as high as 5 framess, so generally set it to 1 or 2 to be safe in case of a badly programmed engine, and 0 if the engine is properly made (usually this is pretty rare, a setting of 0 only makes sense for highly CPU dependent games and was more useful in the past).
If i don't i don't... which is most of the time.
I win this thread with 3 lines of text!
If i don't i don't... which is most of the time.
I win this thread with 3 lines of text!<!--QuoteEnd--></div><!--QuoteEEnd-->
no, I'll win the thread for you: If I notice screen tearing, I want to be able to use vsync properly so please include the ability to triple buffer k thx bye.
from what i could tell from the article:
single buffering < double buffering < double buffering with vsync < triple buffering
no mention of triple buffering with vsync, in fact the article was saying that triple buffering is the best choice *because* you don't need vsync
from what i could tell from the article:
single buffering < double buffering < double buffering with vsync < triple buffering
no mention of triple buffering with vsync, in fact the article was saying that triple buffering is the best choice *because* you don't need vsync<!--QuoteEnd--></div><!--QuoteEEnd-->
Its more like this:
double buffering with vsync< triple buffering < double buffering < triple buffering with vsync
Triple buffering alone just wastes memory and adds latency to the feedback equation.
Double buffering alone is better than triple buffering alone because it is 1 frame less so latency is lower.
Typical Vsync (with only a 2 frame buffer) is good for removing tearing but its really bad because it can kill performance.
Useful Vsync (with a 3 frame buffer) is the best implementation of vsync because it prevents the performance problems.
Triple, double, single, and more buffering don't just apply to the implementation of vsync, video cards have frame queues of variable size anyway. Whats important is that if you must use vsync, you don't want to do it the improper way.