Pages

Showing posts with label v-sync. Show all posts
Showing posts with label v-sync. Show all posts

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.)
 
Related Posts Plugin for WordPress, Blogger...