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?