Pages

Thursday, October 24, 2013

[Rant] NVidia G-Sync is great but...

The problem

So many PC gamers are whining about stuttering. The main reason for stuttering is the mismatch between the FPS and the refresh rate of the display. It doesn't matter whether the GPU renders faster than the display or slower than the display, you will get stuttering. But when the GPU is rendering faster than the display, you get image tearing, which might drown out the stutter.

Remember that the refresh rate of the display is fixed while the FPS of GPU rendered images varies depending on the complexity of the scene.

Up to now, the answer to this issue was V-Sync. Just enabling V-Sync alone doesn't do it. The GPU needs to be able to render the frames faster than the display refreshes what's shown on its output. Else, the display will show exact frame in two or more refresh cycles until the next image is fully rendered.

But not many people can afford hardware that can render frames faster that 16ms. Or, you will have to drop the complexity of the scene (i.e. drop the quality settings from high to medium or even low). That doesn't translate to a good experience. You will have to compromise the image quality to fluidity of animation.

G-Sync to the rescue

This is where G-Sync comes into play. G-Sync is mostly a hardware solution, but you need the driver support as well. It is implemented in both the GPU and the display. With this technology, the GPU tells the display when to start refreshing the content. Say for example, the first frame took 15ms to render and the next frame took 20ms to render. With a 60Hz display (16.6ms per refresh cycle), the 2nd frame won't be rendered fast enough to be shown on the 2nd refresh cycle. It will be shown on the 3rd refresh cycle. But with G-Sync, the GPU tells when the monitor should refresh. As soon as the rendered frame is available, the screen refreshes the content. So there is no mismatch.

It sounds like the way to go.

You won’t get screen tearing because tearing is directly caused when FPS and refresh rate not the same.

You won’t get input lag, because the frames are rendered as soon as possible. They don’t have to wait until the previous frame is outputted first, to start rendering the next frame.

You won’t get stutter caused by the mismatch of the display refresh rate and rendered FPS.

But does it still feel fluid enough at when the FPS is varying?

I am not so sure. I mean, the GPU renders the frame with the information it has at the time of start of rendering. But the output is given after the rendering is done. So, there is a delay. (There is the delay on the display too, but let’s say it is constant.)

Now if the first frame takes 10ms, 2nd frame takes 20ms and the 3rd frame takes 10ms, the first frame is displayed after 10ms, 2nd frame after 30ms and the 3rd frame after 40ms. But at 30ms point, shouldn’t you be expecting a status of a frame at 20ms, instead of 10ms? Yes, it would feel like a dropped frame, but it probably won’t feel like stuttering. Or will it? Without doing research I cannot say for sure. But probably the stuttering caused by varying rendering speeds could be very less pronounced, especially because you won’t get rapid changes in frame rendering times.

Since a lot of people who had first hand experience were super impressed, I guess this is a non-issue.

Wait! There are a couple of issues though.

G-Sync is a proprietary technology! If you have an AMD graphics card, it won’t be supported even though the display supports it. NVidia might license this technology later on, but they will definitely keep it to themselves because it is a good marketing point.

Second, you will have to buy a new display. Well, some displays can be modded. This technology comes as a hardware module from NVidia. It replaced a part of the display that gets Display Port signal and sends the output to the display. (There is a fancy term for it, and I’m sure it does more than that.) So if you can get the module, you might be able to mod you current display. But the right way to get G-Sync is by getting a new display with G-Sync technology inbuilt. For that, you will have to wait till 2014 Q1. Asus, BenQ, Philips and View Sonic are going to bring new displays next year that supports G-Sync. Others will probably follow later. Sadly, a G-Sync supported display would cost $100 more. That’s what you have to pay for a great end-user experience. Sadness…