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/App; labeled “Max Frame Rate,” which 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 Profile 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.



3857 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
asari7k
Member
asari7k

im still a bit confused. so i want to play dbfz at the lowest latency possible bc its a fighting game capped at 60 fps and im playing on a 240hz monitor. so whats better g sync + v sync (in ncvp) on with low latency mode on ultra or just disable g sync and v sync but low latency stil on ultra . bc ive seen some videos on youtube that tested capped 60fps games at higher refres rate and it gives lower latency so when i use g sync is automaticly caps it at 60hz so doesnt that just completly ruin the g sync vs v sync setup ?

user2422
Member
user2422

Thanks for the comprehensive guide.

I have some questions on two topics:

1. If i have a 320Hz monitor with G-Sync enabled and play let’s say Apex Legends capped at 240 fps and can’t notice any obvious screen tearing, is there any reason to still use V-Sync in this scenario? From my understanding the latency in this scenario should be roughly the same whether V-Sync is enabled or disabled, so could it potentially have any other up or downsides? Also regarding this question, the increase in smoothness that is often shown with the optimal G-Sync configuration, is that due to the VRR or is it caused by the combination of G-Sync + V-Sync?

2. There seems to be a lot of situational use for some of these settings, so with all your knowledge and own personal experience over all those years now, what are you personally using when it comes to settings like LLM, Reflex, Windows VRR toggle, in-game vs driver V-Sync, what framerate limiters to use and what value to cap to?

Iriodus
Member
Iriodus

So, 2 separate but related questions:

1) For games that use the Vulkan renderer, like Doom Eternal, should we be using borderless fullscreen or exclusive fullscreen?

2) Not sure if you’d know the answer to this one, but since Proton on Linux uses a DirectX-to-Vulkan translation layer, should people use the recommendation for question 1 above, or say if a game is DirectX11 before taking into account the DX-to-Vulkan translation do use Fullscreen/Exclusive Fullscreen as if we were on Windows.

For reference, I’ve replicated the optimal G-Sync setup on my Linux machine, and since switching I’ve just been doing “If it’s originally DX11 or lower? Fullscreen/Exclusive Fullscreen. If it’s originally DX12? I use borderless fullscreen”

ksydew
Member
ksydew

Sorry for posting so much but I have one last question, I just bought the acer Nitro XV275U F5BIIPPRX, it’s a free sync premium Pro monitor but isn’t g sync certified. It should still work with g sync no problem right? I have it turned on same usual settings, g sync indicator is working and on in the top right corner, but just want to make sure it’s fine? It seems like it is but I’m not the expert

ksydew
Member
ksydew

With the newest drivers nvidia has now gotten rid of the nvidia control panel. Does this change anything for how to implement g sync? Has it changed any behavior to your knowledge? I keep g sync on, v sync on and use a frame rate limiter of RTSS. I also use v sync globally. I just had to use DDU due to sudden instability after installing the newest drivers and that’s when I found out nvcp was missing.

wpDiscuz