RTSS vs in-engine framerate capping

Talk about NVIDIA G-SYNC, a variable refresh rate (VRR) technology. G-SYNC eliminates stutters, tearing, and reduces input lag. List of G-SYNC Monitors.
User avatar
RealNC
Site Admin
Posts: 3740
Joined: 24 Dec 2013, 18:32
Contact:

Re: RTSS vs in-engine framerate capping

Post by RealNC » 30 Jun 2017, 04:27

tygeezy wrote:Does vsync below the monitors refresh rate have the same input lag as non vsync?
No. It has higher input lag. For example, 120Hz with 1/2 refresh vsync has almost the same input lag as a 60Hz monitor. "Almost the same" means it's slightly better, since at 120Hz you have a higher scanout speed for each frame. On average, 120Hz with 1/2 vsync has ~4ms lower input lag compared to 60Hz with normal vsync.
Also, back to what you said about controlling the threshold of adaptive vsync. Can consoles games do this?
I assume they can. My console-fu is not good enough to know for sure, but I can't think of a reason as to why not. Vsync is something that can be switched on and off at will. A game can check how long it took to render the frame, and if it's higher than a threshold value, it can present it with a 0 present interval (meaning vsync off.)
Also, on my gsync monitor when I went to that vsync tester site I was getting 70ish hz on my monitor which is 144 hz. I'm assuming that's because I had it in gsync mode and that's the framerate I was getting. Although for gsync I only have full screen enabled and not full screen plus windows so I would think it wouldn't be enabled just in my desktop.
No. That's not how it works. You probably used an incompatible browser, or you're using Windows 7 with aero disabled (it needs to be enabled for the test), or you have GPU acceleration disabled in the browser.

Chrome and Firefox should work fine with that test. Other browsers will probably not work.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
tygeezy
Posts: 104
Joined: 29 Feb 2016, 21:56

Re: RTSS vs in-engine framerate capping

Post by tygeezy » 30 Jun 2017, 04:40

RealNC wrote:
tygeezy wrote:Does vsync below the monitors refresh rate have the same input lag as non vsync?
No. It has higher input lag. For example, 120Hz with 1/2 refresh vsync has almost the same input lag as a 60Hz monitor. "Almost the same" means it's slightly better, since at 120Hz you have a higher scanout speed for each frame. On average, 120Hz with 1/2 vsync has ~4ms lower input lag compared to 60Hz with normal vsync.
Also, back to what you said about controlling the threshold of adaptive vsync. Can consoles games do this?
I assume they can. My console-fu is not good enough to know for sure, but I can't think of a reason as to why not. Vsync is something that can be switched on and off at will. A game can check how long it took to render the frame, and if it's higher than a threshold value, it can present it with a 0 present interval (meaning vsync off.)
Also, on my gsync monitor when I went to that vsync tester site I was getting 70ish hz on my monitor which is 144 hz. I'm assuming that's because I had it in gsync mode and that's the framerate I was getting. Although for gsync I only have full screen enabled and not full screen plus windows so I would think it wouldn't be enabled just in my desktop.
No. That's not how it works. You probably used an incompatible browser, or you're using Windows 7 with aero disabled (it needs to be enabled for the test), or you have GPU acceleration disabled in the browser.

Chrome and Firefox should work fine with that test. Other browsers will probably not work.
back before I had this gsync monitor I had a 60 hz monitor. I used rtss to cap the fps at 60 and noticed a big difference. So if I found out my exact refresh rate and reduced the cap by .007 it would reduce the input lag even further from what I remember? I tried putting the cap at 61 once to see the input lag and it was just as bad as noncapped 60 hz vsync. So I had always assumed capping at the exact refresh rate was the way to go.

Do you have an idea how much more input lag 59 fps on a 60 hz monitor with vsync would have over 59 fps with no vsync?

Thanks for staying up late answering my questions.

User avatar
RealNC
Site Admin
Posts: 3740
Joined: 24 Dec 2013, 18:32
Contact:

Re: RTSS vs in-engine framerate capping

Post by RealNC » 30 Jun 2017, 05:03

tygeezy wrote:back before I had this gsync monitor I had a 60 hz monitor. I used rtss to cap the fps at 60 and noticed a big difference. So if I found out my exact refresh rate and reduced the cap by .007 it would reduce the input lag even further from what I remember? I tried putting the cap at 61 once to see the input lag and it was just as bad as noncapped 60 hz vsync. So I had always assumed capping at the exact refresh rate was the way to go.
If you cap exactly at refresh rate, you usually get a latency between 1 and 2 frames. If you cap below, you get a latency between 0 and 1 frames. (In both cases, the latency varies over time, since the monitor's refresh rate and the game's frame rate are always going to be out of sync; once in a while they match, then they drift apart again in a cyclic manner.)
Do you have an idea how much more input lag 59 fps on a 60 hz monitor with vsync would have over 59 fps with no vsync?
On average, it's half the monitor refresh interval. For 60Hz, that would be 8.33ms less average input lag (16.7/2). Best-case difference is 0ms, and worst-case is 16.7 (hence why the average is 16.7/2.)

