NVIDIA G-SYNC Display Technology Explored
Back in September at a press event held in Montreal, NVIDIA CEO Jen-Hsun Huang announced what he called “one of the most important works NVIDIA has done for computer graphics.” The technology was called G-SYNC. G-SYNC is an end-to-end graphics and display architecture that starts with a Kepler-based GPU and ends with a G-SYNC module within a monitor. The G-SYNC module is piece of hardware that replaces the scaler inside a display/gaming monitor that essentially does away with the fixed vertical refresh rates of current displays.
To put it simply, what G-SYNC does is keep a display and the output from a Kepler-based GPU in sync, regardless of frame rates or whether or not V-Sync is enabled. Instead of the monitor controlling the timing, and refreshing at say every 60Hz, with G-SYNC the timing control is transferred to the GPU. The GPU scans a frame out and the monitor then draws it. The monitor doesn't update until a frame is done drawing. And as soon as a frame is done drawing, the monitor will update as soon as it can with the next frame, in lockstep with the GPU.
During the original announcement, we recorded some video of G-SYNC in action, as you can see above. We must point out that this live demo of the technology doesn’t really do it justice because the camera can’t pick up all of the issues being displayed on-screen, and the camera's recording frame rate is out of sync with the monitors too. To see it live is to truly appreciate G-SYNC, but the tech is explained in plain English in the video, which some of you may find helpful. If you were there live, what you would have seen was that the animation on the G-SYNC enabled screen was as smooth as silk and devoid of any synchronization-related anomalies or stutters, whereas the traditional screen showed significant stutter and tearing. The difference live was like night and day.
Just recently, we were given the opportunity to experience G-SYNC on our own and experiment with the technology in-house. In this piece, we're going to talk about some of our experiences with G-SYNC, but before we do, we want to dive a little deeper into the technology and explain what really makes G-SYNC tick. To do so, we must first talk about what G-SYNC is designed to fix.
As it stands today, gamers can typically choose to play their games with V-Sync (vertical sync) enabled or disabled. V-Sync is an ancient technology that essentially allowed the output from a video source to synchronize properly with a display at a given frequency--the most common of which is 60Hz. That may sound well and good, but if the graphics output is coming at a rate above or below the vertical refresh rate of the screen, a number of issues are introduced. Disabling V-Sync may seem like the simple answer, but that causes a whole new set of problems.
The diagram above illustrates what happens between a GPU and a display when V-Sync is enabled. In the image, the panel is refreshing every 16ms (roughly 60Hz), but the GPU is rendering frames at different intervals. Frame 1 renders faster than 16ms, so a bit of lag is introduced before the screen updates. Frame 2 takes longer than 16ms, so that frame is shown on-screen twice, which causes stutter during the animation and input lag. And so on. V-Sync would be an ideal solution if the frames were rendered and output at 60Hz as well, but that's not how today's games work. It's common for today's games to exhibit significant variations in frame time and it's rare that the GPU and display are actually in sync.
Disabling V-Sync does away with the input lag, but introduces tearing on-screen. The diagram above illustrates what happens between the GPU and display when V-Sync is disabled. The GPU essentially pumps out frames as fast as it can, regardless of whether or not the display can keep up. What results is that unfinished parts of adjacent frames are displayed on-screen, and since the positioning of the scene's components are usually in different positions, tear lines are introduced.
As you can see, this scene exhibits tears at the very top and just above the gun, because three adjacent frames were output to the display faster than the display could draw them. This is what happens in virtually every game when playing with V-Sync disabled. If frame rates are high enough, the tearing may be tough to see, but rest assured, it's there.
The two graphs above show how frame rates are affected when enabling / disabling V-Sync in a couple of games, with a GeForce GTX 760, namely Tomb Raider and Crysis 3. With V-Sync enabled (red line), and the games configured for high image quality settings to target the 40-60 FPS range, it is not uncommon to see frame rates locked at 30 FPS for a time (half the monitor's refresh rate), which means many frames are duplicated, which introduces lag. Or, as is the case with Tomb Raider, you see wild, constant fluctuations between 30 and 60 FPS. With V-Sync disabled (green line), each frame it output at a completely different rate, which is never actually in sync with the display.