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.



3006 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
dandyjr
Member
dandyjr

Hey Jorimt, I have a question regarding the issue of avoiding the G-Sync ceiling.

I recently purchased a 280Hz Freesync monitor (it’s not official G-Sync Compatible but after testing in multiple games, it seems to mirror my 144Hz officially G-Sync Compatible monitor in accuracy) and I’ve noticed an issue that has happened on previous monitors I’ve owned as well.

This monitor doesn’t have an OSD that I can have toggled on at all times so I had to manually open the menu to check each time but I’ve noticed that there are multiple moments where the refresh rate will read as 280Hz instead of whatever framerate the game is reading as at the time.

For example, I tried with in-game and external limiters, I can cap the frames at 240fps and the game will read as 240fps but when I open the menu of the monitor, it reads as 280Hz for that moment (causing me to believe that G-Sync has disabled in that moment and Vsync has toggled on). Then I’ll close the menu and reopen it and then the refresh rate will read as some variation under the 280Hz ceiling. That lets me know that G-Sync does engage, but there are moments where it’s not engaging even when it should.

I tested this in multiple games with multiple forms of framerate caps and noticed the same trend. The closer I capped to 280Hz, the more times I would see 280Hz in the monitor. The only way to stop it from happening was to cap the framerate far below the ceiling. Capping at 277fps, for example, in RTSS caused the 280Hz readout to never change at all (which would indicate that G-Sync was not engaging) which caused me a lot of frustration.

I would think that it’s possibly due to the monitor not being offically G-Sync Compatible but the same issue would happen with my 144Hz monitor as well (with lower framerates of course because the ceiling is lower) and that monitor had an OSD that I could leave toggled on. I would see the numbers rapidly change and by watching very closely, you could see the 144Hz flash multiple times within the mixture.

Am I overthinking this or are the monitors actually reading correctly and G-Sync is disengaging and re-engaging constantly even with framerate caps below the ceiling?

It’s sad to think that the 280Hz ceiling is useless because framerates need to be capped far below the ceiling even with external limiters that appear to be perfect in execution.

TkoSeven
Member
TkoSeven

Thanks for the wonderful article.

2 questions!

Adjust desktop size and position section,
“Perform scaling on: Display or GPU” (also override the scaling mode set by games and programs)
does it matter in terms of how g-sync monitor
interacts with GPU?

2nd question on “Max frame rate” on Nvidia settings,
if a game was designed to be locked at 60fps, like Tekken 8,
Nvidia panel set to 58 fps, does it work by limiting frame data transferred to display even though
the logic of the game (application) actually went through generating data for 60 frames?
or
does it actually limit the game to only generate 58 frames?

thank you in advance.

eeayree
Member
eeayree

Hi jorimt. I myself am from another country and therefore I hope that the translator will do his job correctly. Now I’m playing Metro 2033 and this game can produce from 80 to 120 fps on my system and at the same time the GPU is not working at full capacity. It works within 85 percent. Your tuning guide states that it is best to enable low latency mode in cases where the frame rate does not always reach or exceed the refresh rate. Am I doing the right thing if I leave low latency mode on if the video card is not loading at 99%? And at what percentage values ​​does the delay appear exclusively at 99%? On 95, 96, 97 will everything work with minimal delays?

SovonHalder
Member
SovonHalder

HI jorimt, I can’t thank you enough for writing this article. I read pages 1 through 15 multiple times to understand as much as I cound and i’t’s incredibly useful for folks like me who are new to PC gaming. Just wanted to acknowledge that adn say many thanks brother.

So I set up things for my 144hz 32GR93U exactly as you described: In nvcp Gsync+Vsync+Low latency ultra and the in game Vsync, double or triple buffering off and fullscreen on. I have 2 questions basically.

1. In most games I’ve tried so far like alan wake 2, god of war, stray the fps is capped automatically to 138 as it should but in red dead online (vulkan) it maxes out at 144. I use rtss to set it custom 138 but the question remains. Why doesn’t it happen automatically?

2. The new nvidia app reports an Average PC Latency in their overlay. For me above 60ms with mouse and controller feels sluggish whereas when it’s below 30ms the game feels much more responsive. I want to implement that on my RTSS stat overlay. (I find rtss overlay more robust and feature rich and I can see frametime grap and nvidia overlay is finicky and slow.) Could you share some insight as to how they are calculating that number?

Ezi
Member
Ezi

I have a question, so i did the settings you suggested and my gpu usage went from 99% usage to hovering around 70-88ish. Is this normal? Cause if i were to default everything back, the usage would go back to 99%

these are the settings i have in NCP:
– vsync on in NCP, off ingame
– set fps limiter -3
– gsync enabled – full screen
– LLM set to ultra since ingame doesnt have a limiter

my pc spec is:
– 4080 super FE
– 7800x3D
– M32U 4k 144hz monitor

wpDiscuz