A 59FPS cap introduces stutter though. You get the same latency benefit with a Hz - 0.007 cap but without the stutter. (Technically, that also has stutter, but each "hiccup" is spaced so far apart that it disappears among the noise of the natural frame time variance you get in virtually every game out there.)
Thanks for staying up late answering my questions.
It's 1pm here ;)
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: RTSS vs in-engine framerate capping

Post by jorimt » 30 Jun 2017, 09:16

tygeezy wrote:Why is RTSS so much better than just about any other program or in-engine solution when it comes to frame-rate capping? The only game i've found that has a lock on frametimes when you use the in-engine solution is dishonored 2 when I set my framerate cap to 75 in dishonored 2 I get a lock 13.33 ms frametimes.

With just about any other in game capper I get frametimes that are bouncing all over the place. The only downside to RTSS is that it seems to add 5-7 MS of input lag; which is very negligible. Other framerate cappers like using nvidia inspector seem to add double the input lag that RTSS does.

So why is it that RTSS is so much better than anything else out there and why are the majority of games that have built in framerate capping capabilities so bad?
Just to clarify something here, RTSS is almost never superior to an in-game cap, let alone just because it has more stable frametimes.

RTSS is more "accurate" than an in-game limiter, because it has to be to function the way it does. In-game limiters, unlike RTSS, set an internal framerate target, whereas RTSS can only set a frametime target.

RealNC is entirely correct that RTSS actually reduces latency over uncapped at the same framerate (as long as RTSS is the limiting factor). But again, RTSS adds latency over an in-game limiter for the very fact that it limits frametimes.

In-game limiters are at the level of the engine where the actual render time of a frame is calculated. When you set an in-game framerate target, the in-game limiter can actually intercept the frame before rendering has begun and, as long as the GPU can keep up, continuously output the given framerate target.

Unlike RTSS, in-game limiters can exceed the frametime of the framerate limit, and while this gives the appearance of more unstable frametimes, in-game limiters can utilize those excess frames (lower frametimes) to deliver the frames faster; the higher the framerate from the GPU (regardless of the current framerate target/limit), the lower the potential latency with an in-game limiter is, as long as it is the limiting factor.

This is mostly why in-game limiters are almost always lower lag than RTSS, so it isn't as simple as RTSS frametimes are "better" than in-game limiters. And while the steady frametimes of RTSS could theoretically help with fixed refresh rate V-SYNC, since G-SYNC functions the way it does, these tiny frametime fluctuations don't make a dent, and thus, with G-SYNC, you're usually better off with the in-game limiter over RTSS, if available.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

User avatar
tygeezy
Posts: 104
Joined: 29 Feb 2016, 21:56

Re: RTSS vs in-engine framerate capping

Post by tygeezy » 30 Jun 2017, 11:44

jorimt wrote:
tygeezy wrote:Why is RTSS so much better than just about any other program or in-engine solution when it comes to frame-rate capping? The only game i've found that has a lock on frametimes when you use the in-engine solution is dishonored 2 when I set my framerate cap to 75 in dishonored 2 I get a lock 13.33 ms frametimes.

With just about any other in game capper I get frametimes that are bouncing all over the place. The only downside to RTSS is that it seems to add 5-7 MS of input lag; which is very negligible. Other framerate cappers like using nvidia inspector seem to add double the input lag that RTSS does.

So why is it that RTSS is so much better than anything else out there and why are the majority of games that have built in framerate capping capabilities so bad?
Just to clarify something here, RTSS is almost never superior to an in-game cap, let alone just because it has more stable frametimes.

RTSS is more "accurate" than an in-game limiter, because it has to be to function the way it does. In-game limiters, unlike RTSS, set an internal framerate target, whereas RTSS can only set a frametime target.

RealNC is entirely correct that RTSS actually reduces latency over uncapped at the same framerate (as long as RTSS is the limiting factor). But again, RTSS adds latency over an in-game limiter for the very fact that it limits frametimes.

In-game limiters are at the level of the engine where the actual render time of a frame is calculated. When you set an in-game framerate target, the in-game limiter can actually intercept the frame before rendering has begun and, as long as the GPU can keep up, continuously output the given framerate target.

Unlike RTSS, in-game limiters can exceed the frametime of the framerate limit, and while this gives the appearance of more unstable frametimes, in-game limiters can utilize those excess frames (lower frametimes) to deliver the frames faster; the higher the framerate from the GPU (regardless of the current framerate target/limit), the lower the potential latency with an in-game limiter is, as long as it is the limiting factor.

This is mostly why in-game limiters are almost always lower lag than RTSS, so it isn't as simple as RTSS frametimes are "better" than in-game limiters. And while the steady frametimes of RTSS could theoretically help with fixed refresh rate V-SYNC, since G-SYNC functions the way it does, these tiny frametime fluctuations don't make a dent, and thus, with G-SYNC, you're usually better off with the in-game limiter over RTSS, if available.
Source engine framerate cap seems to be particularly inaccurate. If I cap with rtss at 140 I get a lock 7.14 ms pretty much locked. With the in game capper at 140 the frametimes bounce between 9 and 11 with it never going below 9 ms.

