AMD Demonstrates "FreeSync", Free G-Sync Alternative, at CES 2014
by Anand Lal Shimpi on January 6, 2014 4:38 PM ESTAMD has been relatively silent on the topic of NVIDIA’s variable refresh rate G-Sync technology since its announcement last year. At this year’s CES however, AMD gave me a short demo of its version of the technology.
Using two Toshiba Satellite Click notebooks purchased at retail, without any hardware modifications, AMD demonstrated variable refresh rate technology. According to AMD, there’s been a push to bring variable refresh rate display panels to mobile for a while now in hopes of reducing power consumption (refreshing a display before new content is available wastes power, sort of the same reason we have panel self refresh displays). There’s apparently already a VESA standard for controlling VBLANK intervals. The GPU’s display engine needs to support it, as do the panel and display hardware itself. If all of the components support this spec however, then you can get what appears to be the equivalent of G-Sync without any extra hardware.
In the case of the Toshiba Satellite Click, the panel already supports variable VBLANK. AMD’s display engines have supported variable VBLANK for a couple of generations, and that extends all the way down to APUs. The Satellite Click in question uses AMD’s low cost Kabini APU, which already has the requisite hardware to support variable VBLANK and thus variable display refresh rates (Kaveri as well as AMD's latest GPUs should support it as well). AMD simply needed driver support for controlling VBLANK timing, which is present in the latest Catalyst drivers. AMD hasn’t yet exposed any of the controls to end users, but all of the pieces in this demo are ready and already available.
The next step was to write a little demo app that could show it working. In the video below both systems have V-Sync enabled, but the machine on the right is taking advantage of variable VBLANK intervals. Just like I did in our G-Sync review, I took a 720p60 video of both screens and slowed it down to make it easier to see the stuttering you get with V-Sync On when your content has a variable frame rate. AMD doesn’t want to charge for this technology since it’s already a part of a spec that it has implemented (and shouldn’t require a hardware change to those panels that support the spec), hence the current working name “FreeSync”.
AMD’s demo isn’t quite as nice as NVIDIA’s swinging pendulum, and we obviously weren’t able to test anywhere near as many scenarios, but this one is a good starting point. The system on the left is limited to 30 fps given the heavy workload and v-sync being on, while the system on the right is able to vary its frame rate and synchronize presenting each frame to the display's refresh rate. AMD isn’t ready to productize this nor does it have a public go to market strategy, but my guess is we’ll see more panel vendors encouraged to include support for variable VBLANK and perhaps an eventual AMD driver update that enables control over this function.
In our review I was pretty pleased with G-Sync. I’d be even more pleased if all panels/systems supported it. AMD’s “FreeSync” seems like a step in that direction (and a sensible one too that doesn’t require any additional hardware). If variable VBLANK control is indeed integrated into all modern AMD GPUs, that means the Xbox One and PS4 should also have support for this. Given G-Sync’s sweet spot at between 40 - 60 fps, I feel like “FreeSync” would be a big win for AMD’s APUs.
82 Comments
View All Comments
fudd - Monday, January 6, 2014 - link
From Anand's g-sync review"G-Sync works by manipulating the display’s VBLANK (vertical blanking interval). VBLANK is the period of time between the display rasterizing the last line of the current frame and drawing the first line of the next frame. It’s called an interval because during this period of time no screen updates happen, the display remains static displaying the current frame before drawing the next one. VBLANK is a remnant of the CRT days where it was necessary to give the CRTs time to begin scanning at the top of the display once again. The interval remains today in LCD flat panels, although it’s technically unnecessary. The G-Sync module inside the display modifies VBLANK to cause the display to hold the present frame until the GPU is ready to deliver a new one.
With a G-Sync enabled display, when the monitor is done drawing the current frame it waits until the GPU has another one ready for display before starting the next draw process. The delay is controlled purely by playing with the VBLANK interval.
You can only do so much with VBLANK manipulation though. In present implementations the longest NVIDIA can hold a single frame is 33.3ms (30Hz). If the next frame isn’t ready by then, the G-Sync module will tell the display to redraw the last frame. The upper bound is limited by the panel/TCON at this point, with the only G-Sync monitor available today going as high as 6.94ms (144Hz). NVIDIA made it a point to mention that the 144Hz limitation isn’t a G-Sync limit, but a panel limit."
Article needs more information on how many consumer monitors being sold already support variable vblank. Was this not implemented because of legacy? or easier/cheaper not to?
I hope there's more support than other 3rd party free features like HD3D.
iwod - Monday, January 6, 2014 - link
It cant be that simple. There has to be a reason Nvidia were investing and making G-Sync instead of doing what AMD just did.I just hope Anand will investigate further.
psuedonymous - Tuesday, January 7, 2014 - link
There's two things I think the custom controller is doing: an accelerated read-in and read-out to support very low latencies (explains the massive RAM array: to allow monstrous bandwidth) between the frame being completed and it appearing on the panel, and the on-board multiple frame buffer for use when FPS drops really low and frame duplication is needed (I wouldn't be suprised if some motion interpolation were occuring there). And possibly the processing needed for the lightboost-like display mode, though I'm not sure if that's been demonstrated yet.That, and it's a single target that Nvidia can design for. VBLANK-twiddling, while possible under the VESA specifications, isn't standardised. Monitors may do anything from displaying the frames when you send weird VBLANKs, displaying garbage, partial or duplicate frames, or just "NO SIGNAL". You can bet the freesync implementation used on that Satellite Click only works for one specific panel.
tviceman - Monday, January 6, 2014 - link
This is where AMD falls flat on their faces. They "supposedly" already have this tech and have done absolutely nothing with it.Just another day @ AMD.
Yorgos - Tuesday, January 7, 2014 - link
The way I see it is that AMD wants to protect stupid consumers and avoid them from spending a shitload of money for a technology that is already free, so after their laughter on nVidias marketing gimmicks, they decided to protect some of those stupid consumers by opening their eyes and giving them a pick at what they actually are paying/buying with G-sync.Also my cudos to the guy (lordoftheboired) for his comment, he describes exactly what the hell is going on with those damn consumers.
give it a vesa mark and noone bats an eye.
give it an apple/nVidia/etc mark and everyone looses their minds
(just to use this horrible meme thing that is going on lately)
LordOfTheBoired - Monday, January 6, 2014 - link
ARGH!This happens all the time. VESA makes a standard that fixes some glaring issue or provides really useful functionality. All is good.
And then it's either A. ignored completely, or B. re-implemented in an incompatible manner by a company that wants to brag about how genius they are more than they really want to BE genius.
Why does VESA even MAKE standards if they're only ignored or cloned incompatibly?
And why is nVidia trying to be Apple? We already HAVE Apple for adding the appearance of proprietary genius to other people's work, and nVidia's marketing department isn't NEAR as good.
And why has AMD sat on this for several generations instead of, I dunno, enabling hardware functionality in the drivers. I mean it's not like it isn't THE WHOLE REASON THEY EXIST FOR PETE'S SAKE!
psuedonymous - Tuesday, January 7, 2014 - link
Because it's NOT a VESA standard. The ability to vary VBLANK IS part of the standard, but there's no guidance on what monitors need to do with it other than 'VBLANK may vary sometimes, deal with it'. "NO SIGNAL" is a perfectly valid response to a 'malformed' VBLANK under the standard.Alexvrb - Wednesday, January 8, 2014 - link
Source?Seems kind of strange to have a standard that contains variable VBLANK but then says "Lawl VBLANK varies but you don't have to handle it in any particular manner lawl". Also, wouldn't a "malformed" VBLANK be a non-standard VBLANK by definition? Just sounds rather absurd.
If it only works on a single panel, it would seem odd to have them demonstrate it. Anyway if there's a future for FreeSync it would be nice if Intel got behind it too.
LordOfTheBoired - Wednesday, January 8, 2014 - link
Since I assume that means you know which standard the variable VBlank comes from, could you kindly point me towards it so I can read it?I'm genuinely curious, but can't even guess which of the umpteen-bajillion VESA standards it's buried in, even if I assume it's just one of the half-a-bajillion that have come out since the turn of the century and the rise of LCD monitors. .
It's something I really wish AMD would have specified, rather than just saying "there's a VESA spec for this" and leaving it at that.
mikato - Wednesday, January 8, 2014 - link
What I wonder, is why VBLANK still exists. It seems like VESA should have cleaned up that dinosaur for LCDs a long time ago. You shouldn't have to tell an LCD to keep something on the screen until a certain time. Keeping something on the screen is the default mode.