AMD Releases New "AMDGPU" Linux Kernel Driver & Mesa Support
At long last the source code to the new AMDGPU driver has been released! This is the new driver needed to support the Radeon R9 285 graphics card along with future GPUs/APUs like Carrizo. Compared to the existing Radeon DRM driver, the new AMDGPU code is needed for AMD's new unified Linux driver strategy whereby the new Catalyst driver will be isolated to being a user-space binary blob with both the full open-source driver and the Catalyst driver using this common AMDGPU kernel driver.
Besides the new AMDGPU kernel driver, there's a new xf86-video-amdgpu DDX driver for supporting the X.Org Server on this new DRM/KMS component. Obviously there's also updated libdrm code too, which is aptly named libdrm_amdgpu. When it comes to the Mesa/Gallium3D driver, the Volcanic Islands hardware support is still being built atop the RadeonSI Gallium3D driver that supports the existing Radeon HD 7000 series GPUs and newer. A new AMDGPU winsys is added to Gallium3D, but the actual driver is still RadeonSI with obvious modifications for supporting the new AMD hardware. This new AMDGPU stack depends upon LLVM 3.6 or newer, but ideally LLVM 3.7 SVN for best support and performance.
I haven't yet tested the new driver stack on my Radeon R9 285, but will do so soon. The new support for VI/Carrizo includes OpenGL 3.3 support with RadeonSI, video decode using the UVD block with the Gallium3D VDPAU state tracker, and video encode using the VCE engine. AMD's Alex Deucher said that this initial code lacks power management for the Tonga GPU and other shortcomings due to being focused on AMD's yet to be released Carrizo APUs, but that the shortcomings will be addressed in due time.
All of this new AMDGPU code is explicitly about the Tonga GPUs and future hardware. Users of existing Radeon GPUs will still be using the current Radeon DRM driver that will still be maintained by AMD. Hidden behind a kernel option is basic support for AMD Sea Islands GPUs within the AMDGPU driver stack, but that's just in there for AMD's initial testing purposes.
The new AMDGPU kernel driver can be found via this Git branch by Alex Deucher. It's too late to get this code reviewed and cleared for Linux 4.1 so this driver will likely come now for Linux 4.2. There's also the new xf86-video-amdgpu driver that will need to get packaged up by distributions. The Mesa and libdrm changes haven't yet landed in their mainline code-bases so for now are here and here. Updated Radeon microcode blobs are also necessary.
It's great to see AMD finally get this new DRM driver published and will hopefully be in good shape by the time of the AMD Iceland graphics cards and Carrizo APU launch. I'll be testing the new code soon on my Radeon R9 285 graphics card. To support the frequent Linux hardware testing done at Phoronix and our often exclusive Linux graphics related news, consider subscribing to Phoronix Premium or making a contribution via PayPal. Next up for AMD Linux we'll hopefully see the new Catalyst driver published that leverages the AMDGPU kernel driver, but that probably won't come until the new hardware launches are within sight.