You got a lot right but some things not perfectly straight.
I created a video showing the important bits while using the gsync pendulum demo.
A written overview:
- Gsync will only really work when the fps are within it's range. Which mostly is 30 fps up to the Monitor's Hz.
- When FPS exceed Monitor's Hz, gsync indicator will show that it's on but it's not active!
- When vsync is used without gsync, fps will get limited to the Monitor's Hz. If fps are below the Hz, stutter but no tearing will be visible!
- When vsync is used combined with gsync, fps will get limited to the Monitor's Hz. However if fps are below the Hz, gsync will become active and no tearing and no stutter will be visible!
- When vsync is used but set to "adaptive", either gsync will overrule the adaptive vsync or if gsync is deactivated, vsync will become "no sync".
- forced vsync or application vsync are the same for these cases. Sometimes one will be smoother though, but it's independent from gsync!
Now the crucial part about input lag:
When gsync and vsync are used, like it's recommended basically everywhere, vsync won't be active up until the point where the fps hit the Monitor's maximum Hz (which can be set in windows or within applications like rFactor 2. Windows setting becomes overruled when the application is run in fullscreen mode. When borderless or windowed, the Windows setting will overrule the application!)
So when gsync is used, which can be tested by enabling the "Hz counter" in the Monitor's OSD, like in my video (often called fps counter but you can see in my video that it's a Hz counter!).
When the number is synced to the fps number (below the maximum Hz setting), gsync is 100% active. If the number stays the same no matter the fps, it's not active! Even if the gsync indicator says otherwise. Like seen in the video.
Now when using vsync+gsync and letting the fps freely run up the maximum Hz setting, you'll see the gsync indicator active but in fact VSYNC will be active, not gsync!
When the fps drop, you'll see the Hz counter dropping too. Gsync will be active.
Now to the facts about input lag:
You'll always have input lag of about one frame, since your input can only be displayed for the next frame, not the current. On top of this there is hardware input lag from your mouse, motherboard, USB etc and the Monitor's controller.
The lowest will be without any syncing.
Vsync, Gsync, fps limiter, capturing software whatever input lag will be on top of this "basic input lag".
Vsync input lag: depending on the setting of "pre-rendered frames", which at default is 3 but can be either set in-game or in the driver to 1, causes input lag according to the amount of pre-rendered frames. (It can't be set to 0, since one of the buffers would become disabled and break the normal vsync.)
At 60 fps this input lag will be:
1 frame -> 1000ms/60 frames = 16.6ms from frame to frame.
3 frames -> 16.6ms * 3 frames = ca. 50ms
At 100 fps this will change to 10ms and 30ms!
Now gsync input lag tests:
Source video of the screenshots:
LINK
Green: shortest, Blue: average, Red: longest
You see that at 400 fps, no sync is active either way, since it's beyond the Monitor's Hz.
Vsync will limit the fps to 144 and the nvidia inspector limiter is really bad.
Gsync + nvidia limiter stays really bad due to the limiter.
Gsync + CS:GO internal limiter shows the real thing.
Gsync + Vsync without a limiter shows that vsync only is active!
Now to the numbers to actually compare:
No Sync + CS:GO limiter: 30-45 ms
Gsync + CS:GO limiter: 28-46 ms
Vsync + whatever: 50-62 ms
Gsync or no sync is basically identical. Tiny differences are measurement tolerances! Vsync however causes huge input lag in comparison!
Everything with the nvidia limiter can be ignored, it's crap.
Another Screenshot, different video, same guy:
Summary:
Gsync will only be active as long as your fps are below your Hz-setting and the Hz-Counter of your Monitor shows that the actual Hz are below the Hz-setting too! It will cause almost no input lag at all.
Vsync on the other hand causes significant input lag depending on the pre-rendered frames. It will always add 1 frame-lag on top though at minimum!
Now another video, self recorded with my G27 in Assetto Corsa. FPS are limited with RTSS.
Left: 100 fps @ 100 Hz with Vsync (no limit)
Right: 95 fps @ 95 Hz with Gsync (limit to 95 fps)
I inverted colours to make the wheels more visible.