G-SYNC 101: Range


Blur Buster's G-SYNC 101: Range Chart

Exceeds G-SYNC Range

G-SYNC + V-SYNC “Off”:
G-SYNC disengages, tearing begins display wide, no frame delay is added.

G-SYNC + V-SYNC “On”:
G-SYNC reverts to V-SYNC behavior when it can no longer adjust the refresh rate to the framerate, 2-6 frames (typically 2 frames; approximately an additional 33.2ms @60 Hz, 20ms @100 Hz, 13.8ms @144 Hz, etc) of delay is added as rendered frames begin to over-queue in both buffers, ultimately delaying their appearance on-screen.

G-SYNC + Fast Sync*:
G-SYNC disengages, Fast Sync engages, 0-1 frame of delay is added**.
*Fast Sync is best used with framerates in excess of 2x to 3x that of the display’s maximum refresh rate, as its third buffer selects from the “best” frame to display as the final render; the higher the sample rate, the better it functions. Do note, even at its most optimal, Fast Sync introduces uneven frame pacing, which can manifest as recurring microstutter.
**Refresh rate/framerate ratio dependent (see G-SYNC 101: G-SYNC vs. Fast Sync).

Within G-SYNC Range

Refer to “Upper & Lower Frametime Variances” section below…

Upper & Lower Frametime Variances

G-SYNC + V-SYNC “Off”:
The tearing inside the G-SYNC range with V-SYNC “Off” is caused by sudden frametime variances output by the system, which will vary in severity and frequency depending on both the efficiency of the given game engine, and the system’s ability (or inability) to deliver consistent frametimes.

G-SYNC + V-SYNC “Off” disables the G-SYNC module’s ability to compensate for sudden frametime variances, meaning, instead of aligning the next frame scan to the next scanout (the process that physically draws each frame, pixel by pixel, left to right, top to bottom on-screen), G-SYNC + V-SYNC “Off” will opt to start the next frame scan in the current scanout instead. This results in simultaneous delivery of more than one frame in a single scanout (tearing).

In the Upper FPS range, tearing will be limited to the bottom of the display. In the Lower FPS range (<36) where frametime spikes can occur (see What are Frametime Spikes?), full tearing will begin.

Without frametime compensation, G-SYNC functionality with V-SYNC “Off” is effectively “Adaptive G-SYNC,” and should be avoided for a tear-free experience (see G-SYNC 101: Optimal Settings & Conclusion).

G-SYNC + V-SYNC “On”:
This is how G-SYNC was originally intended to function. Unlike G-SYNC + V-SYNC “Off,” G-SYNC + V-SYNC “On” allows the G-SYNC module to compensate for sudden frametime variances by adhering to the scanout, which ensures the affected frame scan will complete in the current scanout before the next frame scan and scanout begin. This eliminates tearing within the G-SYNC range, in spite of the frametime variances encountered.

Frametime compensation with V-SYNC “On” is performed during the vertical blanking interval (the span between the previous and next frame scan), and, as such, does not delay single frame delivery within the G-SYNC range and is recommended for a tear-free experience (see G-SYNC 101: Optimal Settings & Conclusion).

G-SYNC + Fast Sync:
Upper FPS range: Fast Sync may engage, 1/2 to 1 frame of delay is added.
Lower FPS range: see “V-SYNC ‘On'” above.

What are Frametime Spikes?

Frametime spikes are an abrupt interruption of frames output by the system, and on a capable setup running an efficient game engine, typically occur due to loading screens, shader compilation, background asset streaming, auto saves, network activity, and/or the triggering of a script or physics system, but can also be exacerbated by an incapable setup, inefficient game engine, poor netcode, low RAM/VRAM and page file over usage, misconfigured (or limited game support for) SLI setups, faulty drivers, specific or excess background processes, in-game overlay or input device conflicts, or a combination of them all.

Not to be confused with other performance issues, like framerate slowdown or V-SYNC-induced stutter, frametime spikes manifest as the occasional hitch or pause, and usually last for mere micro to milliseconds at a time (seconds, in the worst of cases), plummeting the framerate to as low as the single digits, and concurrently raising the frametime to upwards of 1000ms before re-normalizing.

G-SYNC eliminates traditional V-SYNC stutter caused below the maximum refresh rate by repeated frames from delayed frame delivery, but frametime spikes still affect G-SYNC, since it can only mirror what the system is outputting. As such, when G-SYNC has nothing new to sync to for a frame or frames at a time, it must repeat the previous frame(s) until the system resumes new frame(s) output, which results in the visible interruption observed as stutter.

The more efficient the game engine, and the more capable the system running it, the less frametime spikes there are (and the shorter they last), but no setup can fully avoid their occurrence.

Minimum Refresh Range

Once the framerate reaches the approximate 36 and below mark, the G-SYNC module begins inserting duplicate refreshes per frame to maintain the panel’s minimum physical refresh rate, keep the display active, and smooth motion perception. If the framerate is at 36, the refresh rate will double to 72 Hz, at 18 frames, it will triple to 54 Hz, and so on. This behavior will continue down to 1 frame per second.

Regardless of the reported framerate and variable refresh rate of the display, the scanout speed will always be a match to the display’s current maximum refresh rate; 16.6ms @60Hz, 10ms @100 Hz, 6.9ms @144 Hz, and so on. G-SYNC’s ability to detach framerate and refresh rate from the scanout speed can have benefits such as faster frame delivery and reduced input lag on high refresh rate displays at lower fixed framerates (see G-SYNC 101: Hidden Benefits of High Refresh Rate G-SYNC).



3052 Comments For “G-SYNC 101”

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Sort by:   newest | oldest | most liked
Sequinoz
Member
Sequinoz

Hi Jorimt. A bit of a long comment here so I hope you don’t mind. Recently I bought a new G-Sync monitor (XG321UG) and noticed a peculiar G-Sync behaviour but I’m unsure if it’s abnormal or not.

To reproduce the behaviour, I ran the G-Sync Pendulum Demo application and manually changed the FPS from 60 to 50. The expected behaviour is a seamless framerate change with no noticeable stutter.

Instead, I noticed a ~0.2 seconds of continuous stutter from the moment the FPS changed from 60 to 50. It’s almost as if the G-Sync module tries to “catch up” to the sudden change in FPS.

Changing from 60 to 55 did not seem to show the problem much (if at all) and changing from 50 to 60 showed more of a one-time frame “jump”. Setting the FPS to gradually change back and forth between 60 and 40 seems to also be normal. Notably, the problem is less noticeable at higher FPS.

I tried testing my old G-Sync monitor (PG27AQ) and changing the FPS from 60 to 50 only seemed to show one stutter/frame jump but was less noticeable and did not stutter for as long as ~0.2 seconds.

I’m wondering if the symptom I’m seeing on my new monitor is normal or if it’s an indication that the G-Sync module is faulty.

As a side note: I also turned on the display’s built-in refresh rate counter and whenever I change FPS from 60 to 50, the refresh rate would go 60 > 49 > 43 > 49 > 50. Changing FPS from 60 to 55 instead showed 60 > 56 > 53 > 55. I’m unsure though if the built-in refresh rate counter is 100% accurate.

Perhaps the dips below the targeted FPS is the reason for the 0.2 secs stutter, which is more noticeable at lower targeted FPS and higher change in FPS. Again, I’m not fully sure about this and would like to know what you think.

Some more info that might be helpful~
GPU: RTX 3090
Driver Version: 551.46
Connection: DisplayPort (tried both cables that came with the old and new monitor but no difference)
Resolution: 3840 x 2160 Native
Refresh Rate: 144Hz Native
G-Sync Mode: On and Fullscreen Only. I heard the Pendulum Demo test overrides the G-Sync setting, in which case only the G-Sync option was used.

Indignified
Member
Indignified

Hello, why do pro players for fps games use uncapped fps instead of these settings? Are there any benefits to using uncapped fps?

Pyerimi
Member
Pyerimi

Also I wanted to ask about what to do in case if ingame FPS limiter has bad implementation and introduce microstuttering like in this case: https://www.reddit.com/r/horizon/comments/i5p6io/pc_psa_do_not_use_the_ingame_fps_limiter_use_rtss/

Should I still use ingame option or RTSS?

Pyerimi
Member
Pyerimi

Hello, thank you for comprehensive guide.
I have three questions. I am using AMD card and freesync premium monitor. I setup V-Sync in driver for every game and lock FPS ingame if there is an option to do so, if not RTSS.

1) Counter-Stike 2 has its own limiter in console, ex: “fps_max 141”. It limits fps, but frametime isn’t as perfect as it is when using RTSS which makes it buttery smooth. The FPS itself stays at 141.
In amd software I turn V-Sync for this game and disable it ingame, and limit fps as I mentioned above ingame.
The question is, is this horrible frametime graph considered a problem when using freesync or it isn’t noticiable while under freesync conditions?
Should I use RTSS and unlock framerate ingame instead?

2) There are games where the option to manually configure FPS value to a precise number is absent.
Only presets, like 30\60\200 and so on. And there is no option to unlock FPS, only these presets.
What to do in this case to limit it to 141? If I set it to 141 in RTSS, will it conflict with the ingame limiter if I set it to lets say 200?
Should we set ingame limiter to max available value in this case and then lock it in RTSS?

3) In Forza Horizon 4 FreeSync seems to be not working, I disable ingame vsync and unlock fps, then limit it to 141 in RTSS and enable vsync in AMD driver, but FreeSync is not activating, I look at monitor OSD and I see 144 hz instead of variable 140-141.
However, AMD driver sets FreeSync option to “AMD optimized” for every game, this option is basically a blacklist for games where freesync allegedly known to be not working properly.
When setting this option to “On” freesync activates and seems to work, but according to my tests it introduces some stutters every now and then.
But the problem is, when I don’t use freesync for this game and set ingame options by default to vsync on and 144 fps preset, I don’t notice any latency added by vsync, meanwhile freesync is not working there.
The question is, could FH4 implementation of Vsync be latency-free and is there any need to force freesync there?

thiezek
Member
thiezek

Hello, good afternoon. Excellent post, I only had one doubt, using a configuration of GSYNC ON + NVCP VSYNC ON and the in-game fps limiter at 237 (I have a 240hz monitor). What should I use in the NVIDIA REFLEX? ON or ON+BOOST? Taking into account that I am already limiting my fps to 237 in-game.
Thanks!

wpDiscuz