Hacked ASUS VG279QM modified to single-strobe 60 fps capped VRR for emulators

Advanced display talk, display hackers, advanced game programmers, scientists, display researchers, display manufacturers, vision researchers & Advanced Display Articles on Blur Busters. The masters on Blur Busters.
elexor
Posts: 141
Joined: 07 Jan 2020, 04:53

Hacked ASUS VG279QM modified to single-strobe 60 fps capped VRR for emulators

Post by elexor » 11 Jun 2021, 10:44

For example If i create a large VT videomode 100hz matching the native scan rate of the panel and enable gsync. What happens? does gsync override the Vertical total when enabled? Reason i ask is lower max refresh rates can be useful for defeating LFC

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

Re: How do customs large vertical totals interact with gsync?

Post by Chief Blur Buster » 11 Jun 2021, 11:52

elexor wrote:
11 Jun 2021, 10:44
For example If i create a large VT videomode 100hz matching the native scan rate of the panel and enable gsync. What happens? does gsync override the Vertical total when enabled? Reason i ask is lower max refresh rates can be useful for defeating LFC
Not really useful for VRR unless you want to attempt to reduce strobe crosstalk on strobing+VRR technologies using a hardware method more guaranteed than a framerate cap.

Custom large VT's simply lower the max Hz of VRR. I don't think it lowers the min Hz.

Also, under the hood, [variable refresh tech such as FreeSync and G-SYNC uses variable size VTs as the technique to space apart the refresh cycles. The signal still look identical on the wire, since you still need the same size VT for targetting an exact Hz with a fixed horizontal scanrate.

Conversely, large VTs on a fixed-Hz ls almost like G-SYNC with min/max Hz being made equal to each other. Signal-wise.

Setting a large VT on G-SYNC simply thusly:
(A) lowers the max refresh rate; and
(B) guarantees a minimum VT size on the VRR's method of variable-sized VT

The (B) property may be useful for reducing strobe crosstalk on certain strobed VRR technologies. (More time to hide LCD GtG pixel response in VBI between strobed VRR refresh cycles, see the refresh rate headroom science for reducing strobe crosstalk ...)
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

       To support Blur Busters:
       • Official List of Best Gaming Monitors
       • List of G-SYNC Monitors
       • List of FreeSync Monitors
       • List of Ultrawide Monitors

elexor
Posts: 141
Joined: 07 Jan 2020, 04:53

Re: How do customs large vertical totals interact with gsync?

Post by elexor » 11 Jun 2021, 20:15

Chief Blur Buster wrote:
11 Jun 2021, 11:52

(B) guarantees a minimum VT size on the VRR's method of variable-sized VT

The (B) property may be useful for reducing strobe crosstalk on certain strobed VRR technologies. (More time to hide LCD GtG pixel response in VBI between strobed VRR refresh cycles, see the refresh rate headroom science for reducing strobe crosstalk ...)
Thanks I have been playing with fixed fps fixed strobe VRR @60hz with varying success the 100hz is required to stop gsync from randomly double framing or triple framing which it does at max hz gsync.

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

Re: How do customs large vertical totals interact with gsync?

Post by Chief Blur Buster » 11 Jun 2021, 20:43

elexor wrote:
11 Jun 2021, 20:15
Thanks I have been playing with fixed fps fixed strobe VRR @60hz with varying success the 100hz is required to stop gsync from randomly double framing or triple framing which it does at max hz gsync.
Great observation -- that's an advantage (C).

Different monitor manufacturers use different algorithms for strobed VRR, and timing tricks like a Large VT can become a workaround for this, like shifting sweet-spot strobed VRR ranges to within your target framerate of your app -- such as achieving 60fps single-strobe.

The use of large VTs to change the VRR flicker-compensation algorithm, is also another potential pro of using a Large Vertical Total to achieve perfect low-Hz capped VRR strobing.

For 60fps target, you might want to create a large VT that creates a 65fps or 70fps VRR maximum, and let emulator self-cap at 60fps. Since some monitors (e.g. early versions of ASUS ELMB SYNC) single-strobes within the top few Hz of their VRR ranges -- so VRR + Large VT is a possible workaround.

You don't want the VRR large-VT to be the cap for the emulator, but this can be used to shift the strobed VRR's "sweet spot" to accomodate a specific framerate. So you want the max VRR Hz just above your framerate target (like a self-capping 60fps app such as a console port or emulator)

Capped strobed VRR is one of the world's lowest latency "non-VSYNC-OFF" strobing method, which is great if you want CRT motion clarity with emulators with the minimum possible strobe lag. But yes, some strobed VRR algorithms are really ugly, and will double-strobe an emulator in an unwanted way until doing creative tricks such as VRR + Large VT custom resolution.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

       To support Blur Busters:
       • Official List of Best Gaming Monitors
       • List of G-SYNC Monitors
       • List of FreeSync Monitors
       • List of Ultrawide Monitors

elexor
Posts: 141
Joined: 07 Jan 2020, 04:53

Re: How do customs large vertical totals interact with gsync?

Post by elexor » 11 Jun 2021, 23:18

Chief Blur Buster wrote:
11 Jun 2021, 20:43
check it out I'm strobing at an average of the vrr hz and slightly slewing the phase to keep the jumping vsync in the crosstalk sweetspot. no erratic flicker and no crosstalk. heh this monitor has a big enough crosstalk free zone to do this.

Yellow is monitor vsync directly from the panel controller board :) i found the test point.

