Blur Buster's G-SYNC 101 Series Discussion

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.
User avatar
Chief Blur Buster
Site Admin
Posts: 11648
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by Chief Blur Buster » 16 Mar 2018, 22:22

RealNC wrote:I'm talking about front-buffer rendering, where you ride the tearline during rasterisation. That's single-buffered rendering, and it's only possible in VR (unless something changed lately.) It provides near zero latency between the rasterizer and the player's eyes.
Oh....That mode of operation.

Related Article and ImgTec article and NVIDIA VRWorks. It's a creative trick.

I remember it used to be possible back in the 3Dfx days to render to the front buffer, watching the graphics flicker as you redrew the frame over and over. Yeah, you could raster-follow the polygonal rendering, making sure you're finished all rendering right near below the current raster.

Related topic, I recently wrote an article about raster-synchronized VSYNC OFF buffer flipping at Emulator Developers: Lagless VSYNC ON Algorithm (advanced link only useful to software developers). Basically an emulator developer can implement a virtually lagless form of VSYNC ON simulated with high framerate VSYNC OFF with raster-synchronized buffer flips. This algorithm is mainly useful for emulators, however. Ideally, front-buffer rendering would make this simpler (and less bandwidth wasted), but this can be done without direct access to a front buffer.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

Kimball
Posts: 2
Joined: 16 Mar 2018, 09:57

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by Kimball » 17 Mar 2018, 03:43

Chief Blur Buster wrote:
Kimball wrote:This might've been answered already, but I cant seem to find anything about it so here goes:
If Im using gsync + vsync, capping fps at 237 (because of 240hz monitor) and then my FPS fluctuates between, say, 180-237, does this influence input lag at all?
What would be most optimal in this case? IF input lag does increase because of the fluctuating FPS, would it be better to use 200hz / 197fps-cap in order to minimize this fps-fluctuation and in the end get better input-lag?
Short answer: Don't bother.

Long answer: There are many causes of input lag, but 180-237 range is best left fluctuating. That's only a minor variance between 1/180sec to 1/237sec (only a 1.3ms lag-variance range for rendertime lag). If you want MORE lag but CONSTANT lag, you want to cap at a lower framerate, but if you want absolute minimum lag, it's best to let framerates fluctuates.

