Aware of normal YouTube buffering, many do not know how exactly buffering and triple buffering work. This creates a skeptical perspective towards enabling or disabling the feature. In this article, we’ll try to explain triple buffering and address the question of whether you should turn it on or off.
What is Buffering? How Does It Help in Displaying Graphics?
First of all, let’s know how graphics on the computer is displayed. We’ll take a simple analogy of a video game being played on a monitor with a 30Hz refresh rate. The monitor switches 30 still photos or frames in one second to make it look like it’s in motion i.e it takes 33.33 milliseconds to display a single frame. The time gradually decreases as we move to the monitor with a higher refresh rate. But, those pictures aren’t like usual taken and stored pictures. The pictures/frames in a video game are generated in real time by the graphics processor. The GPU possesses a certain frame render speed. The monitor also has a definite value regarding how many frames it can show per second, i.e., refresh rate. Generally, refresh rates of Monitors are lower than the GPUs’ rendering speeds for low-end games. Suppose, for a particular game your GPU has the ability to generate 150 frames in a second. But, a monitor with a 30Hz refresh rate can’t display more than 30 frames per second. The refresh rate threshold of a monitor won’t let the GPUs run at their optimum capacity and cause screen tearing, FPS jumps, etc. Buffers exist to take advantage of potentially higher render speeds of GPUs. They refer to the temporary spaces in dynamic memory to store data just before it gets fetched. GPUs can store the exceeding amount of generated frames within the buffer memory. So that the pre-rendered frames can be shown on the screen after the current frames are over. This helps the GPU pre-calculate the required frame and focus on the upcoming frames, which smoothens the real-time experience. It also helps in coping with GPUs’ render speed fluctuations.
What is Multiple Buffering?
Instead of a single buffer, we can use multiple buffers to optimize the rendering process. Double and Triple Buffering are the widely used methods under Multiple Buffering. Double buffering offers two buffer spaces for the GPU to store the rendered images. Actually, one buffer(front buffer) itself shows the images on screen while GPU bakes the next frame on another empty buffer(back buffer). After the front buffer is displayed, it flips with the back buffer, which has a pre-rendered frame. Now, the previous front buffer that switched to be the back buffer is emptied, and the next frame is posed into it. Then, the flipping cycle repeats. It’s faster than single buffering because it flips the display pointer towards a frame-ready buffer, meanwhile letting the GPU render another frame on the recently used buffer.
What is Triple Buffering?
Triple buffering extends the efficiency of the rendering process even further. It adds another buffer to the Double Buffering feature. Let’s say buffers A, B and C are those three buffers. The display pointer is flipped between A, B, and C pre-rendered buffers. The exchange happens after the frame within A buffer is flashed. Now, the display points toward buffer B. While it’s flashing B buffer’s frame, A moves to the back where GPU starts stacking a new frame into it. As the stacking happens, the display still has got the pre-rendered C buffer to point after it’s done flashing B. Then, B moves to the back, and C is flashed, keeping A frame-ready. And the cycle continues. This cycle of page flipping facilitates the constant utilization of GPU resources. Otherwise, GPUs would have to wait till the display stops flashing a frame.
Drawbacks of Triple Buffering
Triple buffering isn’t a magical feature that would enhance every gameplay. It may pre-render frames, but the difference between a monitor’s refresh rate and the rate of FPS generation by GPU is likely to cause various problems. To display a frame of front buffer, a monitor scans it line by line and pixel by pixel. At the same time, the GPU may complete rendering within the back buffer. Regardless of whether the monitor completes displaying the front frame or not, the display pointer will switch towards the baked back buffer. Meanwhile, the monitor starts scanning and displaying from the same line and pixel where the previous buffer left, causing a screen tear. Screen tearing is a single display frame, which itself is a hard borderline combination of the previous and upcoming frames. To avoid this from occurring in gameplay, tech giants have come up with solutions like V-Sync, Enhanced Sync, G-Sync, etc. V-Sync(Vertical Sync) works by halting the FPS rate of GPU to align with the Monitor’s frame rate. Or, if the GPU is slow, it may lower the graphics quality to match the Monitor’s frame rate. Whereas AMD’s Enhanced Sync displays frame on the monitor by choosing to still on a baked tear-free frame from GPU. However, this halting process creates input latency. Or, in simple terms, a lag between the user’s input and the occurrence of corresponding visual graphics. Enhanced Sync causes stuttering graphics if your GPU’s FPS rate is low. Free-Sync is sort of an upgraded version of V-Sync, and it works well with triple buffering. And NVIDIA’s G-Sync is a hardware module that helps monitor to adjust refresh rates according to the FPS provided by GPU. These techs help to lower input latency.
Should I Turn On Triple Buffering or Not?
V-Sync, Free-Sync, Enhanced Sync, etc., work to eliminate or at least reduce the cons of triple buffering, but whether you should open it depends on the game. For triple-A titles, you can turn it on. You should also use V-sync or Free-Sync for better performance. But, consider enabling triple buffering only if you have a powerful GPU because it extensively consumes the computing power. The GPU’s temperature get increased, so a proper cooling system is a must as well. Thus, you can give triple buffering a try if you need overwhelming graphics and have a high-end gaming setup with a powerful GPU and Monitor that throws a good refresh rate. However, for FPS, Battle royale games, or competitive esports, it’s not a good practice to turn triple buffering on, as user input latency may highly impact the fast reflex competitive environment.