Open VRR: Can adaptive sync only work at the driver level?

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.
Post Reply
Orange
Posts: 4
Joined: 06 Jan 2018, 01:50

Open VRR: Can adaptive sync only work at the driver level?

Post by Orange » 06 Jan 2018, 01:55

Forgive me if this is a stupid question, but both Gsync and Freesync require compatible drivers to function- Would it be possible for a third-party solution, software or perhaps hardware, to achieve the same function? If so, why haven't we seen anything like it yet?

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

Re: Can adaptive sync only work at the driver level?

Post by Chief Blur Buster » 06 Jan 2018, 02:23

For FreeSync / VESA Adaptive-Sync / HDMI 2.1 VRR (all similar), the spec is reasonably open and could be done third-party-wise.
For G-SYNC, it probably has a form of DRM (special handshake logic) and proprietary stuff to prevent such...

Some laptop drivers have used a simple form of VRR to reduce Hz to save power.
Linux already has FreeSync ability -- as of recently. I imagine they'll have an open source implementation in the not-too-distant future.

There's nothing stopping an open source FreeSync driver, in theory... Intrisinically timings-wise, it is just simply varying the size of the blanking interval between refresh cycles. Constant horizontal scanrate, but variable number of offscreen scanlines in VBI (in the Back Porch) to pad a variable amount of time between refresh cycles.
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
RealNC
Site Admin
Posts: 3741
Joined: 24 Dec 2013, 18:32
Contact:

Re: Can adaptive sync only work at the driver level?

Post by RealNC » 06 Jan 2018, 05:33

Orange wrote:Would it be possible for a third-party solution, software or perhaps hardware
What kind of software? What kind of hardware?

Also, don't confuse adaptive sync with VRR. They've got nothing to do with each other.

Edit: Never mind. I confused adaptive sync with adaptive vsync :mrgreen:
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
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Can adaptive sync only work at the driver level?

Post by Chief Blur Buster » 06 Jan 2018, 13:13

RealNC wrote:Also, don't confuse adaptive sync with VRR. They've got nothing to do with each other.
Well, there is some confusion, so let me clear it up:

Well, according to VESA.org, VESA Adaptive-Sync is a VRR technology. The people who created Adaptive-Sync!

In fact, at the signal level, FreeSync and VESA Adaptive-Sync is nearly identical. In fact, many VESA Adaptive-Sync displays successfully function with an AMD Radeon graphics card as an unofficial, uncertified FreeSync display!

That said, VESA Adaptive-Sync do also focus on additional purposes, like throttling back refresh rates to save power, etc. So not all VESA Adaptive-Sync monitors are used for VRR gaming.

Functionally, and fundamentally, FreeSync, VESA Adaptive-Sync, and HDMI 2.1 VRR has some interoperable features.. Their technology (protocol) venn diagram have overlap! They all use the same VRR technique of variable-sized blanking intervals and that subset of functionality is so similar that they are mostly interoperable with each other in the subset of supported VRR functionality. There are feature differences, but the core features actually work with each other.

e.g. ToastyX CRU forcing FreeSync out of a HDMI port, successfully worked on an experimental HDMI 2.1 Game Mode VRR display (works). Or running FreeSync to a display that's only been made VESA Adaptive-Sync compatible but not officially certified by AMD (works).

The standard is (fairly) open and they're all remarkably similar at the technical video signal level.

Image

All of the standards (VESA Adaptive-Sync, HDMI 2.1 VRR, and FreeSync) use exactly the same technique of variable-height black spacers (VBI - VSYNC interval) between refresh cycles to vary the time between refresh cycles.

A display's horizontal scanrate is constant (e.g. a 135KHz horizontal scan rate means 135,000 pixels rows per second). That's always fixed speed even for variable refresh rates. So to vary the amount of time between refresh cycles, you add/remove those offscreen dummy scanlines (blanking interval lines) between refresh cycles.

