Gysnc with vsync on or off - input lag

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660
I watched this video which has left me confised.. slightly...

[video="https://www.youtube.com/watch?v=MzHxhjcE0eQ"][/video]

Should i run my games with vsync on or off to reduce input lag?

According to this research if i run a 4k game like Witcher 3 ultra ~45 FPS i would benefit from reduced input lag with vsync off.

but isnt the point of having gsync that you can turn vysnc off and lt gsync do the work?

Games like cs:go become unplayable with gsync on and vsync off due to the input lag. i've enabled vsync via the control pannel and its improves it alot.

edit: Turning G-Sync on and V-Sync on and setting fps_max to 60 results in buttery smooth gameplay with little to no input lag.

all help appreicated!
 
Solution
If you turn on Gsync, the only thing the Vsync option in NVCP does is determine whether Vsync gets switched on or off when the game renders at a framerate above your monitor's maximum refresh rate. Below that point Gsync is on and Vsync doesn't even enter the equation.

This means that if you have Gsync enabled and you are not hitting max refresh rate, there should be zero difference with the Vsync setting on or off. Now if you are hitting the max refresh rate, turning the Vsync option on would increase your input lag, not decrease it, since that is one of the drawbacks of Vsync.

To minimize input lag, you should have either Gsync-on/Vsync-off or Gsync-off/Vsync-off.

aznricepuff

Honorable
Oct 17, 2013
677
0
11,360
If you turn on Gsync, the only thing the Vsync option in NVCP does is determine whether Vsync gets switched on or off when the game renders at a framerate above your monitor's maximum refresh rate. Below that point Gsync is on and Vsync doesn't even enter the equation.

This means that if you have Gsync enabled and you are not hitting max refresh rate, there should be zero difference with the Vsync setting on or off. Now if you are hitting the max refresh rate, turning the Vsync option on would increase your input lag, not decrease it, since that is one of the drawbacks of Vsync.

To minimize input lag, you should have either Gsync-on/Vsync-off or Gsync-off/Vsync-off.
 
Solution

boju

Titan
Ambassador
I have the Acer Predator 144hz and haven't noticed any screen tearing or input lag with vsync off. I've played Fc4, GTA5, TFC, J modded Doom 1 and 2 so far and no input lag at all and i hate input lag. Vsync induces lag and not Gsync, im a bit surprised to read that.
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660


screenshot_16.png
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660


The images below taken from the video seem to show if your game runs at < 60 fps that vsync should be OFF correct?

IF i run a game which renders > 60 fps i should turn vysnc ON?

screenshot_17.png

screenshot_18.png

 

aznricepuff

Honorable
Oct 17, 2013
677
0
11,360


I'm assuming you have a 60 Hz monitor. In that case:

To minimize input lag: V-sync off
To minimize tearing: V-sync on
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660


Yes its 4k 60hz gsync
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660
So in summary if your gaming on a 4k gsync monitor which has a limit of 60hz and the game renders at less than 60 fps you should have vsync off. If your game renders above 60 fps constantly, (like cs:go) i should have vsync on or off?

god this is confusing... ha!
 

aznricepuff

Honorable
Oct 17, 2013
677
0
11,360


In the scenario you just described with Gsync on:

@ <60 fps: the Vsync setting does nothing.
@ >60 fps: If you want minimal input lag, set Vsync (in the NVCP) to off.
 

boju

Titan
Ambassador
Yea displaying more frames than the rated Hz will do that. I thought Gsync was suppose to address that, maybe thats the drawback with Gsync and 60Hz, ideally want more.

What you can do is though if you exceed the Hz level is cap the game to 59fps, its worth a shot. Its worked for me in the past on a 60hz monitor with Vsync on, i capped the fps to 59, i guess the timing of 1Hz didn't bring on input lag.
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660


If i set vsync off in the NVCP this is what happens:



As you can see my monitor reports that its running at 60hz sync but the game and the shadow-play driver reports 120fps. Gsync is supposed to limit my fps to 60 - which is really confusing me.

