Happy Holidays: AMD Finally Pushing Out Open-Source Vulkan Driver
Ahead of the Vulkan 1.0 debut nearly two years ago, we heard that for AMD's Vulkan Linux driver it was initially going to be closed-source and would then be open-sourced once ready. At the time it sounded like something that would be opened up six months or so, but finally that milestone is being reached! Ahead of Christmas, AMD is publishing the source code to their official Vulkan Linux driver.
As part of the "Radeon Software Adrenalin Driver", in their press deck they tossed in a couple Linux slides even though Linux users aren't getting this same driver package. The big news of their Linux update is finally having this driver be open-sourced. As far as when the open-sourcing is going to occur, it will likely be within a few days. They were timing this news around the date of the Adrenalin driver release albeit still polishing up the code and thus the embargo expired this morning for being able to talk about this imminent code drop. They are committing to releasing this open-source Vulkan driver in the days ahead on GitHub. Obviously once that code drop occurs, you certainly will hear about it on Phoronix. The code is being opened under the "GPUOpen" umbrella.
They are promoting this open-source Vulkan driver for accelerating open-source Vulkan development on Linux, quick support for new AMD hardware, support for the Radeon GPU Profiler, easy integration of AMD's own Vulkan extensions, and they will support third-party contributions to their driver.
What Is This Driver
This Vulkan driver they are open-sourcing is their "official" Vulkan driver as found for Linux users already within the AMDGPU-PRO driver. It's also the shared code-base to their Vulkan Windows driver. Basically, it's their full-featured Vulkan driver that AMD has been investing in the past 2+ years.
With this being the official AMD Vulkan driver and from their shared code-base, it's important to note that this is NOT a driver living within Mesa. This AMD Vulkan driver lives in its own code-base and is not using or dependent upon Mesa/Gallium3D but rather just interfacing with libdrm / AMDGPU DRM / LLVM directly. I've been told by AMD that at least initially their open-source Vulkan driver is depending upon its own build of LLVM and in fact has already been uploaded to their repository... This doesn't appear to be a stock upstream LLVM tagged version, so this may cause some complications for those trying to package this driver for Linux distributions if now also depending upon out-of-tree LLVM patches. Hopefully everything will be playing nicely on the open-source upstream components soon, similar to the upstreaming work that's happening in the HSA / ROCm space.
As of writing, AMD hasn't yet finalized on any new "name" for this driver besides "Radeon Open Vulkan" to better distinguish it from the RADV Vulkan driver.
Can You Build It On Windows?
With this official Vulkan driver being shared across platforms, I was curious if this open-source access would allow it to be built on Microsoft Windows or if they are not opening up all of the bits for the Windows integration, etc. The AMD response to this question was, no, the code they are pushing out was stripped down to just their Linux code.
What About RADV?
This is where it becomes a bit murky and unfortunately a duplication of efforts moving forward... RADV was started out by David Airlie and Bas Nieuwenhuizen in what they figured would be a short-lived effort while waiting on the AMD open-sourcing milestone to occur. But with this AMD milestone having taken much longer than anticipated, in the mean time RADV has become a roughly feature complete and compliant Vulkan driver with modest performance potential. David Airlie has indicated in our forums that RADV is mature enough now where he doesn't plan to stop work on this driver when the AMD open-sourcing of their driver happens. Thus moving forward we're likely to see these two separate open-source Radeon Vulkan drivers continue.
At least with the official Vulkan driver not being Mesa-based, it isn't "stepping on the toes" of RADV or anything as it will continue to be its own separate code-base while RADV continues to live within Mesa.
Only time will tell what will happen in the future if RADV developers will lose interest and stop maintaining the driver or if Linux gamers will continue preferring RADV since its already packaged and available on many Linux distributions, etc.
Vulkan drivers are significantly lighter than OpenGL drivers. Additionally, both Vulkan drivers rely upon the AMDGPU DRM, AMDGPU LLVM back-end, and other shared resources. With both being open-source, it will be interesting if the friendly competition and source access leads to an optimization/performance race by RADV and if they are able to fill in the few missing areas thanks to the help of the AMD code. At least if RADV continues to be maintained, it won't be as much of a burden as maintaining multiple open-source OpenGL drivers that are significantly more complex and much more code.
AMD regardless will continue maintaining this Vulkan driver of their own since it's what is largely shared with their Windows driver and is their official Vulkan driver. Don't look for AMD to abandon their own driver in favor of RADV since it would be significantly more work getting RADV/Mesa running nicely on Windows, etc.
It Will Be Interesting
It will be interesting to see how this open-source Radeon Vulkan situation ultimately plays out with regard to its adoption and the future of RADV. Stay tuned to Phoronix to find out more when the code drop actually takes place, our subsequent testing, etc.
Plus there's still more Linux news from today's Adrenalin launch.
Update: AMDGPU-PRO 17.50 vs. RadeonSI/RADV benchmarks are now available for those wondering about the performance of the to-be-opened Vulkan driver.
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.