This is still true in the digital era (DVI, HDMI, DIsplayPort) as the digital equivalent of the analog signal. Graphics are still transmitted one pixel at a time, left to right, top to bottom. Sure, they might be packetized (e.g. DisplayPort micropacket) but the pixels are still packed in a calendar-style-scanout order (left-to-right, then top-to-bottom) with dummy offscreen spacers at top/bottom (vertical front/back porches/sync intervals) as well as left/right (horizontal front/back porches/sync intervals).

That's the numbers in a Custom Resolution Utility....such as ToastyX or NVIDIA or AMD

Vertical Back Porch -- dummy rows of offscreen pixels above top edge of screen
Vertical Front Porch -- dummy rows of offscreen pixels below bottom edge of screen
Vertical Sync -- dummy rows of offscreen pixels between Vertical Back Porch & Vertical Front Porch
Horizontal Back Porch -- dummy rows of offscreen pixels beyond left edge of screen
Horizontal Front Porch -- dummy rows of offscreen pixels beyond right edge of screen
Horizontal Sync -- dummy rows of offscreen pixels between Horizontal Back Porch & Horizontal Front Porch

Why?

They're simply pauses in the video signal.
To give electronics time to begin the next row of pixel, or to prepare to begin the next refresh cycle.

Cable transmission sequence for one scanline:
Horizontal Back Porch - Horizontal Visible (Active) - Horizontal Front Porch - Horizontal Sync

Cable transmission sequence for successive scanlines:
Vertical Back Porch - Vertical Visible (Active) - Vertical Front Porch - Vertical Sync

It's always in this ordering: BackPorch-Visible-FrontPorch-Sync-BackPorch-Visible-FrontPorch-Sync-BackPorch-Visible-FrontPorch-Sync-etc-etc-etc BackPorch goes before Visible. FrontPorch goes after Visible. Sync between FrontPorch and BackPorch.

Left to right, top to bottom, "calendar-style" scanout sequence. Rinse and repeat per refresh cycle.

Back in the 1930s and 1940s, for analog TVs, it was to give time for the electron gun to move to the correct position.
Today, it's still there even in year 2018 in your digital cable as dummy pauses to your 4K or 8K OLED display.

Not all displays need them, but many do. So numbers become lowest common denominators.

Asides: Reduced Blanking Intervals are used on some displays to increase Hz. Large Vertical Totals are used on other displays for things like QFD (Quick Frame Delivery -- padded Front Porch -- faster scanout + longer VBI = less VSYNC ON lag) or to reduce strobe crosstalk (more time between refresh cycles for LCD GtG to finish completing -- GtG "lags" behind the scanout. So you want the bottom edge to finish refreshing, before strobe backlight flash, before beginning to refresh the top edge)

And...this is how variable refresh rate piggybacks on this. Variable refresh rate varies the size of the Back Porch in realtime (on the fly). The number you entered in ToastyX or whatever, will always only be the number used at the highest Hz. To get lower Hz, the Vertical Back Porch varies (to much bigger numbers) to achieve the lower Hz's.

Yes, VESA Adaptive-Sync.
Yes, FreeSync.
Yes, HDMI 2.1 VRR.

Albiet a bit complex to wrap head around, it actually becomes really simple (for someone numerically inclined, or a programmer) once somebody understands how pixels are transmitted from GPU to display in a calendar-style scanout sequence, left-to-right, top-to-bottom. And then understanding that variable refresh rate is simply the concept of varying the size of padding between refresh cycles. Like metaphorically adding invisible "weeks" between calendar months (aka refresh cycles).

The clever way they piggybacked VRR onto a "1930s video signal concept", means it's possible to force VRR out of HDMI, then use an HDMI-to-VGA adaptor.... Analog VRR! Some old multisync CRTs successfully works with VRR signals.

All of these standards are reasonably open enough that an electronics engineer (who understands the VRR specs) can simply write a custom signal generator that intentionally outputs a varying-refresh-rate signal -- and it'd automatically work on any of those supported VRR displays as long as within the specs (including refresh rate range).
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: Can adaptive sync only work at the driver level?

Post by Sparky » 06 Jan 2018, 13:28

You could hypothetically spoof a G-sync monitor into working with a non-Nvidia video card using custom drivers, or replicate the overdrive correction function of AMD's freesync drivers in a third party driver for non-AMD video cards. AMD and Nvidia don't exactly benefit from making that process easier.

