AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver

Written by Michael Larabel in Display Drivers on 8 October 2014. Page 2 of 3. 57 Comments

Besides the open and closed-source AMD Linux drivers sharing the same open-source and to-be-mainlined kernel driver, the two drivers will also use the same DRM library ioctl wrapper (libdrm), and the DDX (X.Org) driver. The X.Org driver shared will be using the GLAMOR acceleration code by default for both implementations -- GLAMOR is the means of doing 2D X.Org acceleration over OpenGL. So in the end the closed-source Catalyst driver on Linux will become just a smaller blob running in user-space for handling OpenGL, OpenCL/compute, etc. That blob will then communicate with the rest of the open-source stack while those just wanting to run the open-source driver can use the Gallium3D driver in its place with the Mesa and Clover state trackers, etc.

It's been just over seven years since AMD's original open-source GPU driver strategy that was also exclusively shared on AMD hardware has changed a lot in this time.

No Catalyst code is being open-sourced but all the new driver code is based on the existing Radeon code-base. AMD's new Linux driver code is expected to start coming out in stages this fall. Given that this monumental shift of their Linux driver strategy is for new hardware not yet released, I'd assume the first products to be supported by this new AMD kernel driver will almost certainly be the AMD Radeon Rx 300 series with the codenamed "Pirate Islands" GPUs. AMD's Pirate Islands graphics cards are rolling out in 2015 to succeed the Southern/Sea/Volcanic Islands.

In term of the new driver's design, I'm told, "The new kernel driver has been largely restructured around IP versions rather than ASIC families. E.g., rather than having a family specific initialization routines, there are tables of which IP versions (UVD, VCE, DCE, GFX, etc.) each ASIC has and a common API for loading and initializing the appropriate modules for that asic."

This change to AMD's Linux driver strategy has the potential to be wildly successful if properly executed. By now reducing the Catalyst binary-only portion of the driver to a small user-space blob, Catalyst users won't need to wait for new Catalyst updates for X.Org Server or Linux kernel ABI compatibility since those portions are now open-source... And Linux kernel mainline development principals won't allow breaking the user-space ABI that would cause issues for this new Catalyst model. This new Linux graphics driver stack will also allow Catalyst to more easily work on Mir or Wayland -- now the DRM/KMS back-ends can be used but the Catalyst closed-source blob will still need to support the necessary EGL extensions. All of this news also goes well with AMD's open-source HSA Linux plans.

My most recent Linux GPU/driver recommendation was within the GeForce GTX 980 Linux review: "When using the proprietary NVIDIA Linux driver you also really don't need to worry much about game compatibility with the latest Steam on Linux games thanks to most Linux game developers swearing by and using the NVIDIA blob. The AMD Catalyst Linux driver continues to improve with each release, but for right now the serious Linux gamers choose NVIDIA's driver...About the only situation where I wouldn't recommend the GeForce GTX 980 to Linux users would be to those explicitly swearing by the open-source GPU drivers...It's on the open-source driver front is where AMD has the upper-hand on Linux while NVIDIA doesn't remain too concerned about open-source driver support on the desktop -- though their relationship with Nouveau is improving." It will be interesting to see how AMD's new strategy swings this imbalance of driver states in 2015!

Related Articles