phpBB [video]

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

Re: How do customs large vertical totals interact with gsync?

Post by Chief Blur Buster » 12 Jun 2021, 00:01

Very good, you forced VG279QM ELMB SYNC to cleanly single strobe 60Hz VRR in your emulator!
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

       To support Blur Busters:
       • Official List of Best Gaming Monitors
       • List of G-SYNC Monitors
       • List of FreeSync Monitors
       • List of Ultrawide Monitors

elexor
Posts: 141
Joined: 07 Jan 2020, 04:53

Re: How do customs large vertical totals interact with gsync?

Post by elexor » 12 Jun 2021, 00:22

Chief Blur Buster wrote:
12 Jun 2021, 00:01
Very good, you forced VG279QM ELMB SYNC to cleanly single strobe 60Hz VRR in your emulator!
This isn't elmbsync it's my own version of it. elmbsync won't even strobe at 60 even with VT tricks also it locks the overdrive rendering it useless. I have tapped into the panels vsync 3.3v test point. im processing the the vsync signal with arduino code to do average strobing with drift compensation. it's pretty difficult for me because my arduino programming is very amatuer.

I could even create a program that automatically changes overdrive via ddc commands if i want. software variable overdrive

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

Re: How do customs large vertical totals interact with gsync?

Post by Chief Blur Buster » 12 Jun 2021, 01:37

elexor wrote:
12 Jun 2021, 00:22
This isn't elmbsync it's my own version of it. elmbsync won't even strobe at 60 even with VT tricks also it locks the overdrive rendering it useless. I have tapped into the panels vsync 3.3v test point. im processing the the vsync signal with arduino code to do average strobing with drift compensation. it's pretty difficult for me because my arduino programming is very amatuer.
Oh, nice! I know about your other monitor-hacking project -- your BenQ XL2546 hack for 60Hz single-strobing.

But this is great -- you've essentially hacked your own VRR strobing system to successfully single-strobe 60 Hz with your own Arduino electronics add-on to the ASUS VG279QM! That's fantastic!

To do this, you used some Large Vertical Totals combined with non-strobed G-SYNC to do this, and then added external strobing via an Ardunio attached to your VG279QM backlight controller?
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

       To support Blur Busters:
       • Official List of Best Gaming Monitors
       • List of G-SYNC Monitors
       • List of FreeSync Monitors
       • List of Ultrawide Monitors

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

Hacked ASUS VG279QM modified to single-strobe 60 fps capped VRR for emulators

Post by Chief Blur Buster » 12 Jun 2021, 01:41

elexor wrote:
12 Jun 2021, 00:22
I could even create a program that automatically changes overdrive via ddc commands if i want. software variable overdrive
What's the DDC command for Overdrive Gain on the ASUS VG279QM?

I suspect DDC/CI is probably not fast enough for realtime overdrive adjustments, but you could try some tests to see how fast/slow the updates is -- DDC/CI usually runs at only 10 commands per second, and would not keep up with sudden framerate changes. Some monitors are indeed faster than others.

Good VRR overdrive will require OD-Gain changes every single frame, as a math formula on the last two frametimes (and a predicted future frametime) to generate a guesstimated OD Gain that will minimize ghosting for the current VRR refresh cycle that's about to be displayed -- you must cut the OD Gain really fast at the very last minute. With DDC you may need to do some predictive future-frametime work, given the DDC/CI latency, and settle for a slow OD Gain update rate that only looks okay with smooth framerate changes.

...on another, different, project...

P.S. I would like to see more of the DIY community playing around mechanical strobing -- see Mechanical Strobing Project. I put some great new diagrams there! You would only need non-strobed operation combined with an adjustable Overdrive Gain -- the strobe pulse width/phase would be controlled by the mechanical wheel instead. Could work well with fast-GtG LCD/LcOS projectors. You sound like you might be interested in testing out a mechanical contraption like that (Option 3 vise mounted spinning cardboard disc with slits).
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

       To support Blur Busters:
       • Official List of Best Gaming Monitors
       • List of G-SYNC Monitors
       • List of FreeSync Monitors
       • List of Ultrawide Monitors

elexor
Posts: 141
Joined: 07 Jan 2020, 04:53

Re: How do customs large vertical totals interact with gsync?

Post by elexor » 12 Jun 2021, 02:02

Chief Blur Buster wrote:
12 Jun 2021, 01:37
To do this, you used some Large Vertical Totals combined with non-strobed G-SYNC to do this, and then added external strobing via an Ardunio attached to your VG279QM backlight controller?
yeah this is better then my benq hack since i actually found the raw panel vsync signal.

For vrr strobing i do this. I can just do fixed strobing at any hz aswell. I just wanted to try vrr strobing because it's fun to try and make it work without flicker. it works pretty good in any game just cap your fps and it will strobe at that. as long as the game has a stable fps when capped.

when i fix rate 60hz strobe i just use a vt of 5125 280hz scanrate. I really think fixed rate strobing with gsync can be useful for it's automatic QFT handling not having to mess around with scanline sync is really nice. not all programs allow it or work correctly with it.

Post Reply