Large vertical totals for low input lag

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
crossjeremiah
Posts: 44
Joined: 14 Aug 2017, 10:21

Re: Large vertical totals for low input lag

Post by crossjeremiah » 13 Jul 2019, 08:32

This is the picture and motion quality for my setup . https://www.youtube.com/watch?v=Ph741tT9U3s (This is Scanline Sync X1 + Vsync on (0.01 method) ULMB 10% ) Thats it. Rolling scan is not visible to the naked eye when playing.

https://www.youtube.com/watch?v=torgs-VO2m0

You're right Scanline Sync 2x doesnt do anything really it caused blur.

https://www.youtube.com/watch?v=XVbpq809uTQ

sample-picture display.

https://www.youtube.com/watch?v=UppeKKa3ETQ (ULMB 50%) (Perfect)

https://www.youtube.com/watch?v=5zyy9iTvHwA (ULMB 30%)

Scanline Sync without vsync had weird input lag and pacing issues. Just vsync on without scanline sync riva saw alot interference. But my method as you can see the graph is a static straight line. And I felt it within the game as well.

Sorry if this going off topic of the large verticals I will delete if it strays from what the topic is about.

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

Re: Large vertical totals for low input lag

Post by Chief Blur Buster » 14 Jul 2019, 18:58

Thanks for the new feedback!

No need to delete, this is relevant discussion.

Cheers
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!

Jason38
Posts: 102
Joined: 24 May 2019, 10:23

Re: Large vertical totals for low input lag

Post by Jason38 » 16 Jul 2019, 12:14

The new LG OLED has HDMI 2.1 will this quick frame transport be used by default with HDMI 2.1? Or does it need a device that supports it like a PS5/XBOX which doesn't exist yet. This is the first I have ever heard of this.

crossjeremiah
Posts: 44
Joined: 14 Aug 2017, 10:21

Re: Large vertical totals for low input lag

Post by crossjeremiah » 17 Jul 2019, 06:33

Ok. I'm kind of loss for words. Like my whole world is turned upside down because so much different information.
Let me clarify, and this might help the 60fps users too.
So i'm running Aw2518h 60hz (144hz) QFT. i think its a little higher because its a 350.69 pixel clock . I've read that if you're going to QFT theres no point in using VSYNC OFF, you have to use VSYNC ON. Then there's alot of information where you say you use Scanline sync with QFT, to fix frame timings. Also was told framelimiter doesnt stack. So what would be my best bet for optimal picture input lag.

60hz QFT 144hz
1. Scanline Sync + No vsync
or
2. Scanline Sync + Vsync On.

and also with scanline at the very top of the monitor, correct? (im getting awkward results)
Or do you say Vsync on and Scanline Sync are the same and Scanline sync is basically vsync on but lagless. So when you say that to use QFT you should VSYNC ON that includes Scanline sync and not the full lag of Vsync on, correct.

also a guy i was talking about monitors with was banned from the emulator (specific game) discord for saying large vertical will reduce input lag in their emulator. they told them that it doesnt work with their pipeline, theres no benefits , yatta yatta. do emulator coders have to code in Large vsync lag reduction? or is it native as well.

*UPDATE*
So I'm adjusting the tearline. When I have the tearline up on the top of screen fps drops to 40. game is unplayble input lag noticeably increased.When I adjust to the very bottom of screen, I dont know if I can tell difference in input lag at all, or is that not where the reduction happens. Do I have to put extreme values in because of VT2810 like 2000 ? Or can I input a higher value so the tear line can loop back to the top of screen?

*UPDATE 2*
I played this morning https://www.twitch.tv/videos/453990029 . the glassfloor was perfect, no fps drops, I used a Scanline Sync 1050 , that was closest to the bottom i could get. Is there way I can move the tearline to the top to get the reduced input lag, I tried 0-400 and 400 is literally the middle of the screen, higher numbers would move it down, but when I do 1 its at the very top like 1/4 of the screen, is there a way I move even higher?. Also on GSYNC monitors even when GSYNC is off I would get same input lag all refresh rate around or does GSYNC have to be on (GSYNC doesnt like dolphin netplay).