No idea on the legal/licensing implications, and it will be possible for AMD or Nvidia to break your implementation with a firmware update.

Orange
Posts: 4
Joined: 06 Jan 2018, 01:50

Re: Open VRR: Can adaptive sync only work at the driver leve

Post by Orange » 12 Jan 2018, 02:17

Thanks for all the info, really interesting. Do you think HDMI 2.1 becoming more common might pave the way for a solution that is not dependent on drivers considering it supports variable refresh rate?

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

Re: Open VRR: Can adaptive sync only work at the driver leve

Post by Chief Blur Buster » 12 Jan 2018, 03:24

Orange wrote:Thanks for all the info, really interesting. Do you think HDMI 2.1 becoming more common might pave the way for a solution that is not dependent on drivers considering it supports variable refresh rate?
Today, I visited AMD's showroom at the Venetian at CES 2018.

They confirmed that their cards and drivers do function with HDMI VRR. Many existing displays already (semi-unofficially) support FreeSync over HDMI (1.4, 2.0) when forced via ToastyX, and the VRR protocol is the same as what is now simply being made 'official' with HDMI 2.1.

Technical Marketing at AMD also confirmed what I said about VRR compatibility overlap between HDMI 2.1 VRR, VESA Adaptive-Sync, and FreeSync. It is simply variable-size VBI.
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!

Orange
Posts: 4
Joined: 06 Jan 2018, 01:50

Re: Open VRR: Can adaptive sync only work at the driver leve

Post by Orange » 12 Jan 2018, 05:06

Chief Blur Buster wrote:
Orange wrote:Thanks for all the info, really interesting. Do you think HDMI 2.1 becoming more common might pave the way for a solution that is not dependent on drivers considering it supports variable refresh rate?
Today, I visited AMD's showroom at the Venetian at CES 2018.

They confirmed that their cards and drivers do function with HDMI VRR. Many existing displays already (semi-unofficially) support FreeSync over HDMI (1.4, 2.0) when forced via ToastyX, and the VRR protocol is the same as what is now simply being made 'official' with HDMI 2.1.

Technical Marketing at AMD also confirmed what I said about VRR compatibility overlap between HDMI 2.1 VRR, VESA Adaptive-Sync, and FreeSync. It is simply variable-size VBI.
gotcha. That's cool they confirmed that for you. I wonder if there will be software options for nvidia cards anytime soon. I understand their gaming laptops do something similar without the gsync hardware module, but I doubt they're going to hurt their desktop sales by removing the need for the hardware component.

User avatar
lexlazootin
Posts: 1251
Joined: 16 Dec 2014, 02:57

Re: Open VRR: Can adaptive sync only work at the driver leve

Post by lexlazootin » 12 Jan 2018, 06:45

G-Sync is a lot more than adaptive sync. Adaptive sync is amazing and I like it when it comes from AMD or Nvidia but the extra features of having a correctly tuned monitor (Not having to worry about color/Latency/ULMB/OD implementation) is kinda a big plus.

I would still buy G-Sync monitors even if someone hacked Nvidia driver to work with Adaptive Sync. Not to say I don't trust the monitor manufacturers but they do seem to always sometimes screw something up.

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

Re: Open VRR: Can adaptive sync only work at the driver leve

Post by Chief Blur Buster » 12 Jan 2018, 13:06

Orange wrote:gotcha. That's cool they confirmed that for you. I wonder if there will be software options for nvidia cards anytime soon. I understand their gaming laptops do something similar without the gsync hardware module, but I doubt they're going to hurt their desktop sales by removing the need for the hardware component.
One thing though, FreeSync is also a branding program by AMD. For a monitor to be allowed to slap "FreeSync" on a VESA Adaptive Sync compatible monitor, it has to be verified by AMD as meeting all the minimum requirements of FreeSync. There's been at least a few times where a monitor shipped without the FreeSync advertising but was FreeSync compatible. The most well known of these on these forums are the BenQ Zowie XL2540 and XL2546 which are not advertised as being FreeSync.
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!

Post Reply