Page 27 of 33

Re: G-Sync 101 w/Chart (WIP)

Posted: 23 May 2017, 10:14
by RealNC
I've sent an email to Chris (Battle(non)Sense) in case he's interested in this, and he might be doing a quick test this weekend.

Re: G-Sync 101 w/Chart (WIP)

Posted: 23 May 2017, 12:22
by akirru
I just tried what you suggested and it feel quite similar to RTSS.... But I only tried it in DOOM (Vulkan). I also noted that input lag was a lot worse when pre-rendered frames were set to "1" instead of application preference.

I can't wait to hear some more detailed findings though ;)

Re: G-Sync 101 w/Chart (WIP)

Posted: 23 May 2017, 13:58
by RealNC
Just tried Doom. Same results (meaning it's as good as RTSS.)

Can't see a difference between MPRF 1 and default though. Same input lag. Which makes sense, since MPRF > 1 only increases input lag if the cap isn't reached (like when capping to 140FPS but the game isn't able to go that high; then, and only then, will MPRF result in extra buffered frames.) So with the 23FPS cap test, MPRF > 1 never has an effect.

Re: G-Sync 101 w/Chart (WIP)

Posted: 23 May 2017, 17:07
by akirru
Yea it feels good... I suppose it saves you having to use a separate tool. I'm interested to see some conclusive tests. Love all the work you guys put into this though ;)

Re: G-Sync 101 w/Chart (WIP)

Posted: 26 May 2017, 21:57
by jorimt
As an aside while I continue my tests, I did several quick single run Creators update "Game Mode" G-SYNC + V-SYNC + -2 FPS limit @144Hz tests in Overwatch (at lowest settings) up against non-Game Mode G-SYNC + V-SYNC + -2 FPS limit @144Hz.

Scenarios as follows:

1. Fullscreen Optimizations Enabled
2. Fullscreen Optimizations Disabled
3. Game Mode (Settings) + Fullscreen Optimizations Disabled
4. Game Mode (Settings) + Fullscreen Optimizations Enabled
5. Game Mode (Settings) + Game Mode (Game bar) + Fullscreen Optimizations Enabled
6. Game Mode (Game bar) + Fullscreen Optimizations Enabled

The results? No input latency differences on my system. Granted, I had no background programs running, no overlays, CPU was unparked and at highest frequency, and I do have very decent specs, so the gains would likely only show on weaker configurations or systems that multi-task, but it still doesn't explain how Battle(non)sense's results show a significant global reduction in input latency, and solely with the Game Mode toggle in the Windows settings. Go figure.

The only difference I did observe with fullscreen optimizations, is that with it disabled, the screen would flash twice in exclusive fullscreen when trying to bring up the Game bar (which signifies it is supported, but can't be brought up because of exclusive fullscreen mode), and with fullscreen optimizations enabled (default), the Game bar could be brought up with the keyboard shortcut, even in exclusive fullscreen mode.

Anyway, since Game Mode tests won't be included in the upcoming article (off-topic), I thought I'd post about my findings (albeit not in the least ways in-depth or conclusive) here. It definitely appears that the Game Mode setting's effectiveness depends entirely on the setup. It would probably be very difficult to isolate consistent differences and come to any definitive conclusions from testing a single system.

Re: G-Sync 101 w/Chart (WIP)

Posted: 28 May 2017, 19:51
by drmcninja
Does V-Sync with -2 FPS limit work without G-Sync? Meaning, does it work without giving you a lot of input lag?

And if not, why does that work when G-Sync is turned on? Why does V-Sync suddenly stop giving input lag in such a situation?

Third question: If the fps is limited to 2 below the refresh rate, then why do you need V-Sync with G-Sync to begin with? Wouldn't G-Sync alone just sit at that framerate/refresh (i.e, 142fps/Hz on an otherwise 144Hz monitor). I thought V-Sync only has an effect when there's tearing from going above the monitor's refresh rate?

Somewhat different question: Why does Overwatch's internal setting 'Display-Based' under frame limit option use 10 above the refresh rate whereas you're using 2 below?

Re: G-Sync 101 w/Chart (WIP)

Posted: 28 May 2017, 21:22
by RealNC
drmcninja wrote:Does V-Sync with -2 FPS limit work without G-Sync? Meaning, does it work without giving you a lot of input lag?
Yes, it works. But obviously you will get stutter.
Why does V-Sync suddenly stop giving input lag in such a situation?
That's because with vsync, the game renders more frames that the display can output. This results in every available frame buffer being filled. When that happens, the game stops rendering new frames. By the time those frames make it to the screen, they are based on very old player input.

Using a frame cap makes sure the game does not render more frames than can be output. This means frame buffers stay empty, which in turns means player input is only read when the frame that is generated based on that input is sure to be displayed as fast as possible.

This effect of filled up buffers and old input is known as "vsync back pressure." Frame capping reduces this.

Using a -2FPS cap with vsync is not recommended due to the stutter issue. It's best to use a -0.007FPS cap. RTSS can do that by editing its profile file. Another method is to modify the refresh of the monitor and then cap to a non-fractional frame rate (like using 120.008Hz and capping to 120FPS.) This results in virtually no stutter (there will be a hiccup every couple minutes or so, but this is completely masked by other FPS fluctuations.)
Third question: If the fps is limited to 2 below the refresh rate, then why do you need V-Sync with G-Sync to begin with? Wouldn't G-Sync alone just sit at that framerate/refresh (i.e, 142fps/Hz on an otherwise 144Hz monitor). I thought V-Sync only has an effect when there's tearing from going above the monitor's refresh rate?
This is needed to guard against fluctuating frame times. G-Sync can tear even if the apparent frame rate is within g-sync range. In reality, some frame limiters are not very accurate and produce frame times that are too high followed by frame times that are too low. CS:GO for example has this issue. Enabling vsync solves the issue.

This is not an issue with accurate frame limiters though. RTSS for example does not have this problem; vsync off works just as well.

Re: G-Sync 101 w/Chart (WIP)

Posted: 28 May 2017, 22:13
by jorimt
drmcninja wrote:Does V-Sync with -2 FPS limit work without G-Sync? Meaning, does it work without giving you a lot of input lag?

And if not, why does that work when G-Sync is turned on? Why does V-Sync suddenly stop giving input lag in such a situation?

Third question: If the fps is limited to 2 below the refresh rate, then why do you need V-Sync with G-Sync to begin with? Wouldn't G-Sync alone just sit at that framerate/refresh (i.e, 142fps/Hz on an otherwise 144Hz monitor). I thought V-Sync only has an effect when there's tearing from going above the monitor's refresh rate?

Somewhat different question: Why does Overwatch's internal setting 'Display-Based' under frame limit option use 10 above the refresh rate whereas you're using 2 below?
RealNC already provided accurate answers, but to further answer you, the first three questions will be answered in detail in my upcoming article, input latency results included. The third question is already pretty much answered in my existing article here, though even it will be overhauled with further explanations and corrections when my third article is released:
http://www.blurbusters.com/gsync/gsync101-range/

As for the "somewhat different question," Overwatch's "Display-Based" setting obviously isn't intended specifically for G-SYNC, which stops working as intended when the framerate exceeds the refresh rate, thus the need for an FPS limit below the refresh rate.

Re: G-Sync 101 w/Chart (WIP)

Posted: 28 May 2017, 22:44
by drmcninja
Thanks for the explanations guys!

So... what's the input lag like when using V-Sync, without G-Sync, while frame-capped below the refresh rate? I.e, 118fps cap, 120Hz refresh rate, V-Sync On?

Is it more or less than Fast-Sync? Because I'm wondering what's the point of 300fps, 120Hz refresh, Fast Sync On when I can just do 118fps, 120Hz refresh, V-Sync On...
This is needed to guard against fluctuating frame times. G-Sync can tear even if the apparent frame rate is within g-sync range. In reality, some frame limiters are not very accurate and produce frame times that are too high followed by frame times that are too low. CS:GO for example has this issue. Enabling vsync solves the issue.

This is not an issue with accurate frame limiters though. RTSS for example does not have this problem; vsync off works just as well.
So if I'm reading you correctly, using RTSS means you can just use G-Sync and do not need to enable V-Sync at all? Then why doesn't everyone just do this rather than enabling V-Sync which might introduce extra input lag?

And correct me if I'm wrong, RTSS alone can't help me if I don't have G-Sync, right? I'll need to use either V-Sync or Fast-Sync to get rid of tearing? Or can I set RTSS @ my refresh rate and hope for the best? There's no impact on input lag with RTSS either, right?

Re: G-Sync 101 w/Chart (WIP)

Posted: 28 May 2017, 23:25
by jorimt
Thanks for the explanations guys!

So... what's the input lag like when using V-Sync, without G-Sync, while frame-capped below the refresh rate? I.e, 118fps cap, 120Hz refresh rate, V-Sync On?

Is it more or less than Fast-Sync? Because I'm wondering what's the point of 300fps, 120Hz refresh, Fast Sync On when I can just do 118fps, 120Hz refresh, V-Sync On...
Depending on how v-sync is capped, anywhere from 1/2 to 1 frame of accumulated delay in my testing (full results coming in the article) if you limit one or more full frames below the refresh rate, thus the recommendation to set the FPS only a few decimal points below the refresh rate.

Fast Sync is limited by the display's scanout speed and must deliver a single, complete frame at a time, so, unlike v-sync off, those excess frames are not giving you the same type of input latency advantage above the refresh rate. Instead, the excess frames are being used to deliver to the display faster than they would be with double buffer v-sync.

120Hz w/300 fps and Fast Sync is a little over a 2x ratio, which is enough excess frames to get you within a few milliseconds of G-SYNC input latency, but since Fast Sync drops frames, you're not going to get near as smooth frame pacing. But yes, in that situation, it is much better than uncapped double buffer v-sync input latency-wise.

RTSS adds a frame of delay no matter the syncing method, so while you could get extremely close to 120Hz + 300 FPS + Fast Sync input latency levels with double buffer v-sync + FPS limit a few decimals below your refresh rate, and probably better frame pacing to boot, again, you'd have an additional 1 frame of delay from RTSS. You could use the in-game limiter, but then you'd have to limit by a full frame, which would introduce as much recurring microstutter as Fast Sync would, as v-sync would skip a frame roughly every second.
So if I'm reading you correctly, using RTSS means you can just use G-Sync and do not need to enable V-Sync at all? Then why doesn't everyone just do this rather than enabling V-Sync which might introduce extra input lag?
Nope. G-SYNC + V-SYNC "Off" is basically Adaptive G-SYNC; it's will tear, just not all the time. the V-SYNC in "G-SYNC + V-SYNC" is simply a poor label for the toggle that allows frametime compensation with G-SYNC enabled. It ain't really v-sync, and it doesn't introduce extra input lag inside the G-SYNC range, but it ensures G-SYNC shows only one frame at a time.

Again, way more details in my upcoming article. I've been working on it for over a month, so it will be chock full of info and input latency charts.
drmcninja wrote: And correct me if I'm wrong, RTSS alone can't help me if I don't have G-Sync, right? I'll need to use either V-Sync or Fast-Sync to get rid of tearing? Or can I set RTSS @ my refresh rate and hope for the best? There's no impact on input lag with RTSS either, right?
Correct, RTSS will only limit the framerate, it will do nothing to eliminate tearing, and must be used in conjunction with a syncing method.