Earlier today NVIDIA announced G-Sync, its variable refresh rate technology for displays. The basic premise is simple. Displays refresh themselves at a fixed interval, but GPUs render frames at a completely independent frame rate. The disconnect between the two is one source of stuttering. You can disable v-sync to try and work around it but the end result is at best tearing, but at worst stuttering and tearing.

NVIDIA's G-Sync is a combination of software and hardware technologies that allows a modern GeForce GPU to control a variable display refresh rate on a monitor equipped with a G-Sync module. In traditional setups a display will refresh the screen at a fixed interval, but in a G-Sync enabled setup the display won't refresh the screen until it's given a new frame from the GPU.

NVIDIA demonstrated the technology on 144Hz ASUS panels, which obviously caps the max GPU present rate at 144 fps although that's not a limit of G-Sync. There's a lower bound of 30Hz as well, since anything below that and you'll begin to run into issues with flickering. If the frame rate drops below 30 fps, the display will present duplicates of each frame.

There's a bunch of other work done on the G-Sync module side to deal with some funny effects of LCDs when driven asynchronously. NVIDIA wouldn't go into great detail other than to say that there are considerations that need to be taken into account.

The first native G-Sync enabled monitors won't show up until Q1 next year, however NVIDIA will be releasing the G-Sync board for modding before the end of this year. Initially supporting Asus’s VG248QE monitor, end-users will be able to mod their monitor to install the board, or alternatively professional modders will be selling pre-modified monitors. Otherwise in Q1 of next year ASUS will be selling the VG248QE with the G-Sync board built in for $399, while BenQ, Philips, and ViewSonic are also committing to rolling out their own G-Sync equipped monitors next year too. I'm hearing that NVIDIA wants to try and get the module down to below $100 eventually. The G-Sync module itself looks like this:

There's a controller and at least 3 x 256MB memory devices on the board, although I'm guessing there's more on the back of the board. NVIDIA isn't giving us a lot of detail here so we'll have to deal with just a shot of the board for now.

Meanwhile we do have limited information on the interface itself; G-Sync is designed to work over DisplayPort (since it’s packet based), with NVIDIA manipulating the timing of the v-blank signal to indicate a refresh. Importantly, this indicates that NVIDIA may not be significantly modifying the DisplayPort protocol, which at least cracks open the door to other implementations on the source/video card side.

Although we only have limited information on the technology at this time, the good news is we got a bunch of cool demos of G-Sync at the event today. I'm going to have to describe most of what I saw since it's difficult to present this otherwise. NVIDIA had two identical systems configured with GeForce GTX 760s, both featured the same ASUS 144Hz displays but only one of them had NVIDIA's G-Sync module installed. NVIDIA ran through a couple of demos to show the benefits of G-Sync, and they were awesome.

The first demo was a swinging pendulum. NVIDIA's demo harness allows you to set min/max frame times, and for the initial test case we saw both systems running at a fixed 60 fps. The performance on both systems was identical as was the visual experience. I noticed no stuttering, and since v-sync was on there was no visible tearing either. Then things got interesting.

