The Gamer's Graphics & Display Settings Guide

[Page 9] Graphics Settings - Vertical Synchronization



Vertical Synchronization


Vertical Synchronization, also called Vertical Sync, or simply VSync for short, was primarily required because of the physical limitations of CRT monitors as discussed in the Refresh Rate section. A CRT monitor has to constantly light up the phosphors on the screen many times per second to maintain an image, and can only do this a certain number of times per second based on how fast the electron gun in the monitor can move. Each time it has to redraw the entire screen again, it moves the electron gun inside the monitor from the bottom of the screen to point to the top left of the screen, ready to 'repaint' all the lines on the screen from top left to bottom right, and back again for the next refresh. The period during which the electron gun moves to the top of the screen for a new refresh is called the Vertical Blanking Interval (VBI).


Enabling VSync tells your graphics card to synchronize its actions with your monitor. That means the graphics card is only allowed to swap its frame buffer and send a new frame to the monitor when the monitor says it is ready to repaint a new screen - i.e. during the VBI. Your graphics card and monitor do not have to be in sync; they can still operate properly when VSync is disabled, however when VSync is disabled, you can experience a phenomenon called Tearing in periods when your graphics card and monitor go out of sync, precisely because the graphics card and monitor are acting without regard for each other's limitations.


While the concept of VSync originated on CRT screens, it applies to LCD screens as well for various reasons we examine throughout this guide.



Tearing


It is an unfortunate fact that if you disable VSync, your graphics card and monitor will inevitably go out of synch. Whenever your FPS exceeds the refresh rate (e.g. 120 FPS on a 60Hz screen), or in general at any point during which your graphics card is working faster than your monitor, the graphics card produces more frames in the frame buffer than the monitor can actually display at any one time. The end result is that when the monitor goes to get a new frame from the primary buffer of the graphics card during VBI, the resulting output may be made up of two or more different frames overlapping each other. The onscreen image may appear to be slightly out of alignment or 'torn' in parts whenever there is any movement - and thus it is referred to as Tearing. An example of this is provided in the simulated screenshot below. Look closely at the urinals and the sink - portions of them are out of alignment due to tearing:



Click to enlarge

The precise visual impact of tearing differs depending on just how much your graphics card and monitor go out of sync, but usually the higher your FPS and/or the faster your movements are in a game - such as rapidly turning around - the more noticeable it becomes. This is because the contents of the overlapping portions of new and old frames are more noticeably different from each other in such cases.


Tearing does absolutely no damage to your graphics card or monitor. It just highlights the physical limitation of your monitor in keeping up with the graphics card when the two aren't synchronized. In the example of 120FPS on a 60Hz monitor, at most only 60 whole frames can actually be refreshed during any one second by your monitor, so the other 60 frames your graphics card is producing are pretty much being wasted and are coming out as lots of partially overlapping frames and hence only contribute to tearing. In such a scenario, even if you don't want to enable VSync, it makes sense for you to raise your in-game graphics settings (if possible) to reduce your FPS such that it stays closer to your refresh rate. This will help you get more whole frames and thus reduce tearing. It may seem cool to have a very high framerate, but as you can see it is wasteful and only causes graphical glitches when VSync is disabled.


Tearing is found equally on CRT or LCD monitors, since both work on the same basis for compatibility purposes - see the Response Time section of this guide for more details.



FPS & VSync


When VSync is disabled, your FPS and refresh rate have no relationship to each other as such. This lets your graphics card work as fast as it wants, sending frames to the monitor as fast as it can draw them. Whether the monitor can actually show all these frames properly or not is another matter, which we've already discussed above. Clearly if disabling VSync can cause graphical glitches, however minor they may be, wouldn't it make sense to always enable VSync so that your graphics card doesn't wind up wasting its efforts only to generate more tearing? Well once again, things are not as simple as that.


When VSync is enabled, what happens is that your graphics card is told to wait for your monitor to signal when it's ready for a new frame before supplying a single whole frame, each and every time. It can't race ahead, it can't just pump out lots of partially completed frames over old ones whenever it's ready - it has to provide a single whole frame to the monitor whenever the monitor says it's ready to refresh itself during VBI. The first noticeable impact is that your FPS becomes capped at a maximum equal to your current refresh rate. So if your refresh rate is 60Hz for example, your framerate can now only reach a maximum of 60FPS. By itself this isn't really a problem, since every monitor can do at least a 60Hz refresh rate at any resolution, and as we've discussed under the Frames Per Second section, if your system can produce 60FPS consistently in a game this should be more than enough FPS to provide smooth natural motion for virtually any type of game.


