AMD Open-Source Driver For Vulkan "AMDVLK" Is Now Available

Written by Michael Larabel in Display Drivers on 22 December 2017 at 06:00 AM EST. Page 2 of 2. 66 Comments.

AMDVLK Source Code

The AMDVLK source is hosted and developed on GitHub under GPUOpen-Drivers. AMDVLK depends upon code in three repositories including LLVM, XGL (containing the Vulkan API translation and LLPC components; not to be confused with the old SUSE XGL project from over a decade ago), and then a separate repository with the PAL code.

The AMDVLK code and related AMD assets are under the MIT license. AMD will be welcoming community contributions to PAL / AMDVLK.

In terms of the AMDVLK development workflow moving forward, AMD will continue to be using an internal repository where they have their other API/OS code that is not open-sourced. But thanks to pre-processing automation, they should be updating the open-source AMDVLK source tree roughly on a weekly basis moving forward. Community code contributions would be pulled into AMD's internal tree and then spun back out into the open-source repository on their next update.

Making Use Of The AMDVLK Driver

Building AMDVLK and the relayed components requires the standard build dependencies, Python 3, CMake, Curl, the common X11/XCB dependencies, and obviously the Vulkan SDK too.

AMD will be publishing precise build instructions for Red Hat and Ubuntu systems for those wanting to try out the AMDVLK driver on their own. For now AMD just lists Ubuntu 16.04.3 LTS and Red Hat Enterprise Linux 7.4 as the supported operating systems.

AMDVLK depends upon Direct Rendering Infrastructure 3 (DRI3) being enabled by the running DDX driver.

Vulkan ICD

Thanks to the Vulkan ICD (Installable Client Driver), the compiled AMDVLK driver to be installed on the system just comes down to the amdvlk64.so driver (and amdvlk32.so if wanting the 32-bit Vulkan support) and then the AMD Vulkan ICD JSON file.

Basically, the AMDVLK driver can happily co-exist on the same system as say RADV without much of a problem. You can simply move the ICD out of the standard directory and then magically make use of RADV. This makes it quite easy for debugging or if wishing to run some games on AMDVLK and others on RADV, etc. At least better than the OpenGL driver scene with the current libGL situation (ignoring GLVND) and those complications.

AMDVLK also supports a /etc/amd/amdPalSettings.cfg configuration file for enabling/disabling the on-disk shader cache, some parameters for checking CPU-limited performance, and other tunables.

AMDVLK State

The code being open-sourced today is a few weeks newer than what is shipping currently in the AMDGPU-PRO 17.50 driver.

AMDVLK vs. RADV

AMDVLK and RADV are roughly comparable in feature terms. RADV does have some extensions AMDVLK does not while this official Vulkan driver does have a number of AMD-specific extensions, SR-IOV support, Radeon GPU profiler support, and other functionality not currently found in the Mesa Radeon Vulkan driver.

AMDVLK is likely performing faster than RADV in current Linux games based on our recent AMDGPU-PRO 17.50 tests, but I will have fresh AMD Vulkan performance numbers up over the next day or two.

As far as whether AMDVLK or RADV will become the de facto Radeon Vulkan driver by Linux gamers, only time will tell. RADV has a better start due to being open-source longer, easily packaged up with Mesa, and is working well for all current games (e.g. AMDVLK currently has some issued with DoW3 and F1 2017). But AMDVLK will continue to be maintained by AMD as that's what their Windows Vulkan code is derived from, etc. But likely defining how well AMDVLK advances will be how quickly it begins working with upstream LLVM so it can be easily packaged by distributions and how frequent and engaging the AMDVLK developers are with the community and keeping the code-base frequently synced from their internal repository.

Stay tuned for AMDVLK vs. RADV benchmarks and other coverage today and in the days ahead on Phoronix. Those also wanting to build out AMDVLK this holiday season, go forth and compile at GPUOpen-Drivers.

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.


Related Articles
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.