Dishonored 2 has a great framerate capper. It doesn't have as many options as other cappers, but the rates it can set seem to be more accurate. I settled in on 75 fps with some graphic tweak to hit that rate at all times and it's locked at 13.33 ms frametimes.

User avatar
tygeezy
Posts: 104
Joined: 29 Feb 2016, 21:56

Re: RTSS vs in-engine framerate capping

Post by tygeezy » 30 Jun 2017, 12:38

@jorimt Would frame times that are faster than your monitors refresh rate cause tearing if you have gsync on vsync off and input lag if you were gsync on vsync on?

Also, in further inspection in seeing a discrepancy between my on screen display of frame times and my keyboards LCD display of frametimes. The on screen display doesn't seem to be picking up random frametimes spikes while the keyboard LCD display does.

They actually never seem to be in sync even though it's very hard to view both at the same time.

Cs go I see random spikes that hit 33 and even 40 ms where the monitor display doesn't pick those up at all. I feel like the keyboard is more accurate because I can feel those random hiccups in csgo.

I think that game is a stuttery mess because I got the same random stutters with my old i7 860 system that I do on my new 7700 k system.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: RTSS vs in-engine framerate capping

Post by Chief Blur Buster » 30 Jun 2017, 13:27

RealNC wrote:On 60Hz monitors, you have:

1/2 for 30Hz vsync.
1/3 for 20Hz vsync.
1/4 for 15Hz vsync.

As you can guess, only 1/2 is useful for 60Hz monitors.
Unfortunately, they tend to be very laggy modes, even worse during 1/3 and 1/4.

Our preferred technique is frame capping instead.

Much less laggy method of achieving 15fps or 20fps or 30fps.

Especially if capped during GSYNC/FreeSync mode when scanout is at its max Hz. That way, even if you're running at say, 30fps, your framebuffers are delivered immediately & scanned-out at the max refresh speed (e.g. each 30fps frame scanned-out in 1/240sec on a 240Hz monitor). The low framerate compensation logic now available in several FreeSync/GSYNC implementations.

While quarter-VSYNC is useful for 60fps cap at 240Hz, but a framerate cap is always much lower lag than the traditional "1/4 VSYNC ON" method.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

User avatar
tygeezy
Posts: 104
Joined: 29 Feb 2016, 21:56

Re: RTSS vs in-engine framerate capping

Post by tygeezy » 30 Jun 2017, 13:38

Chief Blur Buster wrote:
RealNC wrote:On 60Hz monitors, you have:

1/2 for 30Hz vsync.
1/3 for 20Hz vsync.
1/4 for 15Hz vsync.

As you can guess, only 1/2 is useful for 60Hz monitors.
Unfortunately, they tend to be very laggy modes, even worse during 1/3 and 1/4.

Our preferred technique is frame capping instead.

Much less laggy method of achieving 15fps or 20fps or 30fps.

Especially if capped during GSYNC/FreeSync mode when scanout is at its max Hz. That way, even if you're running at say, 30fps, your framebuffers are delivered immediately & scanned-out at the max refresh speed (e.g. each 30fps frame scanned-out in 1/240sec on a 240Hz monitor). The low framerate compensation logic now available in several FreeSync/GSYNC implementations.

While quarter-VSYNC is useful for 60fps cap at 240Hz, but a framerate cap is always much lower lag than the traditional "1/4 VSYNC ON" method.
but what if you're playing on say a 60 hz television set but you can't run the game at a consistent 60 fps? So you cap the framerate at half your refreshrate minus .007 and then use half refresh vsync?

User avatar
RealNC
Site Admin
Posts: 3740
Joined: 24 Dec 2013, 18:32
Contact:

Re: RTSS vs in-engine framerate capping

Post by RealNC » 30 Jun 2017, 14:01

Chief Blur Buster wrote:Unfortunately, they tend to be very laggy modes, even worse during 1/3 and 1/4.[

Our preferred technique is frame capping instead.
Capping will result in stutter, even if the cap is half the Hz. These vsync modes are the only way to get smooth animation.

Note that there's no input lag increase with 1/2 vsync at 120Hz compared to normal vsync at 60Hz. In fact, it's a bit lower due to the faster scanout speed.

And G-Sync is not an option with 3D vision. It's one of the other. If you want 30FPS with 3D vision, 1/2 vsync is the only way to do it without microstutter.
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
tygeezy
Posts: 104
Joined: 29 Feb 2016, 21:56

RTSS vs in-engine framerate capping

Post by tygeezy » 30 Jun 2017, 14:06

RealNC wrote:
Chief Blur Buster wrote:Unfortunately, they tend to be very laggy modes, even worse during 1/3 and 1/4.[

Our preferred technique is frame capping instead.
Capping will result in stutter, even if the cap is half the Hz. These vsync modes are the only way to get smooth animation.

Note that there's no input lag increase with 1/2 vsync at 120Hz compared to normal vsync at 60Hz.

And G-Sync is not an option with 3D vision. It's one of the other.
Did you see what I wrote about my frametime monitoring difference between my keyboard LCD display and my monitors display?

That message should have been addressed to both of you :)

Post Reply