*UPDATE 3*
I'm trying different negative values to see if i can see a tear line. I can see one at -2300 but as i decrease it more to like -2330 the tear line disappears. What would be the best settings to see tearlines better. I'm going to see if I can a tearline at the top without it dropping to 40fps
*UPDATE 4*
Im trying -23
https://www.youtube.com/watch?v=f-9OBokSjMc
its looks alright to me but let me know you can find any defects sometimes the rolling scan creates it dont worry about it.
So my original VT was 1157
with the QFT method its 2810.
When I put the scanline sync to 2500 or in the invisible spot then it reverts back to the middle of the screen. I assume that the vsync line is looping now. So I guess ill ignore the 2810. So if I used 1180 a little bit past 1157 then it would revert back to the top of screen right?
So should I use -23 or a larger value because of the VT TWEAK.
*UPDATE 5*
Ok I just used my max VT as the value. Seemed fine
https://www.youtube.com/watch?v=hdtUr2dDBIM
No matter what I do, if I use value for the tearline for the top (0-100) I will get dropped frames to 40fps and input lag.

So all in all should I use a value thats more than my original vertical total or should I pretend that I never did that VT2810 and just visualizing it looping back to the top of the screen. If I did that then 2811 would cause major input lag.

*UPDATE 6*
I tried to find a value that was close to my scanout speed. I used 2622. because 2622/1080 = 2.427 and 2810 / 1157 = 2.428 this might be totally wrong it was just experimenting in general. https://www.youtube.com/watch?v=vrdK1xcPzRM

Should I use 2180 because that should be at the top edge of the screen. Or does that come back to our previous point that riva uses all the vertical pixels. or does it use the standard 1080 pixel. or the original vertical which was 1157

*UPDATE 7*
I think I got it.
Scanline Sync 2200 value. Which is above the top edge I presume, I couldn't really tell. But I saw the graph perfect saw tooth for a couple cycles and the perfect glass floor was back. The input lag seems reduced, because the advanced tech I usually do on a crt (1-frame window) was easy to execute when the value was put in.

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

Re: Large vertical totals for low input lag

Post by Chief Blur Buster » 17 Jul 2019, 16:20

Before reading this post, you need to understand Quick Frame Transport
See FAQ: Understanding HDMI Quick Frame Transport (lower lag)
crossjeremiah wrote:*UPDATE*
So I'm adjusting the tearline. When I have the tearline up on the top of screen fps drops to 40. game is unplayble input lag noticeably increased.When I adjust to the very bottom of screen, I dont know if I can tell difference in input lag at all, or is that not where the reduction happens. Do I have to put extreme values in because of VT2810 like 2000 ? Or can I input a higher value so the tear line can loop back to the top of screen?
(1) This will mainly reliably work with VSYNC OFF method, as VSYNC ON will interfere with frame presentation timing
(2) You have to move tearline high enough ABOVE the top of the screen (negative indexes) high enough so the entire jitter amplitude of the tearline is completely above the top edge of the screen. You'll know when stutters suddenly disappear once you've moved the tearline high enough far above beyond the top edge of the screen.
crossjeremiah wrote:*UPDATE 2*
I played this morning https://www.twitch.tv/videos/453990029 . the glassfloor was perfect, no fps drops, I used a Scanline Sync 1050 , that was closest to the bottom i could get. Is there way I can move the tearline to the top to get the reduced input lag, I tried 0-400 and 400 is literally the middle of the screen
Buddy, buddy, buddy, buddy, that won't work. ;)

You MUST use negative numbers. The tearline must jitter ABOVE the top edge of your screen.

One Picture Of Do-It-Yourself Quick Frame Transport via RTSS Scanline Sync:

Image

Prerequisites:
(A) Non-blocking sync method such as VSYNC OFF
(B) Negative raster scanline indexes (or large positive scanline indexes late in VBI such as "1350" for a "Vertical Total 1440")

You must have your entire tearline vibration amplitude completely above the top edge of your screen. If your tearline is vibrating too much, lower refresh rate, raise ForceFlush values (config), reduce detail, until your framerate range (when uncapped) is completely above your refresh rate even for most of your framerate dips. THEN your tearline jitter amplitude is thinner, almost stationary tearline, sometimes vibrating by only 10 pixel rows instead of all over the screen. Now that's easy to calibrate to right above the top edge of your screen, making tearlines completely disappear. Obviously, your tearline vibration amplitude height should be smaller than VBI height, for this to work -- that's why large VBIs makes this much easier. And lower refresh rates are easier (lower scan rate). And so on.

