VSync solves tearing problems, but at a cost. If your frame rate falls below your monitor’s refresh rate, it gets cut in half. Triple buffering can fix that. Before explaining triple buffering, we should mention double buffering, which is used when triple buffering isn’t on.
Your graphics card has a frame buffer and a back buffer. It draws a picture in the back buffer, and when it’s ready, it moves the back buffer image into the frame buffer. Your monitor gets the screen from the frame every time it refreshes, as many times per second as its refresh rate.
Tearing occurs when the monitor takes the image from the frame buffer while it is being copied over from the buffer. The monitor ends up displaying a picture made up from horizontal section of two different, consecutive frames.
VSync fixes that by only letting the copy from the back buffer to the frame buffer begin immediately after a refresh. That, however, means the graphics card has to wait to start on the frame after the one in the back buffer until the monitor refreshes. That’s fine if your frame rate is higher than your refresh rate, since your graphics card has enough time to get a new frame ready.
If your FPS drops below your refresh rate however, the frame in the back buffer won’t be ready in time to move to move to the frame buffer on the next refresh, and your monitor will just show the same frame twice. Assuming your frame rate is below, but greater than half, your refresh rate, the next (different) frame will be ready to move from the back buffer at that point, and get picked up on the next refresh. That’s why VSync can cut frame rates in half.
By adding a third, behind-the-back-buffer, buffer, the graphics card can get to work on the frame after the next one as soon as soon as the frame in the back buffer is done. It doesn’t have to wait for the next refresh to clear the back buffer.
Now, if your FPS drops below your refresh rate, the graphics card can still supply frames as fast as possible. Depending on how far below, you will still have a certain number of pairs of frames that remain identical, but your FPS will be whatever it is, not halved.
As a common example: you’re playing with VSync on, a 60Hz screen, and a frame rate of 60 or more, which VSync caps at the screen’s 60Hz refresh rate. Some sweet looking explosions cut your frame rate to 50 FPS. Without triple buffering, the graphics card can only get one screen out every other refresh. Every other refresh just repeats the previous frame, for an effective 30 FPS.
With the extra buffer, you only have as many identical frame pairs as the graphics card can’t supply. Continuing our example, you would get nine good refreshes, and only every tenth would be identical to its predecessor. That’s 50 FPS, almost as much as your card could do without VSync and triple buffering.
Why almost? Well, triple buffering fixes the problem with VSync at the cost of its own problem. Otherwise, we could just turn them both on and forget about it. The third buffer, when you think about it, has to go somewhere in memory. Depending on how much memory is on your graphics card, triple buffering might trim its overall performance slightly.
So VSync On or Off?
It depends on your monitor’s refresh rate and how fast your computer can run the games you play. Depending on the game, you may want to turn it on or off. Conveniently, its easy to setup your graphics card to do this automatically. We explain how in the next article.
This post is part of the series: VSync: On or Off? – Yes; Set It on a Per Game Basis
VSync can be good or bad, depending on your monitor’s refresh rate, the game you’re playing, and how fast your computer can run it. Luckily, it’s easy to set it up to run automatically when playing games where it helps.