[Thread Superseded] G-Sync 101 w/Chart (WIP)

Talk about NVIDIA G-SYNC, a variable refresh rate (VRR) technology. G-SYNC eliminates stutters, tearing, and reduces input lag. List of G-SYNC Monitors.
Locked
User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

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

Post by jorimt » 16 May 2017, 15:45

pneu wrote:Understood, thanks.

I am still interested to know whether in-game vsync vs NVCP vsync is affecting the input lag. I don't know if it's a placebo but I seem to feel the input lag is lesser with the in-game vsync instead.
In the majority of instances, with G-SYNC enabled, in-game V-SYNC is more often than not identical to control panel V-SYNC (there are exceptions in some games where the in-game V-SYNC setting is tied to other frame pacing behaviors or triple buffering, but I haven't found that to be the case very often), because that option no longer acts as V-SYNC at all. Instead, it dictates whether or not G-SYNC compensates for frametime variances, and how it behaves above the refresh rate. More details in my upcoming article, but that's the gist.

So, likely a placebo. And even if it wasn't, if anything, you'd be seeing the opposite of what you're describing, with NVCP V-SYNC having less latency than in-game V-SYNC.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

User avatar
RealNC
Site Admin
Posts: 3738
Joined: 24 Dec 2013, 18:32
Contact:

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

Post by RealNC » 17 May 2017, 01:27

In-game vsync is coupled to triple buffering in some games. In those cases, you would see a small input lag increase. Very minor, since triple buffering only adds a full frame of lag when you hit vsync.

Frame pacing is also tied to vsync in some games. In this case, the game can have severe stutter with g-sync. Prime example is Fallout 4. If you don't disable in-game vsync (only possible in the ini files with the iPresentInterval setting), the micro-stutter is severe. This is rare though. In fact, Bethesda games are the only ones I know of that do this.

If you really want just to be safe, simply always disable in-game vsync. It's easy, doesn't cost you anything, makes sure you avoid as many potential issues as possible.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
RealNC
Site Admin
Posts: 3738
Joined: 24 Dec 2013, 18:32
Contact:

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

Post by RealNC » 23 May 2017, 05:02

Alright, there's some very good looking news when it comes to NVidia's frame limiter. It seems NVidia added a low latency mode setting to their limiter, and Profile Inspector just got updated to support the new driver setting:

http://forums.guru3d.com/showpost.php?p ... stcount=10

You need the latest NVidia driver for this (needs to be based on driver branch R381). Latest Profile Inspector is provided here:

https://ci.appveyor.com/project/Orbmu2k ... /artifacts

I haven't tested this myself yet (will do ASAP), but if this new NVAPI setting actually does what it claims it does, then it could invalidate the current "don't use Profile Inspector" advice. Ideally, we'd need to test if it's now lower latency than RTSS.

Edit:

Also, the NVidia driver now also seems to support drawing of real-time performance graphs by setting appropriate NVAPI settings, and Profile Inspector also added configuration options for them ("Flip Indicator" setting.) Which is very useful for performance analysis:

GRAPH_FLIP_FPS - FPS graph, measured on display hw flip
GRAPH_PRESENT_FPS - FPS graph, measured when the user mode driver starts processing present
GRAPH_APP_PRESENT_FPS - FPS graph, measured on app present
DISPLAY_PAGING - Add red paging indicator bars to the GRAPH_PRESENT_FPS graph
DISPLAY_APP_THREAD_WAIT - Add app thread wait time indiator bars to the GRAPH_APP_PRESENT_FPS graph
Enabled - Enable everything

So it seems you can get some perf data at different stages of the frame output chain. Not sure yet what they mean exactly (I'm not a graphics developer), but they do sound very useful.

Edit 2:

There's also some "hidden" settings (visible only if set in a profile or activated show all settings option). There's one that stands out, and that's an option of forcing DX9 or DX10 Present() calls (the function call that flips your render buffers) to be synchronous or asynchronous. Again, as a non-graphics dev, I don't know what the effect of that is. It just sounds like it might be a setting that affects latency and/or pacing.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
kurtextrem
Posts: 41
Joined: 05 Mar 2017, 03:35
Location: Munich, Germany

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

Post by kurtextrem » 23 May 2017, 05:53

Nice news!!
While we're at it, does Enable GTX950 specific features something on other cards (regarding performance/input lag)?
Acer XF250Q, R6 competitive player

User avatar
RealNC
Site Admin
Posts: 3738
Joined: 24 Dec 2013, 18:32
Contact:

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

Post by RealNC » 23 May 2017, 06:44

kurtextrem wrote:Nice news!!
While we're at it, does Enable GTX950 specific features something on other cards (regarding performance/input lag)?
No idea. It doesn't seem to have any effect.

Anyway, I just tested the new Profile Inspector settings using the 23FPS cap method (it's the lowest it allows now; I don't know if it's possible to set a lower cap like 10FPS, which would make input lag testing more accurate due to higher frame times).

Input lag is reduced to levels where I can't clearly detect a difference between RTSS and driver limiter. However, that's only true when using "Fast Sync". When forcing vsync off, on, or setting "Use the 3D application setting", the v1 driver limiter appears to have double the input lag of RTSS. And the v2 limiter appears to have triple the input lag of RTSS.

So it seems Fast Sync + v1 Limiter is treated specially by NVidia. Or it's a driver bug... Who knows.

To summarize:

(Tested with both G-Sync and without G-Sync with same results.)
  • v2 limiter: ~3 times higher input lag than RTSS (regardless of Fast Sync on/off.) Basically the same input lag as full vsync.
  • v1 Limiter with vsync on or off or "use application setting": ~2 times higher input lag than RTSS.
  • v1 Limiter with Fast Sync: Cannot detect a difference compared to RTSS.
Looks good! It seems using the driver limiter is now a viable option. I don't know if the extra input lag when not using Fast Sync is a driver bug or intended though.

For anyone who wants to test this without using special equipment, this is how you do it:
  • Use a game that uses a software rendered mouse cursor. Fallout 4 is a good choice. Use the "skip intro videos" tweak. The game starts immediately with its main menu, which uses a software rendered mouse cursor. Witcher 3 is also a good choice, but only when you set "Hardware Cursor" to OFF in the game's video settings. Hardware mouse cursors are NOT affected by frame rate limiters, which is why this is important!
  • Use a 23FPS cap in Profile Inspector.
  • Use a 0FPS cap in RTSS (disables the RTSS limiter.)
  • Move the mouse around in Fallout 4's start screen.
  • Alt-tab into RTSS and set a 22FPS cap (this makes RTSS "take over".)
  • Alt-tab back to the game and move the mouse around.
With this low a cap, you get a huge frame time (about 44ms.) Any difference in buffered frames is VERY easy to detect. 1 frame of difference means 44ms input lag difference. 2 frames means 88ms lag difference. Unless you're 90 years old, that's a trivial amount of input lag to see.

However, you can't test sub-frame latency differences. For that, you need equipment. Only jorimt can have the final word on this :mrgreen:
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

knypol
Posts: 76
Joined: 18 Aug 2016, 03:40

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

Post by knypol » 23 May 2017, 07:48

But the main question is why would U ever want to cap fast sync. All idea about fast sync is not to cap it at all isnt it? Or when lets say i have 60Hz monitor its better to use fast sync with 60fps cap than use vsync on? Will i have (in that case) tearing and stutter free motion with caped fast sync like i have with vsync but with lot lower input lag?

Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

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

Post by Sparky » 23 May 2017, 08:01

It's good to cap fast sync at the highest multiple of your refresh rate your system can sustain, so you don't get judder. An in game framerate cap can also reduce latency if you're GPU limited, even without fast sync.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

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

Post by jorimt » 23 May 2017, 09:09

RealNC wrote:Alright, there's some very good looking news when it comes to NVidia's frame limiter. It seems NVidia added a low latency mode setting to their limiter, and Profile Inspector just got updated to support the new driver setting:

http://forums.guru3d.com/showpost.php?p ... stcount=10

You need the latest NVidia driver for this (needs to be based on driver branch R381). Latest Profile Inspector is provided here:

https://ci.appveyor.com/project/Orbmu2k ... /artifacts

I haven't tested this myself yet (will do ASAP), but if this new NVAPI setting actually does what it claims it does, then it could invalidate the current "don't use Profile Inspector" advice. Ideally, we'd need to test if it's now lower latency than RTSS.

Edit:

Also, the NVidia driver now also seems to support drawing of real-time performance graphs by setting appropriate NVAPI settings, and Profile Inspector also added configuration options for them ("Flip Indicator" setting.) Which is very useful for performance analysis:

GRAPH_FLIP_FPS - FPS graph, measured on display hw flip
GRAPH_PRESENT_FPS - FPS graph, measured when the user mode driver starts processing present
GRAPH_APP_PRESENT_FPS - FPS graph, measured on app present
DISPLAY_PAGING - Add red paging indicator bars to the GRAPH_PRESENT_FPS graph
DISPLAY_APP_THREAD_WAIT - Add app thread wait time indiator bars to the GRAPH_APP_PRESENT_FPS graph
Enabled - Enable everything

So it seems you can get some perf data at different stages of the frame output chain. Not sure yet what they mean exactly (I'm not a graphics developer), but they do sound very useful.

Edit 2:

There's also some "hidden" settings (visible only if set in a profile or activated show all settings option). There's one that stands out, and that's an option of forcing DX9 or DX10 Present() calls (the function call that flips your render buffers) to be synchronous or asynchronous. Again, as a non-graphics dev, I don't know what the effect of that is. It just sounds like it might be a setting that affects latency and/or pacing.
Ugh, and I just finished testing and counting through my In-game vs. RTSS vs. Nvidia Inspector v1 & v2 tests yesterday too :lol:

Spoiler alert, in Overwatch, RTSS is still up to 1 frame, and both Nvidia Inspector v1 and v2 (pre-driver/inspector updates) are 2 frames of additional input latency compared to the in-game cap.

Those flip indicator settings had already been exposed in Nvidia Inspector update before last, and I had messed around with them months ago, but the FPS limiter settings are new, yes.

For control purposes, I can't update to the new driver until I finish all of my main tests (yes, still going), so I'll have to spot test this afterward, and will try to squeeze it in for the article.

EDIT: On second thought however, if you're saying this only applies to Fast Sync, then it may not be relevant to my G-SYNC-oriented article anyway. My upcoming Fast Sync tests show an FPS limit below the refresh rate, especially at 60Hz, is a no-no input latency-wise, so I'm not sure how this would be an appropriate regular usage in the first place. In light of that, I may test this after my article, and post the results for this specific scenario in the forum as a supplemental.

Also, If you have any clarification to add on this and its relation to G-SYNC RealNC, let me know, because I'm not super clear yet on how this applies, and what specific combination you're referring to; Fast Sync only? G-SYNC + Fast Sync?
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

User avatar
RealNC
Site Admin
Posts: 3738
Joined: 24 Dec 2013, 18:32
Contact:

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

Post by RealNC » 23 May 2017, 10:04

knypol wrote:But the main question is why would U ever want to cap fast sync. All idea about fast sync is not to cap it at all isnt it? Or when lets say i have 60Hz monitor its better to use fast sync with 60fps cap than use vsync on? Will i have (in that case) tearing and stutter free motion with caped fast sync like i have with vsync but with lot lower input lag?
When capping with G-Sync to stay within G-Sync range, Fast Sync doesn't make sense, you are right. But it seems if you don't select Fast Sync, you don't get the input lag reduction...

Which is why the behavior looks like a bug to me.

jorimt wrote:Ugh, and I just finished testing and counting through my In-game vs. RTSS vs. Nvidia Inspector v1 & v2 tests yesterday too :lol:
No rest for the wicked :mrgreen:
On second thought however, if you're saying this only applies to Fast Sync, then it may not be relevant to my G-SYNC-oriented article anyway. [...]

Also, If you have any clarification to add on this and its relation to G-SYNC RealNC, let me know, because I'm not super clear yet on how this applies, and what specific combination you're referring to; Fast Sync only? G-SYNC + Fast Sync?
The input lag reduction appears with Fast Sync + v1 limiter cap. That is true for both G-Sync on and off (just like RTSS.) Which is indeed weird and doesn't seem to make much sense. Since I'm capping using a severe limit (23FPS), there's no chance I'm exceeding the G-Sync range and thus fast sync never kicks in. And yet, selecting fast sync is the only way I get the same "up to 1 frame" input lag as I do with RTSS.

So to clarify: new nvidia limiter + fast sync = RTSS + any sync. For your test, that means: nvidia limiter + g-sync + fast sync = RTSS + g-sync + vsync on.

However, without your kind of equipment, I'm limited to testing using a 23FPS cap. If the behavior changes for high framerates, I can't detect that. I can only detect whether 1 or 2 extra frames of input lag are added when those frames have a whooping 45ms latency.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

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

Post by jorimt » 23 May 2017, 10:09

RealNC wrote:So to clarify: new nvidia limiter + fast sync = RTSS + any sync. For your test, that means: nvidia limiter + g-sync + fast sync = RTSS + g-sync + vsync on.
Okay, gotcha.

After I'm done with the main tests, I'll update the driver and inspector and do a quick G-SYNC + Fast Sync + v1 FPS limit at a single refresh rate with the new setting and see what I get.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

Locked