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.



2036 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
domfak
Member
domfak

Hello,

Want to thank you for all the info in this page.
Also I have couple of questions:

I got RTX 3080 + 165hz monitor, I am having those tearing lines on my low side of display if I play with GSync + uncapped fps. Sometimes it feels like stuttering. So I decided to try your method.
But where are some issues in game COD: Warzone:

1) GSync On + Vsync ON + LLM (Ultra) + Reflex On + Boost – caps my FPS in game at 60. Why?

2) GSync On + Vsync FAST + LLM Ultra + Reflex On+ Boost – I can cap myself at 161fps as you proposed. And FPS are dipping from 140 to 161. Also with thise method I found that blur line in the bottom of the screen still exist.

What is difference between VSync ON / VSync Fast?
Will I get more input delay in this case?
Also can I feel that option with Gsync + Vsync has more input delay on my mouse or it is only placebo?

Thanks for an answer.

majkool
Member
majkool

1. So with 390Hz monitor input lag with GSYNC + VSYNC and 386fps game limitter is nearly the same like with GSYNC/VSYNC off and fps_max 0 in CSGO.
2. I know that with 240Hz monitor there is a few ms delay with these options but I think it’s still better to accustom to it and play on a pro level?

AgentDaumer
Member
AgentDaumer

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.

I’m surprised that a framerate limit just 2-3 FPS below the monitor’s refresh rate can actually prevent G-Sync from hitting that threshold and reverting to V-Sync behaviour. Using RTSS I noticed that a 140 FPS cap (in-game) will still allow the framerate to fluctuate and reach pretty high values, often higher than 160 FPS. Even a 120 FPS cap still exceeds 144 every couple seconds.
It happens intermittently of course, the frametimes are constantly fluctuating (as they should) and the average framerate is still respecting the limit.
However, wouldn’t those big spikes mean that G-Sync is frequently engaging and disengaging all the time? Am I missing something?

Unneverseen
Member
Unneverseen

How is the latency for competitive fps games with 141fps limit (i have 144hz monitor) and Gsync and nvcp vsync on? should i disable fps limit and nvcp vsync for less latency? also do you set Max Frame Rate, low latency mode, and vsync globally or per game basis? also i heard that fps limit improving latency depends on the game, some it might give worse latency some its better latency. thanks for the article

YormFatigue
Member
YormFatigue

Hello Jorimt, thanks for your article, it’s great, now I know more about this kind of Technology and am less confused of it.
But anyway, I want to confirm something, and hope you will answer it.
I use Freesync monitor 144HZ, based on what I learn, so it’s just the same as G-sync. When I play games, one thing I absolutely want to get rid of is microsutter, even after using VRR, I still have it to this day, when reading your article, I think I know the cause, and I know it may be unavoidable, but I want to be clear to it. So, these are my cases:
– When I play some games, I suffer occasional microsutter and sometime occasional tearing, of course I turn Freesync on, but it still remains as is, turning on V-sync will make that “occasional tearing” become microsutter as well, using fps limiter to limit the fps which is far lower than what point my specs can archive. My question is what makes that behavior? Is It the game’s problem that creates great frametimes variance and frametimes spikes? And additional info, some games I played have are kind of weird, that the lower fps is, the smoother the game is,
– There are also games that will present microstutter no matter what fps is, take an example of The Witcher 3, my specs can reach 60+ fps, so good idea that I should cap it just to 60 (I do it in almost game anyway) and it still has microstutter, then I tried to apply the weird way I state above, tried lowering fps, as low as I can play (well – 30fps), and still no good, microstutter is still there. So is it my system’s fault or the game’s fault?
And one last thing I want to share, based on what I’ve experienced so far (not read or learn), is I am pretty sure that fps limiter can somehow help Freesync in terms of smoothness, even it is below the targeted fps. I am talking about AMD framerate target control – FRTC for short, which is the smoothest framerate limiter (and It comes with the biggest latency), on my test, In the same game, in the same place of the game, I used 4 fps limiter: In-game, Chill with max-min equal, RTSS, FRTC, I saw that with FRTC, there is almost no microstutter no matter what fps, Chill and RTSS are pretty same as each other – comes with microsutter, but Chill does have less than RTSS and RTSS seems to have little smoother images when rotating camera, in-game is the father of microstutter.
I find that interesting, and I turn off Freesync to see what would happen. Well, with FRTC, tearing would present as one line tear which is incredibly stable, if fps can reach the target, even below tearing is still pretty stable. With Chill, tearing at almost time will present as two pretty small tearing at two position of the monitor, one upper and one lower. With RTSS, tearing gathers its power at one position of monitor and “dances” at that point. This behavior applies to almost all games, or so I’ve seen so far, and with that information, I think it is not silly to assume that fps limiters somehow affect or help Freesync or G-sync.
Thanks for taking your time to go through my long comment, there are maybe mistakes as English is not my primary Language, hope I did not make too much of it.
And Happy New Year.

wpDiscuz