<Programmer Technical>
The tearline is vibrating because this is a software-based polled raster interrupt emulation (via D3DKMTGetScanLine() raster API), so microsecond imprecisions appear as a vibrating tearline -- a horizontal scanrate of 160KHz means a 1/160000sec delay will move a tearline downwards by 1 pixel. Since it is difficult for a full PC to be microsecond-exact (not realtime OS), you inevitably get a vibrating tearline. It's only recently that GPUs and computers are now powerful enough that that software-based raster synchronization is precise enough to make a software-based QFT mode possible in certain games.
</Programmer Technical>

Even though you're using VSYNC OFF, you're creating a defacto custom "VSYNC ON QFT" mode using RTSS Scanline Sync!
crossjeremiah wrote:*UPDATE 7*
I think I got it.
Scanline Sync 2200 value. Which is above the top edge I presume, I couldn't really tell. But I saw the graph perfect saw tooth for a couple cycles and the perfect glass floor was back. The input lag seems reduced, because the advanced tech I usually do on a crt (1-frame window) was easy to execute when the value was put in.
Atta boy, you're getting it now!

Negative numbers are identical to positive numbers in a "Vertical Total MODULUS" manner.
So for a Vertical Total 2500, the use of "2400" and "-100" is identical.

Negative numbers are useful if you keep changing your vertical total all the time, so negative numbers don't require re-tweaking as often as positive numbers.

Trying to use 2600 with a Vertical Total simply moduluses it back, to 100. The refresh cycle is simply an endless loop of a series of refresh cycles, so negative and positive numbers are simply MODULUS vertical total, so you have to think of the RTSS number as a modulus number.

The advantage of using negative numbers, is they are end-of-VBI relative, rather than start-of-VBI relative -- which means you can continue to tweak the size of your VBI without repeatedly re-tuning / re-changing your RTSS negative number.

Image

VBI = Sum of Back Porch + Sync + Front Porch seen in ToastyX Custom Resolution Utility or NVIDIA Custom Resolution
Vertical Total = Sum of Active + VBI seen in ToastyX Custom Resolution Utility or NVIDIA Custom Resolution
Vertical Total = Sum of Active + Back Porch + Sync + Front Porch seen in ToastyX Custom Resolution Utility or NVIDIA Custom Resolution

Those porches and syncs are simply paddings/delimeters between pixel rows / refresh cycles "on the wire" when the GPU transmits the refresh cycle (1D serialization of a 2D image) one pixel at a time, left-to-right, top-to-bottom.

Video does this for almost 100 years now, from a 1930s analog TV to a 2020s DisplayPort cable -- we've stuck to the same raster sequence. Yesterday, they were just electric signals to reset CRT cathode ray beam. Today, they're digital sync separators treated like comma delimeters (paddings/hidden offscreen pixels). But the video signal structure has remained unchanged for almost 100 years. It's the same even on a FreeSync signal (the VBI simply varies in size), and at any refresh rate -- it's just simply enforced by the law-of-physics of having to serialize a 2D image over a 1D wire, whether be analog or digital -- as a waveform analog -- or binary digits -- or whatever.

Image

While this is somewhat advanced writing, since most readers just don't know what the hell those numbers in ToastyX or NVIDIA Custom Resolution does -- now the above diagrams hopefully helps educate what the numbers actually does -- the true resolution of a signal is bigger than the resolution of the display -- analog or digital -- thanks to hidden offscreen porch pixels and offscreen sync pixels.

Hope this post provides educational insight to how we've successfully pulled off a successful software-based "Quick Frame Transport VSYNC ON emulation" mode via using raster beam raced RTSS Scanline Sync + Large VBI + VSYNC OFF
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!

crossjeremiah
Posts: 44
Joined: 14 Aug 2017, 10:21

Re: Large vertical totals for low input lag

Post by crossjeremiah » 17 Jul 2019, 17:54

Makes sense. again thank you for your comprehensive and detailed answers.
So VT2810 . and scanline sync value of 2200 would be = -610

Ok one thing I think everyone is thinking is that .
Does vsync line loop at 1080+1 or does it loop at the end of VT like at 2810+1 this if the resolution stays the same. Or does it loop at the original Vertical total.