NVIDIA then dropped the frame rate on both systems down to 50 fps, once again static. The traditional system started to exhibit stuttering as we saw the effects of having a mismatched GPU frame rate and monitor refresh rate. Since the case itself was pathological in nature (you don't always have a constant mismatch between the two), the stuttering was extremely pronounced. The same demo on the g-sync system? Flawless, smooth.

NVIDIA then dropped the frame rate even more, down to an average of around 45 fps but also introduced variability in frame times, making the demo even more realistic. Once again, the traditional setup with v-sync enabled was a stuttering mess while the G-Sync system didn't skip a beat.

Next up was disabling v-sync with hopes of reducing stuttering, resulting in both stuttering (still refresh rate/fps mismatch) and now tearing. The G-Sync system, once again, handled the test case perfectly. It delivered the same smoothness and visual experience as if the we were looking at a game rendering perfectly at a constant 60 fps. It's sort of ridiculous and completely changes the overall user experience. Drops in frame rate no longer have to be drops in smoothness. Game devs relying on the presence of G-Sync can throw higher quality effects at a scene since they don't need to be as afraid of drops in frame rate excursions below 60 fps.

Switching gears NVIDIA also ran a real world demonstration by spinning the camera around Lara Croft in Tomb Raider. The stutter/tearing effects weren't as pronounced as in NVIDIA's test case, but they were both definitely present on the traditional system and completely absent on the G-Sync machine. I can't stress enough just how smooth the G-Sync experience was, it's a game changer.

The combination of technologies like GeForce Experience, having a ton of GPU performance and G-Sync can really work together to deliver a new level of smoothness, image quality and experience in games. We've seen a resurgence of PC gaming over the past few years, but G-Sync has the potential to take the PC gaming experience to a completely new level.

Update: NVIDIA has posted a bit more information about G-Sync, including the specs of the modified Asus VG248QE monitor, and the system requirements.

NVIDIA G-Sync System Requirements
Video Card GeForce GTX 650 Ti Boost or Higher
Display G-Sync Equipped Display
Driver R331.58 or Higher
Operating System Windows 7/8/8.1

POST A COMMENT

217 Comments

View All Comments

  • inighthawki - Friday, October 18, 2013 - link

    I do not know about OpenGL, but on DirectX, you can use the following function to specify the maximum frame latency per device:
    http://msdn.microsoft.com/en-us/library/windows/de...

    It's targetable on Windows 7 and above, or Vista with the platform update, but if you're already using DX11, then querying support and setting the value can be added in just a few lines of code and no need to even check the OS version.

    Windows 8.1 also goes a bit further using a "low latency present" API, but you would need to be more careful with this one:
    http://msdn.microsoft.com/en-us/library/windows/ap...

    Remember, though, that queuing frames ahead is a method of providing tolerance over the course of a few frames. Imagine your game runs at 100fps. Over time it'll queue a few frames ahead, and if suddenly you take 25ms to render a frame, you already have 2 frames of tolerance queued up so that the presentation remains smooth. Doing a completely serialized render loop (1 frame at a time, never more) can lead to a lot of stuttering when this kind of scenario occurs.
    Reply
  • inighthawki - Friday, October 18, 2013 - link

    To clarify, this is not how to take advantage of G-Sync, just in response to your last comment about how to not buffer 3 frames at a time Reply
  • Maxwell_88 - Friday, October 18, 2013 - link

    Exactly what Nathan said. Nowhere in this presentation have they mentioned that G-Sync monitors will be capped at 60 Hz. It will be capped at whatever refresh rate the monitor supports. And as I see it, it is not a limitation of G-Sync but the monitor itself. Reply
  • inighthawki - Friday, October 18, 2013 - link

    I didn't mean to imply that 60Hz was a cap at all. It was just an example using the standard refresh rate of 99% of monitors ;).

    The input latency introduced by vsync is entirely dependent on the maximum refresh rate of the display device.
    Reply
  • Sancus - Friday, October 18, 2013 - link

    It's not messing with what comes from the computer, it's telling the monitor that it can only refresh when a frame is ready. The reason that vsync increases input lag is because it forces the *video card* to wait for the monitor. This means that if the video card isn't able to output 60fps, it drops even more frames trying to sync with the monitor. G-sync alleviates this because it allows the video card to tell the monitor to only refresh when it has a frame ready, which means the video card no longer needs to drop frames waiting for sync. There should not be vsync-style input lag introduced by g-sync. Reply
  • Exodite - Friday, October 18, 2013 - link

    Thanks for elaborating on the subject, that sounds reasonable. Reply
  • inighthawki - Friday, October 18, 2013 - link

    The video card does not drop frames waiting for vsync. It queues up frames ahead, and that is where the latency comes from. By default, Windows lets DirectX render 3 frames at a time, unless requested otherwise. This means that it's capable for a game to render three frames ahead, meaning you will only see the results of what you render three frames later. THAT is where most of the latency comes from. Reply
  • ninjaquick - Thursday, October 24, 2013 - link

    That sounds an awful lot like: http://www.hardwaresecrets.com/article/Introducing... Reply
  • Threnx - Friday, October 18, 2013 - link

    This bothers me as well, but I've found that turning v-sync off in game, and enabling adaptive v-sync with nvidia's drivers gets rid of mouse lag every time. Reply
  • SetiroN - Saturday, October 19, 2013 - link

    They (nv) specifically said that gsync eliminates the need of buffering, so the natural conclusion would be that we should expect latencies comparable to vsync turned off. Reply

Log in

Don't have an account? Sign up now