The exception is when maxing out framerates causes latency effects (it doesn't always -- not measurable in CS:GO) -- e.g. GPU-limited games rather than CPU-limited games. Or that some part of software gets flooded (e.g. 1000Hz mice in the earlier slow-performing-computer days) to the point of creating lag.

That said, for a situation of 180-237fps, if you're playing recreationally, just let the framerates fuctuate. That said, in special situations. capping (e.g. 200fps or 180fps max) may improve lagfeel of certain competitive games where keeping lag-variances at bay is critical. But this won't be useful for Source-engine-powered competitive games (CS:GO) as it is happy uncapped on modern fast-performing systems -- in Jorim's GSYNC-101 for Blur Busters, for CS:GO specifically, uncapped still had about a single millisecond less lag than 1000fps cap -- but this was an offline lag test rather than online gameplay lag test.
Thats the answer I was looking for, thanks alot, appreciate it!

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

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by RealNC » 17 Mar 2018, 03:51

Chief Blur Buster wrote:The exception is when maxing out framerates causes latency effects (it doesn't always -- not measurable in CS:GO)
The jury's still out on that one. I don't think anyone tested yet? We assume that full CPU saturation on one or two cores won't cause any buffer pile-ups, but there's no tests yet to confirm.
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.

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

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by Sparky » 17 Mar 2018, 16:58

RealNC wrote:
Chief Blur Buster wrote:The exception is when maxing out framerates causes latency effects (it doesn't always -- not measurable in CS:GO)
The jury's still out on that one. I don't think anyone tested yet? We assume that full CPU saturation on one or two cores won't cause any buffer pile-ups, but there's no tests yet to confirm.
Flood did make some relevant tests in CS:GO, but it looks like the image host broke.

viewtopic.php?f=10&t=1381&start=360

KKNDT
Posts: 51
Joined: 01 Jan 2018, 08:56

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by KKNDT » 19 Mar 2018, 07:28

Chief Blur Buster wrote: GLOSSARY
XXX.png
XXX.png (132.91 KiB) Viewed 8309 times
Thanks. It's very useful, especially for someone like me whose 1st language is not English and has bigger chance to make things confused.

KKNDT
Posts: 51
Joined: 01 Jan 2018, 08:56

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by KKNDT » 09 Apr 2018, 07:58

I don't know if this has been asked. If the framerate drops below ~36, the G-SYNC module begins inserting duplicate refreshes. Is this implemented by G-SYNC module itself or the GPU? In other words, can we observe this function via cable scanout diagram?

User avatar
Chief Blur Buster
Site Admin
Posts: 11648
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by Chief Blur Buster » 09 Apr 2018, 14:38

Below ~30Hz, not ~36Hz. (at least for GSYNC)

Graphics card. When too long a time has elapsed since the frame buffer has been presented, the graphics card begin transmitting the new scanout. It's as if the graphics card is running at the lowest refresh rate. The scanout diagram would simply be a 30 Hz. (For 240Hz and 1/240sec scanout, the VBI versus active would be a whopping 7:1 ratio -- meaning a VBI about 7 times bigger than the height of active).

Low Frame Rate Compensation: Both GSYNC and FreeSync has such logic. Technically, most of this work is done by the GPU/drivers. The graphics card can "time" the refresh to try to ensure there's no in-progress refresh cycle when it's time to present.

28fps without compensating for low frame rates: When the game tries to present, it blocks (VSYNC ON) for a moment because it's still scanning-out the mandatory every-1/30sec frame (at 144Hz, this takes 1/144sec = 6.9ms).

28fps with low frame rate compensation: The driver pre-emptively scans out early (1 / (28*2)) = 56Hz equivalent. So since the last scanout was 1/56sec ago (a forced early scanout of a repeat refresh cycle), the game presenting frames every 1/28sec will not be blocked, and the new refresh cycle begins scanning.

For network geeks who understands -- It's kind of like predictive anti-collision logic found in Ethernet or WiFi -- time the signal (mandatory repeat refresh cycles pre-emptively begun early) so that a software's desire to present new refresh cycle, doesn't "collide" with an already-in-progress scanout (forcing a delay until the current scanout is complete).

This means 24fps would mean 48Hz VRR operation. And 11fps would mean 33Hz VRR operation. (That's assuming 30Hz is the minimum before refresh cycles gets doubled or tripled). Since VRR displays are sample-and-hold, 48Hz looks identical to 24Hz, and 33Hz looks identical to 11Hz respectively (as a duplicate refresh cycle being displayed on a duplicate refresh cycle, is no visible change at all to the end user). The trick for the drivers to monitor the frame rate and if the frame rate is low, pre-emptively trigger repeat-refresh-cycles to be out-of-the-way with the game's presenting of frames. So that the monitor is not busy scanning out a repeat-refresh when the game actually does present the frame (during a low frame rate). It is predictive, and sometimes there's predictive misses if the game's frametime varies all over the map, so there will still be occasional collissions of frame presentation while the display is still scanning out. But as long as the frame rate smoothly changes and goes up/down, the predictive low-framerate-compensation logic works well to extend the VRR range below minimum Hz.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

User avatar
lexlazootin
Posts: 1251
Joined: 16 Dec 2014, 02:57

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by lexlazootin » 10 Apr 2018, 04:33

>Below ~30Hz, not ~36Hz. (at least for GSYNC)

I'm pretty sure i've seen it double at higher values as well. On my XL2420G the dithering would stop at 45hz~ and it looks like the frames would double. but maybe this is unrelated.

User avatar
Chief Blur Buster
Site Admin
Posts: 11648
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by Chief Blur Buster » 10 Apr 2018, 10:33

lexlazootin wrote:>Below ~30Hz, not ~36Hz. (at least for GSYNC)

I'm pretty sure i've seen it double at higher values as well. On my XL2420G the dithering would stop at 45hz~ and it looks like the frames would double. but maybe this is unrelated.
Hmm, that would be interesting to actually scientifically measure when the repeat-scanouts are occuring.
Fundamentally, doing refresher scanouts is actually favourable because it reduces the visibility of LCD inversion (checkerboard-pixel-patterning artifacts) which becomes more visible during very low scanout frequencies. Since polarity inverts every other scanout. Ideally, inversion is invisible, but it can become unavoidably visible at certain refresh rates.

So it is in the monitor's favour to do repeat scanouts (i.e. higher refresh rate of a multiple of frame rate) as long as it can time the scanouts to avoid colliding with exact presentation time of new frames. At 144Hz, the monitor is busy for 1/144sec doing a scanout (whether a new frame or a repeat/refresher refresh cycle) so you never want the monitor to be 'busy' when the game wants to present a new frame. (For variable refresh rate, the monitor actually waits for the game before immediately refreshing).
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

xenphor
Posts: 69
Joined: 28 Feb 2018, 11:47

Re: Blur Buster's G-SYNC 101 Series Discussion

Post by xenphor » 13 Apr 2018, 02:50

Does anyone know if there is a way to setup a hotkey to enable/disable RTSS while in game? I'm trying to play the Final Fantasy XV demo with a 30fps limit because the in game limiter causes a bunch of stuttering. RTSS helps with that but then the cinematics in the game become very choppy. It would be useful to be able to disable RTSS with a hotkey so any cinematic could playback smoothly and then reenable it afterwards. I didn't see an option for it in the menus. I should note I'm not playing with a gsync monitor but I'm guessing it could be helpful for that as well.

Post Reply