While Intel's Ivy Bridge processors are only two months old
, there's already a feature-rich driver and the full programming documentation
available. Meanwhile for the Radeon HD 7000 series from AMD that is now more than six months old, the open-source driver is still incomplete and the documentation is lacking.
It's been six months since AMD unveiled the first Radeon HD 7000 series graphics cards, the "Tahiti" HD 7900 series built upon their "Graphics Core Next" architecture. This happened back on 22 December 2011. In the months since we've seen the Radeon HD 7000 product line-up become fully engaged from the low-end models through the most recent Radeon HD 7970 GHz
graphics card. While the AMD Catalyst Linux driver has supported this latest-generation AMD graphics hardware, the open-source support is still far from complete.
There is the mainline "Southern Islands" Radeon DRM support in the latest Linux kernel to provide kernel mode-setting and other basic functionality, but that at present is limited -- e.g. still running the PCI-E 3.0-supportive GPU at PCI Express 1.0 speeds. The user-space side is still incomplete with the "RadeonSI" Gallium3D driver still being brought up to support proper OpenGL. AMD developers are also still deciding how to handle 2D acceleration as with HD 7000 series and future ASICs they just don't want to do it over their DDX driver.
As shown by the Mesa Git logs
, there's only even been four commits this month for the "RadeonSI" driver.
Long story short, for Linux end-users with this latest AMD hardware, the Catalyst driver is your only real option. A half-year later there still isn't any usable open-source support. Even for the packages that will make it into Ubuntu 12.10 and Fedora 18 it may not be quite baked yet for the HD 7000 series.
When it comes to proper programming documentation, that too is behind. As the latest status according to John Bridgman
, "The 3D programming docco on the xorg wiki covers from 6xx through NI pretty well since they all use the same core architecture. It wouldn't hurt to add delta docs for things like attribute interpolation in the shaders, although the ISA docs and driver code also cover the changes. SI needs an all new docco set and that should probably be highest priority."
While AMD's original open-source strategy
mandated that pretty much all documentation be made public, for the more recent generations of Radeon GPUs this has been slow to materialize in the public spotlight. Here's some recent comments by Luc Verhaegen
, one of the former SUSE RadeonHD developers, about still missing documentation: " While the documents that we did get initially (soon 5 years ago) were cleared during the time the SuSE/AMD contract was in place, are made public today, the documents that we got later on, like some ATI R7xx registers docs and R7xx AtomBIOS documentation (we never saw AtomBIOS documentation for R5xx or any R6xx type chip), were not cleared in that timeframe and were subsequently not released, despite Mr Bridgmans initial assurance that these docs would go out. So all you have is the kernel source and Matthias Hopfs excellent AtomBIOS disassembler (in as far as the latter is still useful on recent AtomBIOSes). The disassembler is a real life saver when trying to figure out how the AtomBIOS interface changes, or with spotting bugs in the BIOS, but i have no idea how useful that becomes without any register information."
In that same email thread, Alex Deucher of AMD even responds
about documentation for recent chips as "The easiest method would be to use the KMS code as a reference."
Hopefully by year's end we will see usable open-source support for the AMD Radeon HD 7000 series that can match or exceed that of the maturing HD 4000/5000/6000 series Linux code.