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
jorimt
Posts: 2481
Joined: 04 Nov 2016, 10:44
Location: USA

Re: RTSS vs in-engine framerate capping

Post by jorimt » 30 Jun 2017, 19:54

tygeezy wrote:Okay, I should really go through the entire article from cover to cover before I come back with more questions. Thanks for answering everything I've thrown your guys way and I appreciate all the work you guys have out in. There are tons of false information that seems to float around forums and reddit regarding vsync, gsync ect.

I'm glad it's not just me that gets these random frametime spikes. Although cs go (source engine) appears to be a particularly bad offender. Overwatch is really a lot smoother and more consistent with a better framerate capper. It is newer, so I guess that's to be expected.
Sure thing, I'll be happy to answer any follow-up questions you might have after you read through the series more thoroughly.
(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 » 16 Jan 2018, 15:35

Alright, bumping this thread again because i'm thinking of getting a steam link and I want to have the least amount of latency possible. My guess would be to find out whatever my televisions refreshrate is and subtract .007 fps from that in RTSS.

From what I gather steamlink puts on vsync and this can't be disabled. My pc will be connected via wire to the router, but my tv is downstairs, and i'm not running a wire that far. I'll probably also test it in my bedroom with both the steamlink and pc being wired to the router.

This probably isn't the best section, but could anybody recommend a good router? Right now i'm just using comcasts tele router, but I wanted to put that in bridge mode and pick up a good wireless router to help avoid ping spikes when other people stream. I figured I can put the steamlink on the 5ghz band and everything else on the 2.4 ghz.

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 » 16 Jan 2018, 17:11

tygeezy wrote:My guess would be to find out whatever my televisions refreshrate is and subtract .007 fps from that in RTSS.
You need to measure the refresh rate via http://www.testufo.com/refreshrate in a compatible web browser (with VSYNC support).

Unfortuantely, you cannot control refresh rate via steamlink....but you might be able to slightly reduce the codec lag on the PC-side. No guarantees.

It depends on whether the HOWTO: Low Lag VSYNC ON allows delivery of frames sooner to the video encoder for streaming games -- it might reduce streaming lag by 1 frame, but unfortunately no guarantees -- streaming codecs vary quite a lot on how they begin to encode frames. This only works if it is running in mirroring mode (e.g. displayed locally on your monitor concurrently with streaming to the TV). In this case, don't worry about the TV refresh rate, instead worry about the PC refresh rate. Even that may not work. You can also attempt an arbitrary number such as 59.9 since some game streaming use a hardcode of "60.0" with no refresh rate sync -- and see if that reduces streaming lag by 1 frame (~1/60sec).

For low lag streaming, get a high performance router. And preferably Ethernet hardwire instead of WiFi. This will be more important in households that do other things at the same time (e.g. streaming netflix at the same time as you're streaming gameplay).

Certainly, this is not CS:GO stuff or heavy competitive stuff, as there will always be a codec lag, but it can be usable for solo games in situations where you can't run a 100 foot HDMI run. (There's fiber optic HDMI cables now, as another option that has less lag than streaming).
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 » 16 Jan 2018, 17:50

Chief Blur Buster wrote:
tygeezy wrote:My guess would be to find out whatever my televisions refreshrate is and subtract .007 fps from that in RTSS.
You need to measure the refresh rate via http://www.testufo.com/refreshrate in a compatible web browser (with VSYNC support).

Unfortuantely, you cannot control refresh rate via steamlink....but you might be able to slightly reduce the codec lag on the PC-side. No guarantees.

It depends on whether the HOWTO: Low Lag VSYNC ON allows delivery of frames sooner to the video encoder for streaming games -- it might reduce streaming lag by 1 frame, but unfortunately no guarantees -- streaming codecs vary quite a lot on how they begin to encode frames. This only works if it is running in mirroring mode (e.g. displayed locally on your monitor concurrently with streaming to the TV). In this case, don't worry about the TV refresh rate, instead worry about the PC refresh rate. Even that may not work. You can also attempt an arbitrary number such as 59.9 since some game streaming use a hardcode of "60.0" with no refresh rate sync -- and see if that reduces streaming lag by 1 frame (~1/60sec).

For low lag streaming, get a high performance router. And preferably Ethernet hardwire instead of WiFi. This will be more important in households that do other things at the same time (e.g. streaming netflix at the same time as you're streaming gameplay).

Certainly, this is not CS:GO stuff or heavy competitive stuff, as there will always be a codec lag, but it can be usable for solo games in situations where you can't run a 100 foot HDMI run. (There's fiber optic HDMI cables now, as another option that has less lag than streaming).
I certainly don't plan to play competitive games this way. I might try something like battlefield, but it will mostly be for single player games using a steam controller.

Are there any routers in particular you had in mind? I would probably have to do wireless for the steam-link because the router would be upstairs and I don't want to run wires that far.

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

Re: RTSS vs in-engine framerate capping

Post by RealNC » 16 Jan 2018, 19:48

I thought with steam link you can just disable vsync? The screen capture is going to only grab whole frames anyway? I think? It uses the same method as NVidia Shadowplay (or whatever it's called these days), which never tears.

So try vsync off with RTSS set to the exact Hz of the TV to minimize micro-stutter. Worth a try. If that works, then it's going to give you the lowest input lag possible.
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 » 17 Jan 2018, 02:27

RealNC wrote:I thought with steam link you can just disable vsync? The screen capture is going to only grab whole frames anyway? I think? It uses the same method as NVidia Shadowplay (or whatever it's called these days), which never tears.

So try vsync off with RTSS set to the exact Hz of the TV to minimize micro-stutter. Worth a try. If that works, then it's going to give you the lowest input lag possible.
According to battlenonsense he was unable to turn off vsync when using the steam link. Then again, the video is old, so maybe changes have been made, and the official steam page suggests turning off vsync.

Which makes me think that finding my TVs refreshrate and subtracting .007 FPS and capping it at that value will give me the smoothest possible picture with lower input lag.

You certainly shouldn’t be getting over 140 ms of input lag at 60 hz with the correct settings.

https://youtu.be/ogNT6w4bzIs


Sent from my iPhone using Tapatalk

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 » 17 Jan 2018, 14:50

tygeezy wrote:Which makes me think that finding my TVs refreshrate and subtracting .007 FPS and capping it at that value will give me the smoothest possible picture with lower input lag.
tygeezy, that is not how things work for streaming situations.

....."Finding my TV's refresh rate"

Streaming fully decouples the originating streaming rate from destination refresh rate!
As a result, there's no such thing as "finding my TVs refresh rate" from the relative perspective of the PC sending a stream.

Often, stream players will play at a frame rate independent of the TV's refresh rate, which means things like 59.976164 frames per second may be played on 60.00012367 Hertz signal. That's what happens with YouTube videos. The camera frame rate is often decoupled from end user's display refresh rates. Compensation (matching) is often by slightly slowing down/speeding up the frame rate, or simply by frame dropping (once every few seconds or few minutes). Occasionally, a few streaming boxes will switch refresh rates to match frame rates of the real-time video stream, but this is exceedingly rare, especially with Linux-powered streaming boxes which usually do not "genlock" the destination display to the originating display over a stream. Even if it did genlock, the best approach is to genlock to the ORIGINATING system's rate, not the DESTINATION display's rate.

So a person is asking the wrong question when you say "I want to find my TV's refresh rate" when it's pretty much decoupled and won't help the Low-lag VSYNC ON howto if you're doing a streaming method. Basically the TV's refresh rate tends to become useless for the Low-Lag VSYNC ON HOWTO, when streaming is involved.

The PROPER approach for reducing streaming lag (by about 1 frame) is usually either (A) or (B).

(A) Sync at the originating end, not the destination end of streaming
(basically the originating PC refresh rate)

--or--

(B) Cap at a frame rate slightly lower than the codec frame rate.
(basically the streaming codec refresh rate)


Additional Tip: VSYNC is decoupled, but it can still reduce lag slightly if you do it anyway. If you can, then also turn VSYNC OFF in the video game and drivers, even if the streaming is VSYNC ON on destination display. That way, the streaming codec can intercept framebuffers slightly more quickly. Basically VSYNC OFF on originating end (local display) even though VSYNC ON forced on the destination end (remote display) = can be lower lag with certain kinds of streaming software (more likely to happen with Steam streams rather than ShadowPlay streams).
Similar Situation: Metaphorically, it is similar behavior as Windows compositing. VSYNC OFF in windowed mode has no tearing because the next framebuffer layers is VSYNC ON (Windows Desktop Manager). But turning the earlier framebuffer step VSYNC OFF still reduces lag anyway (even in games that cap to 60fps). Same thing can happen with certain kinds of streaming codecs. Also some streaming codecs (not all) will also work with Fast Sync style modes, simply picking 1 frame every 1/60sec, to stream a 60fps stream from an ultra-high frame rate. Other times, certain streaming codecs behaves as a forced frame rate cap (60 frames per second) with no way to go higher. Different streaming codecs behave differently (e.g. ShadowPlay vs Steam vs Others).

Makes better sense? ;)
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 » 17 Jan 2018, 16:04

<STREAMING-SPECIFIC>
Chief Blur Buster wrote:
tygeezy wrote:Which makes me think that finding my TVs refreshrate and subtracting .007 FPS and capping it at that value will give me the smoothest possible picture with lower input lag.
tygeezy, that is not how things work for streaming situations.

....."Finding my TV's refresh rate"

Streaming fully decouples the originating streaming rate from destination refresh rate!
As a result, there's no such thing as "finding my TVs refresh rate" from the relative perspective of the PC sending a stream.

Often, stream players will play at a frame rate independent of the TV's refresh rate, which means things like 59.976164 frames per second may be played on 60.00012367 Hertz signal. That's what happens with YouTube videos. The camera frame rate is often decoupled from end user's display refresh rates. Compensation (matching) is often by slightly slowing down/speeding up the frame rate, or simply by frame dropping (once every few seconds or few minutes). Occasionally, a few streaming boxes will switch refresh rates to match frame rates of the real-time video stream, but this is exceedingly rare, especially with Linux-powered streaming boxes which usually do not "genlock" the destination display to the originating display over a stream. Even if it did genlock, the best approach is to genlock to the ORIGINATING system's rate, not the DESTINATION display's rate.

So a person is asking the wrong question when you say "I want to find my TV's refresh rate" when it's pretty much decoupled and won't help the Low-lag VSYNC ON howto if you're doing a streaming method. Basically the TV's refresh rate tends to become useless for the Low-Lag VSYNC ON HOWTO, when streaming is involved.

The PROPER approach for reducing streaming lag (by about 1 frame) is usually either (A) or (B).

(A) Sync at the originating end, not the destination end of streaming
(basically the originating PC refresh rate)

--or--

(B) Cap at a frame rate slightly lower than the codec frame rate.
(basically the streaming codec refresh rate)


Additional Tip: VSYNC is decoupled, but it can still reduce lag slightly if you do it anyway. If you can, then also turn VSYNC OFF in the video game and drivers, even if the streaming is VSYNC ON on destination display. That way, the streaming codec can intercept framebuffers slightly more quickly. Basically VSYNC OFF on originating end (local display) even though VSYNC ON forced on the destination end (remote display) = can be lower lag with certain kinds of streaming software (more likely to happen with Steam streams rather than ShadowPlay streams).
Similar Situation: Metaphorically, it is similar behavior as Windows compositing. VSYNC OFF in windowed mode has no tearing because the next framebuffer layers is VSYNC ON (Windows Desktop Manager). But turning the earlier framebuffer step VSYNC OFF still reduces lag anyway (even in games that cap to 60fps). Same thing can happen with certain kinds of streaming codecs. Also some streaming codecs (not all) will also work with Fast Sync style modes, simply picking 1 frame every 1/60sec, to stream a 60fps stream from an ultra-high frame rate. Other times, certain streaming codecs behaves as a forced frame rate cap (60 frames per second) with no way to go higher. Different streaming codecs behave differently (e.g. ShadowPlay vs Steam vs Others).

Makes better sense? ;)
This makes much more sense now. Thanks for breaking it down for me. For what it's worth, my originating system has a 144hz gsync display. I actually keep vsync on at all times after reading the in-depth guide here. The frame tearing that I noticed with vsync off and gsync on (specifically in street fighter 4 ultra) is all gone.

After reading this, it seems that the best option would be to completely disable vsync fro mthe drivers and make sure it isn't running in game. My destination is likely a 60 hz television. We may get a new tv sometime soon, but it will most likely still be 60z 4k hdr oled type deal.

</STREAMING-SPECIFIC>

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 » 17 Jan 2018, 16:37

<STREAMING-SPECIFIC>

Question:

Some streamers can let frame rates run uncapped on the originating system, despite running at a lower frame rate on the destination system. This is beneficial for reducing lag.

Is your streamimg software already capping our framerate at the originating end?

If YES: The streaming software is capping for you. Try letting it do the job. Set game to VSYNC OFF since there's no use for VSYNC ON since there's no effect on streaming tearing effects. You may attempt to use an in-game frame rate cap to try to reduce lag a bit (use 0.1fps below or so). RTSS probably will not peform better than the streamer's intentional built-in capping.

If NO: Instructions will vary but usually it's beneficial to let it run unthrottled. It's behaving like Fast Sync, where higher frame rates will lower lag of a lower frame rate (including 60fps on destination 60Hz displays for streaming).
RealNC wrote:So try vsync off with RTSS set to the exact Hz of the TV to minimize micro-stutter. Worth a try. If that works, then it's going to give you the lowest input lag possible.
Yes, this is correct advice when it comes to streaming that doesn't have built-in capping.

I am not sure which ones does it -- but some streaming software has built-in capping to throttle it to 60fps to allow it to stream at 60fps. That said, VSYNC OFF still is the correct way to handle this situation too.

At this stage, I'm not 100% sure RTSS will reduce lag of streaming of capped streaming software since the streaming is already behaving like RTSS in capping to 60 frames per second. I'm not sure which streaming software has a built-in 60fps-capper on the originating end. The only way to get less lag than RTSS capping is an in-game cap (e.g. CS:GO, Overwatch, etc). However, if streaming has no cap and behaves like a Fast Sync implementation (uncapped on originating end, low-lag tear-free 60Hz on destination end), it may be preferable to let it do that job unless you hate Fast-Sync-style microstuters.

Capping to 60fps using in-game or RTSS (preferably barely below Hz) will fix those microstutters in uncapped streaming software. I understand that ShadowPlay is uncapped, but I don't know about Steam.

</STREAMING-SPECIFIC>
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!

Sparky
Posts: 682
Joined: 15 Jan 2014, 02:29

Re: RTSS vs in-engine framerate capping

Post by Sparky » 18 Jan 2018, 01:20

For streaming, an option that should be tested is to cap framerate at the highest maintainable multiple of the stream framerate.

Post Reply