Page 1 of 13

G-Sync's 1ms Polling Rate: My Findings & Questions

Posted: 04 Nov 2016, 12:21
by jorimt
(EDIT) My latest findings can be found in the "G-Sync 101 w/Chart (WIP)" thread here:
http://forums.blurbusters.com/viewtopic.php?f=5&t=3073
In G-Sync's relatively short history, Blur Buster's excellent article (http://www.blurbusters.com/gsync/preview2/) is the only source of information regarding G-Sync's inner workings and framerate limiters' impact on input latency. As Nvidia remains silent on the subject, I'm really hoping I can get a reply on this post and its contents directly from the Chief Blur Buster.

Since it's release, informed G-Sync users have gone by this comment (http://www.blurbusters.com/gsync/preview2/#comment-2762) to prevent reaching G-Sync's refresh rate limit, and reduce input latency. And with G-Sync on + V-Sync on, a framerate limit of 135 fps on a 144Hz display seems to have sufficed, that is, until Nvidia exposed the option to disable V-Sync with G-Sync enabled.

Now I and many other G-Sync users have noticed, even with a 135 fps cap (or whereabouts) on a 144Hz display, tearing can be observed at the very bottom of the screen. And I believe I have discovered why: G-Sync's 1ms polling rate.

What follows is a reshuffling of what I have written over several posts on a thread in Nvidia's official forums here:
https://forums.geforce.com/default/topi ... 1/#5010801

I began my test on my 144Hz XB271HU in Overwatch. Launching the game and entering practice mode, I positioned myself like so:
Image

phpBB [video]


I then started strafing left/right, watching for tearing at the bottom portion of the screen. Using the game's built-in framerate limiter, I began at 144 fps, and reduced the limiter in single frame increments until the tearing disappeared at 120 fps.

What I thought was interesting, is that this finding was in line with the article's:
At first, it was pretty clear that G-SYNC had significantly more input lag than VSYNC OFF. It was observed that VSYNC OFF at 300fps versus 143fps had fairly insignificant differences in input lag (22ms/26ms at 300fps, versus 24ms/26ms at 143fps). When I began testing G-SYNC, it immediately became apparent that input lag suddenly spiked (40ms/39ms for 300fps cap, 38ms/35ms for 143fps cap). During fps_max=300, G-SYNC ran at only 144 frames per second, since that is the frame rate limit. The behavior felt like VSYNC ON suddenly got turned on.

The good news now comes: As a last-ditch, I lowered fps_max more significantly to 120, and got an immediate, sudden reduction in input lag (27ms/24ms for G-SYNC). I could no longer tell the difference in latency between G-SYNC and VSYNC OFF in Counterstrike: GO! Except there was no tearing, and no stutters anymore, the full benefits of G-SYNC without the lag of VSYNC ON.
The same framerate limit where input lag with G-Sync + V-Sync on disappeared in the article, tearing disappeared with G-Sync + V-Sync off in my test. It then dawned on me, that if G-Sync has a 1ms polling rate, then the tearing/input latency must fully disappear at 120 fps on a 144Hz monitor, because 120 fps and 144 fps are roughly 1ms frametime apart (8.3ms - 6.9ms = 1.4ms).

Apparently, this 120 fps framerate limit gives G-Sync the 1ms window it needs to work its magic on the entire screen, and thus prevents the tearing we see at the bottom with G-Sync on + V-Sync off + over 120 framerate limits.

This 24Hz difference obviously doesn't scale linearly across displays with different max refresh rate limits, and instead, it looks as if you need to limit the framerate roughly 1ms below your display's max refresh; 100Hz = 90 fps, 144Hz = 120 fps, and so on.

I also found that in-game framerate limiters appear to limit the framerate, not the frametime, whereas RTSS appears to limit the frametime, not the framerate. This means that in-game limiters need a lower framerate limit in order to avoid exceeding G-Sync's 1ms polling range, as the frametime can drift 0.5ms+/-. Whereas I could push the framerate slightly higher with RTSS (125 fps vs 120 fps) before tearing at the bottom of the screen occurred, because frametime remained relatively static.

All that said, now to my questions. First of all, am I right about any of this? Secondly, this has been driving me mad for a while; how much additional input latency does RTSS add over in-game framerate limiters? I assume it varies depending on the game, but is it as much as V-Sync introduces, or much less on average? I ask, because many games don't include framerate limiters, and RTSS becomes a necessary evil.

Thirdly, if I am correct about the 1ms polling range, and G-Sync + V-Sync off is only tearing at the bottom portion of the screen with a 120+ (e.g. traditional 135) framerate limit, doesn't it simply represent the area where G-Sync ran out of time to sync the frames, and, at worst, is the only area input latency/rendering time differs from the rest of the screen, even with G-Sync + V-Sync on?

Finally, it is my understanding, that with G-Sync on + V-Sync off, even with the appropriate framerate limit, tearing still can occur below G-Sync's 30Hz range, mainly during frametime spikes that happen during asset loads, etc. Many take this as a sign that G-Sync is broken, but it's obvious that V-Sync was always intended as a buffer to G-Sync below/above its range.

Thanks in advance, and I'd be happy for replies and input from any and all who have knowledge on this subject.

Re: G-Sync's 1ms Polling Rate: Findings & Questions

Posted: 04 Nov 2016, 13:04
by Glide
jorimt wrote:Thirdly, if I am correct about the 1ms polling range, and G-Sync + V-Sync off is only tearing at the bottom portion of the screen, doesn't it simply represent the area where G-Sync ran out of time to sync the frames
Aren't you just running into the upper limit where G-Sync transitions over to V-Sync behavior?
Where you will get input lag if V-Sync is On in the NVIDIA Control Panel, and tearing if V-Sync is Off in the NVIDIA Control Panel.

Re: G-Sync's 1ms Polling Rate: Findings & Questions

Posted: 04 Nov 2016, 13:18
by Q83Ia7ta
may be will help you to get knowledge https://www.youtube.com/watch?v=L07t_mY2LEU
also check this youtube channel

Re: G-Sync's 1ms Polling Rate: Findings & Questions

Posted: 04 Nov 2016, 13:21
by jorimt
Glide wrote:
jorimt wrote:Thirdly, if I am correct about the 1ms polling range, and G-Sync + V-Sync off is only tearing at the bottom portion of the screen, doesn't it simply represent the area where G-Sync ran out of time to sync the frames
Aren't you just running into the upper limit where G-Sync transitions over to V-Sync behavior?
Where you will get input lag if V-Sync is On in the NVIDIA Control Panel, and tearing if V-Sync is Off in the NVIDIA Control Panel.
Yes, but what I'm saying is, since before my own "discovery," it was common knowledge that you only needed a 135 fps cap on a 144Hz G-Sync display to prevent V-Sync behavior/reduce input latency. However, G-Sync + V-Sync off reveals any in-game framerate limit above 120 fps on a 144Hz display actually causes tearing at the bottom of the screen. In other words, a 135 cap on a 144Hz monitor isn't actually sufficient, and V-Sync was merely masking the issue.

When this 135 cap was suggested, there was no option to disable V-Sync with G-Sync on. So what I'm proposing, is that with both G-Sync + V-Sync on/off combinations and a 135 cap, the only difference in input latency/rendering time is occurring on the bottom of the screen, where G-Sync can't catch up due to it's 1ms polling rate. If that isn't the case, and full V-Sync behavior engages anywhere above a 120 fps cap on a 144Hz display, then the 135 fps cap and its reduction of input latency with G-Sync + V-Sync on was, and always has been, a placebo.

Re: G-Sync's 1ms Polling Rate: Findings & Questions

Posted: 04 Nov 2016, 13:22
by jorimt
Q83Ia7ta wrote:may be will help you to get knowledge https://www.youtube.com/watch?v=L07t_mY2LEU
also check this youtube channel
I've actually seen that one, and linked to it before. Good video :)

Re: G-Sync's 1ms Polling Rate: Findings & Questions

Posted: 04 Nov 2016, 16:22
by Sparky
jorimt wrote:
Q83Ia7ta wrote:may be will help you to get knowledge https://www.youtube.com/watch?v=L07t_mY2LEU
also check this youtube channel
I've actually seen that one, and linked to it before. Good video :)
Seems good, though his monitor has about 20ms of input lag, that should be taken into consideration when comparing his results to other peoples' results.

Re: G-Sync's 1ms Polling Rate: Findings & Questions

Posted: 04 Nov 2016, 16:39
by jorimt
Sparky wrote:
jorimt wrote:
Q83Ia7ta wrote:may be will help you to get knowledge https://www.youtube.com/watch?v=L07t_mY2LEU
also check this youtube channel
I've actually seen that one, and linked to it before. Good video :)
Seems good, though his monitor has about 20ms of input lag, that should be taken into consideration when comparing his results to other peoples' results.
Yes, something to consider; my display only has a little over 3ms of input lag.

Unfortunately, while it has some decent info about FastSync, that video has nothing to do with my OP :/

Re: G-Sync's 1ms Polling Rate: Findings & Questions

Posted: 05 Nov 2016, 01:06
by Sparky
jorimt wrote: When this 135 cap was suggested, there was no option to disable V-Sync with G-Sync on. So what I'm proposing, is that with both G-Sync + V-Sync on/off combinations and a 135 cap, the only difference in input latency/rendering time is occurring on the bottom of the screen, where G-Sync can't catch up due to it's 1ms polling rate. If that isn't the case, and full V-Sync behavior engages anywhere above a 120 fps cap on a 144Hz display, then the 135 fps cap and its reduction of input latency with G-Sync + V-Sync on was, and always has been, a placebo.
What matters for latency is when the display starts backpressuring the render chain. Showing every frame 1ms late adds 1ms of latency, backpressuring the render chain at 144hz is somewhere around 30~40ms of extra latency. I don't have g-sync parts to test, but with v-sync, it doesn't really matter how far below your refresh rate you cap framerate. Say your refresh rate is 60hz and your framerate is capped at 59.95, you'll repeat one frame every seconds, but the latency will not get the several frames delay from uncapped vsync, it will creep down towards the vsync off latency then jump up by one frame when a frame deadline is missed, then creep back down. nothing like the several frames of latency added by uncapped vsync.

Re: G-Sync's 1ms Polling Rate: Findings & Questions

Posted: 05 Nov 2016, 11:45
by jorimt
Sparky wrote:
jorimt wrote: When this 135 cap was suggested, there was no option to disable V-Sync with G-Sync on. So what I'm proposing, is that with both G-Sync + V-Sync on/off combinations and a 135 cap, the only difference in input latency/rendering time is occurring on the bottom of the screen, where G-Sync can't catch up due to it's 1ms polling rate. If that isn't the case, and full V-Sync behavior engages anywhere above a 120 fps cap on a 144Hz display, then the 135 fps cap and its reduction of input latency with G-Sync + V-Sync on was, and always has been, a placebo.
What matters for latency is when the display starts backpressuring the render chain. Showing every frame 1ms late adds 1ms of latency, backpressuring the render chain at 144hz is somewhere around 30~40ms of extra latency. I don't have g-sync parts to test, but with v-sync, it doesn't really matter how far below your refresh rate you cap framerate. Say your refresh rate is 60hz and your framerate is capped at 59.95, you'll repeat one frame every seconds, but the latency will not get the several frames delay from uncapped vsync, it will creep down towards the vsync off latency then jump up by one frame when a frame deadline is missed, then creep back down. nothing like the several frames of latency added by uncapped vsync.
Thanks for the reply.

My OP has already established that G-Sync's max threshold appears to be 120 fps on a 144Hz display due to G-Sync's 1ms polling rate. Anything above that with in-game framerate limiters, and it begins to exhibit tearing at the bottom of the screen.

What I guess I'm trying to figure out at this point, is if it's possible for G-Sync (with the combination of G-Sync + V-Sync off + in-game framerate limiter) to only partially apply to the screen. Because in my testing, with 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140 and so on, I'm seeing tearing appear only at the very bottom of the screen, which grows slightly taller the higher the cap reaches the G-Sync ceiling. Once I hit 143+, G-Sync appears to completely disable, and I see full V-Sync off behavior, with tearing across the entire screen.

Which brings me to the next question, if I enable G-Sync + V-Sync on instead, and in the exact same scenario, what is G-Sync's behavior then? If the cap is above 120, does full V-Sync on behavior kick in, or is it possible that even with V-Sync on, G-Sync can apply partially to the screen (more than three quarters) as it appears to do with G-Sync + V-Sync off?

In my mind, it has to be one or the other. Either G-Sync can partially sync the screen with either V-Sync on or off, or it can't, meaning anything above a 120 fps cap on a 144Hz display is a placebo when it comes to reducing the input latency that increases when G-Sync reaches the refresh limit, because in this scenario, V-Sync on behavior has fully engaged, even with a 135 fps cap.

Re: G-Sync's 1ms Polling Rate: My Findings & Questions

Posted: 06 Nov 2016, 01:15
by lexlazootin
Are you suggesting that there isn't any input lag difference between 120-135fps in G-Sync mode? I've got a camera and i'll be happy to test it but i'm a little confused on what's going on here.

Also you can adjust your Vertical Timings to remove the tearing at the bottom of your screen BTW