V-Sync is short for "Vertical Synchronization"; its only purpose is to avoid screen tearing in games.
What is screen tearing?
Image by Vanessaezekowitz, via Wikimedia Commons. Used under the CC-By-SA 3.0 license.
Screen tearing happens, because your GPU sends a frame to your screen when the latter hasn't yet finished displaying its previous frame. You are essentially seeing part of one image and part of another at the same time. Since both images often look very similar, it looks like the picture has been torn apart, hence the name "screen tearing".
V-Sync ensures the GPU doesn't send a frame while the screen is busy. There are various ways to achieve this. The most well known use double buffering or triple buffering.
When using double buffering, the GPU uses two frame buffers; the "front buffer" in which it stores the frame being sent to the screen, and the "back buffer" in which it stores the next image to be displayed.
Unlike double buffering, triple buffering uses two back buffers. Once the GPU is done with the next frame, it can start working on the second back buffer. If the screen still isn't ready by the time the GPU has filled both back buffers, the GPU can now safely overwrite the first back buffer. The advantage of this, is that it reduces the lag mentioned in point 2 (see below). The disadvantage, is the higher memory requirement of having one additional buffer, as well as higher power consumption and heat dissipation from constantly being under full load.
Recently, a new technology has been introduced intending to replace V-Sync: G-Sync (Nvidia) and FreeSync (AMD). Just like V-Sync, their purpose is to eliminate screen tearing, but now the screen will wait for the GPU, if the latter can't provide frames fast enough, essentially eliminating point 3 below.
From a gamer point of view, V-Sync does the following:
It eliminates screen tearing. At least it should; I've seen games with buggy V-Sync where turning this option on did not remove tearing entirely.
It introduces stuttering, or lag. Since your GPU now has to wait for the screen to be ready, the frame you'll see on screen will almost never be the most up to date. Most people don't notice it and/or find the screen tearing to be worse distraction than the former.
It will affect your framerate if your GPU can't match your screen's refresh rate. For instance it'll try to feed a 60 Hz screen with one frame every 16.6 ms (1/60 second). If it can't produce a frame fast enough, it'll have to wait for the screen's next refresh cycle before it can display it. If this happens frequently, i.e. your GPU can't provide frames every 16.6 ms, then your effective frame rate will drop sharply from 60 to 30 (1/2) to 20 (1/3) to 15 (1/4) etc.
As a rule of thumb:
You want to turn V-Sync ON if:
- You experience screen tearing and want to eliminate it.
- You want/need to limit your framerate for whatever reason and the game does not have a frame limiter. Possible reasons include:
- You want to reduce your GPU's power consumption.
- You need to reduce your GPU's heat dissipation.
- You want to avoid physics bugs that can happen at high framerates.
You want to turn V-Sync OFF if:
- You want the highest framerate possible. E.g. you're benchmarking or stress-testing your GPU.
- You want the lowest possible input lag. E.g. you play competitively.
- You don't care about the screen tearing, or it is not noticeable enough for you to care. Owning a high-refresh screen (anything above 60 Hz) helps make screen tearing less noticeable.
- The game's implementation of V-Sync doesn't work and you still experience screen tearing nonetheless.
Notice that some modern games have frame limiters, so even if you turn V-Sync off, you still can't achieve higher framerates and may still experience input lag. Also note that while V-Sync may act as a frame limiter, frame limiters do not eliminate screen tearing on their own.