- Vulkan is a low-overhead, cross-platform 3D graphics and compute API. First released in 2016, it is a successor to OpenGL.
Learn more at Khronos.
To run a Vulkan application, you will need to install the package (and if you also want to run 32-bit applications), as well as Vulkan drivers for your graphics card(s). There are several packages providing a vulkan-driver:
- Intel: (or )
- NVIDIA: (or )
- AMD: there are three implementations, which could be installed simultaneously:
- (or ) - RADV (part of Mesa project)
- (or ) - AMDVLK Open (maintained by AMD)
- AUR (or AUR) - AMDVLK Closed (maintained by AMD)
The following are software rasterisers, so that you can use it on devices that do not provide Vulkan support.
- Lavapipe: (or )
- SwiftShader: AUR
For Vulkan application development, install , and optionally , AUR and (you can find the vulkaninfo tool in here).
To see which Vulkan implementations are currently installed on your system, use the following command:
$ ls /usr/share/vulkan/icd.d/
To ensure that Vulkan is working with your hardware, install and use the
vulkaninfo command to pull up relevant information about your system. If you get info about your graphics card, you will know that Vulkan is working.
Switching between devices
On systems with multiple GPUs you may need to force the usage of a specific GPU.
To run a Vulkan application forcing a specific device to be used, launch it with these environment variables:
$ ENABLE_DEVICE_CHOOSER_LAYER=1 VULKAN_DEVICE_INDEX=device_index
device_index with the
GPU id for the desired device as reported by
vulkaninfo (without the layer enabled).
Switching between AMD drivers
On AMD systems, it is valid to have multiple Vulkan drivers installed at once, and it may be desirable to switch between them.
Selecting via environment variable
As of2021.Q3.4, a new switching logic was implemented which enforces AMDVLK as the default and mandates you either
AMD_VULKAN_ICD=RADVto switch from the AMDVLK default,
- or globally set
DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1to re-enable the ICD loader method below.
$ VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json steam
To avoid crashes with 32-bit games, it is possible to assign the 32-bit variant and the 64-bit variant to the environment variable.
Selecting via AMD Vulkan Prefixes
AMD Vulkan Prefixes is a script for switching between all three Vulkan implementations. Install AUR, and prepend your application with the prefix you want. The executables provided are
vk_pro. For example, to use the AMDVLK Closed drivers:
$ vk_pro command
You can install the software Vulkan rasterizer known as lavapipe, for example to debug hardware issues:(or for the 32-bit version).
The following example shows running vulkaninfo with the required environment variables to force a full software rendering for Vulkan and OpenGL (with
__GLX_VENDOR_LIBRARY_NAME=mesa ensuring the command also works for PRIME users):
$ LIBGL_ALWAYS_SOFTWARE=1 __GLX_VENDOR_LIBRARY_NAME=mesa VK_DRIVER_FILES=/usr/share/vulkan/icd.d/lvp_icd.i686.json:/usr/share/vulkan/icd.d/lvp_icd.x86_64.json vulkaninfo
Vulkan hardware database
The Vulkan Hardware Database provides user reported GPU/driver combinations. Supplying own information is possible by using AUR or AUR.
NVIDIA - vulkan is not working and can not initialize
Check if you have any other vulkan driver installed, it may prevent NVIDIA's vulkan driver from being detected.
Alternatively set the environment variable
If you have a dual-graphics system, like NVIDIA Optimus, ensure that your system is using the graphics card that you installed Vulkan drivers for.
Optimus Manager (Client) version 1.4 Current GPU mode : nvidia GPU mode requested for next login : no change GPU at startup : integrated Temporary config path: no
No device for the display GPU found. Are the intel-mesa drivers installed?
Try to list both the intel_icd and primus_vk_wrapper configurations in VK_DRIVER_FILES
AMDGPU - ERROR_INITIALIZATION_FAILED after vulkaninfo
If after running
vulkaninfo on AMD card from GCN1 or GCN2 family you got error message like:
ERROR at /build/vulkan-tools/src/Vulkan-Tools-1.2.135/vulkaninfo/vulkaninfo.h:240:vkEnumerateInstanceExtensionProperties failed with ERROR_INITIALIZATION_FAILED
Then check if you have correctly enable support for this models of graphics cards (AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support).
One of possibility to check if gpu drivers are correctly loaded is
lspci -k, after running this command check kernel driver of your gpu. It should be
$ lspci -k
... 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] Subsystem: Gigabyte Technology Co., Ltd Device 226c Kernel driver in use: amdgpu Kernel modules: radeon, amdgpu ...
AMDGPU - Hangs when playing DirectX Vulkan games
Radeon-Vulkan seems to cause driver and/or GPU hangs when playing some games with usage of DirectX Vulkan.
kernel: [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* Waiting for fences timed out! kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_0.0.0 timeout, signaled ..., emitted ... kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process ... pid ... thread dxvk-submit pid ...
Switching to or enabling AMDVLK seems to fix the problem as discovered in BBS#275991.
AMDGPU - Crashes with DirectX Vulkan games
AMDGPU - Vulkan applications launch slowly
If you install environment variable
AMDGPU - Found no drivers!
Found no drivers!:
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 0. Skipping ICD. ERROR: [Loader Message] Code 0 : terminator_CreateInstance: Found no drivers! Cannot create Vulkan instance. This problem is often caused by a faulty installation of the Vulkan driver or attempting to use a GPU that does not support Vulkan. ERROR at /usr/src/debug/vulkan-tools/Vulkan-Tools-1.3.269/vulkaninfo/./vulkaninfo.h:688:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER