G-SYNC 101: In-game vs. External FPS Limiters


Closer to the Source*

*As of Nvidia driver version 441.87, Nvidia has made an official framerate limiting method available in the NVCP; labeled “Max Frame Rate,” it is a CPU-level FPS limiter, and as such, is comparable to the RTSS framerate limiter in both frametime performance and added delay. The Nvidia framerate limiting solutions tested below are legacy, and their results do not apply to the “Max Frame Rate” limiter.

Up until this point, an in-game framerate limiter has been used exclusively to test FPS-limited scenarios. However, in-game framerate limiters aren’t available in every game, and while they aren’t required for games where the framerate can’t meet or exceed the maximum refresh rate, if the system can sustain the framerate above the refresh rate, and a said option isn’t present, an external framerate limiter must be used to prevent V-SYNC-level input lag instead.

In-game framerate limiters, being at the game’s engine-level, are almost always free of additional latency, as they can regulate frames at the source. External framerate limiters, on the other hand, must intercept frames further down the rendering chain, which can result in delayed frame delivery and additional input latency; how much depends on the limiter and its implementation.

RTSS is a CPU-level FPS limiter, which is the closest an external method can get to the engine-level of an in-game limiter. In my initial input lag tests on my original thread, RTSS appeared to introduce no additional delay when used with G-SYNC. However, it was later discovered disabling CS:GO’s “Multicore Rendering” setting, which runs the game on a single CPU-core, caused the discrepancy, and once enabled, RTSS introduced the expected 1 frame of delay.

Seeing as the CS:GO still uses DX9, and is a native single-core performer, I opted to test the more modern “Overwatch” this time around, which uses DX11, and features native multi-threaded/multi-core support. Will RTSS behave the same way in a native multi-core game?

Blur Buster's G-SYNC 101: Input Latency & Optimal Settings
Blur Buster's G-SYNC 101: Input Latency & Optimal Settings
Blur Buster's G-SYNC 101: Input Latency & Optimal Settings

Yes, RTSS still introduces up to 1 frame of delay, regardless of the syncing method, or lack thereof, used. To prove that a -2 FPS limit was enough to avoid the G-SYNC ceiling, a -10 FPS limit was tested with no improvement. The V-SYNC scenario also shows RTSS delay stacks with other types of delay, retaining the FPS-limited V-SYNC’s 1/2 to 1 frame of accumulative delay.

Next up is Nvidia’s FPS limiter, which can be accessed via the third-party “Nvidia Inspector.” Unlike RTSS, it is a driver-level limiter, one further step removed from engine-level. My original tests showed the Nvidia limiter introduced 2 frames of delay across V-SYNC OFF, V-SYNC, and G-SYNC scenarios.

Blur Buster's G-SYNC 101: Input Latency & Optimal Settings
Blur Buster's G-SYNC 101: Input Latency & Optimal Settings
Blur Buster's G-SYNC 101: Input Latency & Optimal Settings

Yet again, the results for V-SYNC and V-SYNC OFF (“Use the 3D application setting” + in-game V-SYNC disabled) show standard, out-of-the-box usage of both Nvidia’s v1 and v2 FPS limiter introduce the expected 2 frames of delay. The limiter’s impact on G-SYNC appears to be particularly unforgiving, with a 2 to 3 1/2 frame delay due to an increase in maximums at -2 FPS compared to -10 FPS, meaning -2 FPS with this limiter may not be enough to keep it below the G-SYNC ceiling at all times, and it might be worsened by the Nvidia limiter’s own frame pacing behavior’s effect on G-SYNC functionality.

Needless to say, even if an in-game framerate limiter isn’t available, RTSS only introduces up to 1 frame of delay, which is still preferable to the 2+ frame delay added by Nvidia’s limiter with G-SYNC enabled, and a far superior alternative to the 2-6 frame delay added by uncapped G-SYNC.



1917 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
vizionblind
Member
vizionblind

Hello,

I have a 165 HZ monitor (the Gigabyte M32Q) and I mostly play FPS games and Open World Games. Just trying to understand if I need to do anything besides enablge gsync and vsync on in NVCP.
https://www.amazon.com/dp/B0968QT6SS?ref=ppx_yo2_dt_b_product_details&th=1

roro13200
Member
roro13200

Hello
I have a 165hz gsync compatible screen, and an rtx 2060.
I mainly play fighting games which are capped at 60fps.
what are the parameters that you advise?
thank you and sorry for my english!

Dan_G_303
Member
Dan_G_303

Hi Jorim, thanks for this guide. I had a question – I have a 144 Hz G-sync compatible screen (AOC AG241QX) but prefer capping to 60 fps, as for some games this is near the max fps my PC can produce, and I prefer a consistent refresh rate no matter the content, rather than running some games at 60 fps and less demanding games at higher fps (this also keeps me from spending too much money on a high end GPU as I’m not always chasing 144 fps !). I have refresh rate in Windows display settings set to 60 Hz too so that just normal desktop use is also consistent.

As far as I understand, for exclusive fullscreen games the Windows refresh rate setting is overwritten and the screen’s max refresh rate is used instead (144 Hz in my case) so that any fps cap ~3fps or more under the screen’s refresh rate will do the job of keeping the fps within the G-SYNC range (for my screen this would be a fps cap anywhere between 141-30 fps and I prefer to set it to 60fps).

However – for games that don’t have proper exclusive fullscreen (or those where borderless fullscreen is more convenient) the refresh rate seems to stick to the Windows display setting (60 Hz in my case). For these games should the fps limit be 57fps, or would 60fps still work?

Also for information – on my screen there appears to not be any built in hardware setting to set the refresh rate (i.e. in the screen’s OSD) – otherwise that would solve it.

Thanks.

SkaKunK
Member
SkaKunK

Hi jorimt. I am Spanish. I hope you understand me well.

I recently bought a LG C1 OLED 120Hz Gsync compatible TV and a nvidia 3060ti. My problem is that I have micro stuttering and it seems strange to me because while the Afterburner statistics say that I am playing for example at a constant 60fps 16.6, in the GSYNC menu of the TV I can see that the fps vary a lot and all the time; 63,70,57 , 52.

In some games they vary less than in others. I’m confused. I thought they would vary from 59 to 60 at most. How can it be that on the PC it tells me a constant 60fps 16.6ms and on the TV it doesn’t? I just activate vertical sync in the game (without GSYNC) and RTSS limiter at 60fps and I feel it better and smooth.

What could be the problem?. Thanks for advance 🙂

gsyncnoob2
Member
gsyncnoob2

Hello @jorimit,

Thanks for putting those together really helpful!

I used G+VSYNC in NVCP and in game(world of tanks) fps_max @141, however I noticed that the fps is staying at 124-125hz on my 144hz monitor, if I change fps_max to 144, it stables at 143-144hz, I am kinda new to gsync, but is it the expected behavior? I thought this setup should stay at 144hz.

Thanks!

wpDiscuz