i should be able to play cs:go with vsync off and gsync should work and match the monitor refresh rate. should i do fps_max in the console?
 

aznricepuff

Honorable
Oct 17, 2013
677
0
11,360
Actually that is the intended behavior.

Gsync only works when render framerate is less than (or equal to) your monitor's max refresh rate, in this case 60 Hz. This is because the entire point of Gsync is to sync framerate with refresh rate, and it can't do that if your monitor is incapable of refreshing at the rendered framerate.

So above 60 Hz, Gsync actually turns itself off and that's when the Vsync setting comes in. With Vsync on, your framerate is capped to 60 Hz because that's the only way the monitor can sync to framerate. This introduces input lag, though. With Vsync off, your framerate is no longer capped and is free to go as high as your GPU can handle, with no increase in input lag.
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660
i see, so sync is pretty much useless for 60hz and more beneficial at 144hz unless you want to turn vsync on and put up with input lag (which i can't for cs:go as its unplayable)

I thought the gsync matched the monitor refresh rate (60hz) to the GPU render rate , thus removing tearing and lag. i'm pretty narked now lol
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660
http://www.geforce.com/whats-new/articles/g-sync-gets-even-better

For enthusiasts, we’ve included a new advanced control option that enables G-SYNC to be disabled when the frame rate of a game exceeds the maximum refresh rate of the G-SYNC monitor. For instance, if your frame rate can reach 250 on a 144Hz monitor, the new option will disable G-SYNC once you exceed 144 frames per second. Doing so will disable G-SYNCs goodness and reintroduce tearing, which G-SYNC eliminates, but it will improve input latency ever so slightly in games that require lighting fast reactions.

To use this new mode, set “Vertical sync” to “Off” on a global or per-game basis in the “Manage 3D settings” section of the NVIDIA Control Panel. When your frame rate exceeds your monitor’s rated G-SYNC refresh rate, for example 144Hz, G-SYNC will be disabled.

So basically Gsync was supposed to be ran with vsync ON all the time, but they ALLOW gsync to be disabled by enabling vsync OFF which will improve input lag.

The input lag is unbearable for cs:go with vsync on. I've not noticed it in other games. i wish they could improve it :)
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660
i limited my cs:go fps to 59 (using fps_max 59 from the console) and it seems buttery smooth and no input lag at all with vsync on.

i changed my fps_max to 300 and the input lag was horrific.

Roll on 4k 144gz 1ms gsync :)

Thank you for all your help.
 
The reason I asked about Adaptive VSync is because it eliminates input lag by disabling VSync at framerates below your monitor's refresh rate. Normal VSync is now obsolete, and should never be used. Adaptive VSync would seem to produce the results you're looking for, no input lag, but capped and synced framerates.
 


There is one piece of info that can change your conclusion. V-sync only adds latency if triple buffering or SLICrossfire is used. If the game you are playing does not use triple buffering and you are using a single GPU, then V-sync does not add latency other than a few lost FPS would (this starts to get hard to measure as your FPS go way above your refresh rate, as there are other factors).
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660


I'm not aware if adaptive-vsync can even be used with G-Sync ?



If i enable vsync in NVCP, cs:go goes to 'tripple buffering' rather than 'double' - which is best to use via i game menu to reduce input lag?

 


No, what triple buffering does is hold your FPS, which can sort of reduce latency, but only if your FPS is lower than your refresh rate.

It allows the game to start writing to a new buffer while it is waiting to display a current frame. The problem is that there is a rule in DirectX that requires all rendered frames to be displayed. This creates a problem when you are rendering frames faster than your refresh rate can display, as it creates a situation where the display is holding onto 2 frames before they are displayed. OpenGL does not have this issue, but is not used hardly at all anymore.
 

Jonathan Cave

Honorable
Oct 17, 2013
1,426
0
11,660
So one final question from me,

I've established that having Gsync on and Vsync on (as nvidia intended) results in no tearing and no input lag @ 60 fps.

Why does this switch around @ 45 fps in crysis 3 ? linus hasnt yet done another video on this yet and its really bugging me
(images below)
screenshot_17.png

screenshot_18.png