AMD Releases Radeon HD 6000 Series Open-Source Support
On the same day that we learn VIA's Linux support is basically dead and after a troubling week for Intel with regards to open-source graphics support for their new Sandy Bridge CPUs, Advanced Micro Devices has come forward and released open-source graphics driver support for their AMD Radeon HD 6000 series of graphics cards.
AMD's Alex Deucher has pushed out the patches to the Linux kernel DRM, Mesa, and xf86-video-ati DDX that enable the support complete with 2D and 3D (OpenGL) acceleration. The Mesa support is initially for the classic Mesa driver, but the Gallium3D support should arrive literally at anytime now. The HD 6000 series support extends the R600 drivers, which was already extended once to support the Radeon HD 5000 "Evergreen" hardware. This though means that the HD 6000 series support is already fairly reliable thanks to leveraging the existing code-base and its support should be comparable to that of the ATI Radeon HD 5000 series GPUs. The Radeon HD 6000 series support should be at the same level as the HD 5000 series.
A limitation though of today's open-source push is that it only supports the Radeon HD 6000 "Northern Islands" GPUs as in the Barts, Turks, and Caicos GPUs, but not the newest GPUs under the Cayman codename, which are the Radeon HD 6900 graphics processors. There's significant enough differences in the ASICs that the support couldn't be delivered at the same time. When this Cayman support is delivered, it will come only atop the Gallium3D driver and not the classic Mesa driver.
When might we see open-source AMD Cayman support? According to AMD's John Bridgman when writing to us, "Cayman was the "next generation GPU core" where we plan to only implement on g3d. The other NI parts basically have a 3d core that uses the same programming model as Evergreen so there was no reason not to support classic mesa as well...It's hard to say because we don't have it running yet, we haven't started to look at IP issues, and I don't know how much bug fixing will be needed for Ontario and the first three NI parts (if you see a reference to btc that's barts / turks / caicos, ie the three NI parts that aren't cayman :)). Somewhere between 1 and 3 months is probably a safe guess."
The Radeon HD 6800 series first launched in late October of last year, which was greeted by proprietary Linux driver support with Catalyst, but it was not until today that there was any open-source support. This is in comparison to Intel having delivered same-day (actually, pre-release) support in Git prior to their newest Sandy Bridge hardware shipping. This open-source push today though is timed well so that the Direct Rendering Manager changes will be able to land in the Linux 2.6.38 kernel with its merge window having just been opened. However, this rules out having "out of the box" support for the Radeon HD 6000 series until H2'2011, in distributions like Fedora 16 and Ubuntu 11.10. Today's code drop will land with Linux 2.6.38 and Mesa 7.11, but it rules out seeing this support in distributions like Ubuntu 11.04, unless you build the graphics driver stack yourself or find a third-party package repository. The Cayman support though should hopefully be primed for the Linux 2.6.39 kernel and may fit still for Mesa 7.11 based upon John's release estimates otherwise it would be Mesa 7.12. For now though there is support from the latest closed-source Catalyst driver.
Today's work consisted of one patch against Mesa, four against the X.Org driver, and 22 against the Linux kernel, plus the new Northern Islands microcode files. These patches are going against Git master and are not living in any branched repository.
This Radeon HD 6000 series code drop comes two months after AMD introduced open-source Fusion (Ontario) graphics support.
UPDATE: More details on the HD 6000 code. Our recent Mesa vs. Gallium3D vs. Catalyst driver comparison is also relevant here since the same R600g driver is extended for the Northern Islands support. Last but not least, the fallacy behind open-source GPU drivers.