There is however a more fundamental problem with enabling VSync, and that is it can significantly reduce your overall framerate, often dropping your FPS to exactly 50% of the refresh rate. This is a difficult concept to explain, but it just has to do with timing. When VSync is enabled, your graphics card becomes a slave to your monitor. If at any time your FPS falls just below your refresh rate, each frame starts taking your graphics card longer to draw than the time it takes for your monitor to refresh itself. So every 2nd refresh, your graphics card just misses completing a new whole frame in time. This means that both its primary and secondary frame buffers are filled, it has nowhere to put any new information, so it has to sit idle and wait for the next refresh to come around before it can unload its recently completed frame, and start work on a new one in the newly cleared secondary buffer. This results in exactly half the framerate of the refresh rate whenever your FPS falls below the refresh rate.


As long as your graphics card can always render a frame faster than your monitor can refresh itself, enabling VSync will not reduce your average framerate. All that will happen is that your FPS will be capped to a maximum equivalent to the refresh rate. But since most recent monitors refresh at 60Hz, and in many recent games it is difficult to achieve 60FPS consistently at your desired resolution and settings, enabling VSync usually ends up reducing your overall FPS. Fortunately, because this problem is pretty much caused by the frame buffers becoming filled up, there is a solution: enable a third frame buffer to allow more headroom. However this is not a straightforward solution, and to read more about it see the Triple Buffering section of this guide.



So Which is Best, VSync On or Off?


VSync poses a real dilemma for many people: with VSync off, tearing can occur whenever your graphics card and monitor go out of sync, and this can be very annoying for some people, especially in fast motion games. However with VSync on, your FPS can often fall by up to 50%. This can be resolved on many systems using Triple Buffering, but that may bring potential problems with it. So which choice is right for you?


I can't give you a one-size-fits-all answer, but I can provide some suggestions. To start with, I strongly recommend setting VSync to 'Application Preference' (or similar) in your graphics card's control panel. This is because ideally you should set your VSync preference on a game-by-game basis, preferably using the in-game settings, as the choice will differ depending on the type of game you are playing. Newer games with complex graphics for example will be different to older games which your system can run much more easily. Remember, in games where your FPS is consistently above your refresh rate, enabling VSync is perfectly fine and results in no drop in FPS.


In general, I recommend starting off with VSync disabled in any game as this is the most trouble-free method of gaining the fastest possible performance. This is the simplest solution, and on monitors which have a standard 60Hz refresh rate, or for games in which your framerate is not consistently above 60FPS, this appears to be the best solution. You may notice some tearing, but this will generally be minimal if your FPS remains well below your refresh rate. Remember though that whenever VSync is disabled the graphics card and monitor are not strictly in sync, and tearing (however minor) may occur at any time.


In any game if you find the presence of any tearing whatsoever to be annoying, you should enable VSync. To ensure maximum performance, you should then enable Triple Buffering to prevent FPS drops related to enabling VSync. This introduces the possibility of hitching on graphics cards with lower amounts of Video RAM, and possible control lag on some systems. See the Triple Buffering section for details.


Nvidia graphics card owners running the latest drivers can find an Adaptive Vertical Synchronization option under the 'Vertical Sync' setting in the Nvidia Control Panel. When Adaptive is chosen, VSync will only be enabled whenever your FPS exceeds your Refresh Rate. If your FPS falls below your refresh rate at any time, VSync is instantly disabled. This provides an excellent compromise between performance and removing most tearing. However it can still introduce some mouse lag.


Aside from tearing, VSync has no impact on image quality, and performance issues aside, enabling VSync of any kind can increase the potential for mouse and input lag. There is no clear choice for everyone when it comes to VSync, and this is why the option to enable or disable VSync exists both in the graphics card control panel and in games. As long as you understand what it does however, you can make an educated choice on a case by case basis combined with a little experimentation.