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


Closer to the Source

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.



220 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
gen36
Member
gen36

Hi, I have a question about limiting frame rate at (refresh rate – 3).

My understanding is that if FPS > refresh rate, GSYNC defaults to VSYNC behavior (if VSYNC is enabled in Nvidia CP), which can result in additional input lag.

But I have some confusion on this. Example scenario:

– 144 Hz monitor.
– I’m playing an undemanding game, VSYNC OFF, and get 200 FPS.
– I turn on GSYNC + VSYNC, and get 144 FPS.
– With GSYNC + VSYNC on, is it defaulting to VSYNC ON behavior? Frame rate is not exceeding refresh rate but *would have* if vsync was off.

(My confusion is coming from the section in the FAQ saying if your frame rate exceeds refresh rate, to cap at a value lower than refresh rate, but if vsync is on, FPS doesn’t exceed refresh rate anyway)

Silver3
Member
Silver3

I was wondering if you could explain me a very persistent Frametime-Spiking-relating issue I’ve got recently with the console-emulator Cemu that I am tearing my hair out about at this time.

[… original comment modified here for length; view below comment reply for pertinent details w/follow-up…]

Sorry btw for that wall of text, but I am quite at my wit’s end by now on my way comprehending other/similar builds’ success although they probably don’t care half of that, pc-related, the way I do and I seemingly checked all of your mentioned points possibly causing frametime-spikes
and will continue with the hardware-part tomorrow.
If you have any suggestion that merely could hint in a direction I overlooked, PLEASE let me know.

Thank you for reading.

Skwuruhl
Member
Skwuruhl

On the topic of FPS limiters: Two tests have been done somewhat recently that found that RTSS provides more consistent frame times than in-game limiters do (at the expense of 1 frame of input lag)
https://youtu.be/xsXFUVYPIx4
https://www.reddit.com/r/Competitiveoverwatch/comments/9vcxz5/rtss_vs_ingame_fps_cap_or_frame_limit/
What’s your take on these?

rpate124
Member
rpate124

What value should the frame time limit be set to in rtss?

GITS_2501
Member
GITS_2501

Amazingly detailed, thanks for the guide. Is there a difference between having V-SYNC: ON versus VSYNC: Fast?

Thanks heaps.

wpDiscuz