UPDATE 1:
Ok I read the post over again.
so we should go based off the vertical total.
so my total is 2810
my front porch is 3 and sync is 5.
the back porch is 1722.
So if I saw the tearline go off the screen at 1080pixels. I would have to add the front porch and sync width to make the tear line go back to the top of the screen. I've tried values that that are suppose to be with invisible lines. like 2600 it showed the tear line at the bottom half of the screen. So would using a value like 2180 be good because 1080+(front porch)+(syncwidth) = 1088 . so 1088+1088 = 2176. and just added +4 for good measure. So its syncing to the 2180 line of the vertical total which would be on the very top the monitor. So it would be -630. Or do I still include the backporch in the equation, which you would think it loops back to the top at the end of 1080 + front+sync or does it loop via 1080+front+sync+back porch

UPDATE 2:
I think the internal resolution effects the value to correct if im wrong. I have full screen of 1920x1080 and internal of 1280x1056(720p).

I think the main problem im having now is to add the back porch to my calculations , but like I said when I try to sync to line thats suppose to be invisible the tear line loops back from 1080 or 1088 whatever the padding it. Like 2600 would be bottom middle .

1080+1080= 2160 . I tried the (2160) even (2176). It was a no go, yes I get the glassfloor but the input lag is the same if I didn't do the tweak. 2200 seems optimal. For me.The inputs were noticably looser, and the frame window was tighter. I think 2190-2200 was the happy median I can get.

UPDATE 3 :
Ive played around with RTSS enough to actually get it working correctly. I said 2200 which is -610 was optimal. It moved the tearline all the way to the bottom. But like Chief said I would have to move the tearline to the top to get the best results, so I tested this with a CRT, I used -640 on a VT646. And -640 brought the jitter all the way to the top and results are glorious. You can see the tearline if you purposely pan a camera as fast you can just because but during gameplay its invisible. How don't know if its placebo but the input lag is much better.
I'm sure with a VT2200 I would use -2100 or -2000 to get the tearline in something in regard to.

Please anyone with using the QFT(VT2000+) 60hz method post your results, I'm interested. I want to see where their tear line loops.
Last edited by crossjeremiah on 04 Aug 2019, 08:47, edited 1 time in total.

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

Re: Large vertical totals for low input lag

Post by Chief Blur Buster » 18 Jul 2019, 09:15

Scanline Sync numbers always loops with Vertical Total. But scaled resolutions does complicate things a little bit -- it might be incorrectly calculating off post-scaled vs pre-scaled vertical total (unknown). With GPU scaling, the vertical total on the wire is the post-scaled vertical total which would may not match the vertical total you used for your lower resolution. There might be some weird things going on with that.

One can also try to experiment with monitor-side scaling, so that your vertical total is preserved "on the wire". It would be the pre-scaled vertical total instead -- for all practical intents and purposes, the monitor is treated as a lower resolution monitor.

One can also just simply use the Scanline Sync hotkeys and keep incrementing the scan line number (until well beyond Active resolution) until things suddenly starts stuttering and/or tearing. Then back off (decrement until smooth, glassfloor and stutterless), and you've probably got the lowest QFT lag you can get in that particular setup (resolution, game, etc).

You could also experiment with a 2nd QFT mode using non-scaled resolution and see if the numbers behave more predictably.
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!

crossjeremiah
Posts: 44
Joined: 14 Aug 2017, 10:21

Re: Large vertical totals for low input lag

Post by crossjeremiah » 22 Jul 2019, 14:23

I did some tests this is what I got.
VT2810 (DOLPHIN 1920x1080 (IR: 1920x1584) )
Starts from the bottom
>-1753 = (1057+) =NO TEARING
-1753 = 1057 = NO TEARING
-1757 = 1053 = BOTTOM
-1900 = 910 = BOTTOM HALF
-2200 = 610 = MIDDLE
-2210 = 600 MIDDLE
-2300 = 510 TEARING IN THE MIDDLE
-2390 = 420 TEARING IN THE MIDDLE (VERY INVISIBLE THOUGH)
-2410 = 400 TEARING AT THE VERY BOTTOM
-2510 = 300 TEARING AT THE BOTTOM
-2600 = 210 TEARING AT TOP BOTTOM
-2700 = 110 TEARING AT BOTTOM MIDDLE & TOP
-2800 = 10 TEARING IN TOP & MIDDLE
-2809 = 1 NO TEARING (SEESAW LINE)

Post Reply