What is Triple Buffering? Should you be using it? What are the upsides and downsides to it? Today, I’ll break down all you need to know about triple buffering in hopes of giving you a clear look at what this technology is.
Table of Contents
What is Triple Buffering?
Triple Buffering is a specific form of V-Sync. In order to explain what Triple Buffering is, I’ll need to take a moment to explain what V-Sync actually is, first.
V-Sync, or Vertical Sync, is a software method of eliminating screen tearing. It does this by strictly controlling frame pacing as each frame is rendered by the game engine. By regulating frame order and frame pacing, V-Sync is able to provide a more smooth and visually-consistent image than running at an inconsistent or above-refresh-rate FPS would.
Besides general visual consistency due to frame pacing, screen tearing removal makes a major visual difference. Screen tearing is an artifact that emerges as a result of fast motion at inconsistent or above-refresh FPS. It usually appears as one or multiple colorless horizontal lines breaking up the image.
Triple-buffered V-Sync is when V-Sync is done in buffers of three frames (hence, triple buffer), and is easily one of the superior versions of software V-Sync.
Traditional V-Sync is called “double-buffered V-Sync”, and it works with buffers of 2 frames instead of 3.
Any version of V-Sync can provide boosts to the image, but why does the size of the buffer matter? Basically, input lag and hardware performance both need to be taken into account when considering using V-Sync. The size of V-Sync’s buffer (Double-Buffer or Triple-Buffer) will directly impact how many frames are dropped during performance dips and overall input latency.
Triple Buffering is generally considered to be better than Double Buffering for one key reason: performance.
With any version of V-Sync, frame drops below your framerate will always be more severe.
If a scene makes your GPU dip to 55 FPS from 60 FPS in a busy scene, V-Sync on top of that will make you dip to 45 or 30 FPS in the same scenario. This will maintain some visual smoothness and prevent screen tearing, but makes small dips feel worse than they would otherwise.
The reason V-Sync causes more severe dips is because of that frame buffer. If you’re targeting 60 FPS with double-buffered V-Sync, your GPU will need to be able to keep that two-frame-pace constantly. ANY FPS drop will immediately tank your performance to 30 FPS until a perfect 60 FPS can be met again while using Double-Buffered V-Sync.
Triple-Buffered V-Sync still introduces some small dips, but does not hard-cap your FPS to low numbers like double-buffered V-Sync would. It’s better for general performance, but also increases input lag compared to double buffering or no V-Sync at all.
What Makes Triple Buffering Different From V-Sync?
It’s a specific form of V-Sync, but not all V-Sync is Triple-Buffered. See the above section for a more detailed explanation!
What is OpenGL Triple Buffering?
Just Triple Buffering done through OpenGL. Triple Buffering can be done fine by other backends (Vulkan, DirectX, etc) just fine, but you may see OpenGL specified in game or GPU settings.
Why To Enable Triple Buffering
Eliminate Screen Tearing
Screen tearing can significantly reduce the visual consistency and believability of your gaming experience. Eliminating screen tearing will naturally result in a picture much smoother and believable to the eye, provided your FPS is high enough.
Stabilize FPS and Power Consumption
Since Triple-Buffering is a form of V-Sync and also serves to cap your framerate, your power consumption should stabilize with your performance. If you have a fairly powerful PC that would otherwise run games much higher than your refresh rate, triple buffered V-Sync is a great way to keep your power consumption low and stable.
(Windows Fullscreen Optimizations Only) Improve Alt-Tab Performance
By default, fullscreen applications in more recent versions of Windows will have Fullscreen Optimizations enabled. These Fullscreen Optimizations are actually enabling triple buffering by rendering fullscreen applications in Windows’ Desktop Window Manager, which also improves Alt-Tab performance.
If you want to learn how to disable this automatic feature, scroll down to the “Is Triple Buffering Enabled By Default?” section!
Why To Disable Triple Buffering
Increase Overall Performance
Since frame pacing is not being strictly regulated, disabling triple buffering allows you to reach your highest possible FPS in any given situation unless you have a separate FPS cap enabled. This will not have the same overall consistent look and feel, but will allow you to make the most of your hardware in taxing titles.
Reduce Input Lag
Without an additional buffer of already-rendered frames added by V-Sync, you’ll pretty much be rendering your game as fast as your CPU and GPU can manage to. Since every frame will be sent to your monitor as soon as it is rendered instead of stored in a buffer, your input lag will be minimized.
If you still want to stabilize your input lag and frame pacing without enabling triple buffering, consider enabling an FPS cap instead. In-game FPS caps (with RivaTuner or external FPS caps as a backup option) are the best solution for providing capped FPS with low input lag.
Is Triple Buffering Enabled By Default?
On Windows 8 and newer versions of Windows, yes.
Triple Buffering is one of the “Fullscreen Optimizations” that were added to newer versions of Windows. Basically, as long as Windows is a part of your render process (windowed applications, borderless fullscreen, or with default Fullscreen Optimizations enabled) Triple Buffering will be forced onto whatever is being rendered. This is a visual boost, but will still bring about the aforementioned downsides to triple buffering.
And that’s it, at least for now!
I hope that this article helped break down what triple buffering is and whether or not you should enable it in your games of choice. For the most part, I would recommend capping FPS before enabling triple buffering, but I also much prefer triple-buffered V-Sync over double-buffered V-Sync if an FPS cap is not an option.
Which version of V-Sync do you prefer? Do you prefer to cap FPS or run uncapped FPS instead of using V-Sync at all? Leave a comment below and let me know!