Vulkan is a next-generation graphics API created by The Khronos Group. It's designed to be used across a variety of platforms, from desktop to mobile computers.
Compared to OpenGL, Vulkan is a much lower-level API and enables developers to squeeze more performance out of a video card.
To use Vulkan in any useful capacity, at least one ICD or "Installable Client Driver" is required. ICDs may already be installed on the system, depending on the value(s) assigned to the VIDEO_CARDS variable. The current Vulkan support table is provided below:
|Driver name||VIDEO_CARDS value||Package||Supported|
||media-libs/amdvlk via ::guru||Almost5|
- 1 Uses the RADV Vulkan driver included in mesa.
- 2 Uses the ANV Vulkan driver included in mesa. Partial support begins on Ivy Bridge and up, more information can be found on intel.
- 3 Uses the NVIDIA Vulkan driver included in NVIDIA/nvidia-drivers.
- 4 Eventually NVK will able to support Vulkan on nouveau.
- 5 Uses the AMDVLK aka AMD Open Source Driver for Vulkan and maintained by community in GURU. Therefore it have not placed in main gentoo tree yet.
It may be useful to check the Vulkan Hardware Database which has detailed GPU hardware capabilities for Vulkan-capable GPUs.
To enable the Vulkan drivers in media-libs/mesa, set the
vulkan USE flag.
Applications don't interact with these ICDs directly, but use the Vulkan Loader provided by the package media-libs/vulkan-loader. This loader picks the correct ICD for the application and handles inserting Vulkan layers.
Any packages that are built with Vulkan support will pull in media-libs/vulkan-loader, but it can also be installed manually:
emerge --ask media-libs/vulkan-loader
USE flags for media-libs/vulkan-loader Vulkan Installable Client Driver (ICD) Loader
To use Vulkan Validation layers, set the
layers USE flag on media-libs/vulkan-loader. This will pull in media-libs/vulkan-layers automatically.
To use vulkaninfo or vkcube for verifying if Vulkan works, install dev-util/vulkan-tools:
emerge --ask dev-util/vulkan-tools
This is not related with VulkanTools, part of the LunarG Vulkan SDK and currently not packaged on Gentoo.
Support for Vulkan in Gentoo packages can be controlled by setting the
vulkan USE flag. For example, media-libs/libsdl2 can optionally enable Vulkan support support if set.
Wrong ELF class
This error that may appear when running vulkaninfo diagnostic tool from dev-util/vulkan-tools and used for Vulkan debugging.
ERROR: [Loader Message] Code 0 : /usr/lib32/libvulkan_intel.so: wrong ELF class: ELFCLASS32 ERROR: [Loader Message] Code 0 : /usr/lib32/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
This error can be ignored as both 32-bit and 64-bit drivers are attempted to be loaded on a multilib system.
For more information please see https://github.com/KhronosGroup/Vulkan-Loader/issues/108
- Xorg/Hardware_3D_acceleration_guide — a guide to getting 3D acceleration working using the DRM with Xorg in Gentoo.
- OpenGL — a graphics API created by The Khronos Group.
- OpenCL — a framework for writing programs that execute across heterogeneous computing platforms (CPUs, GPUs, DSPs, FPGAs, ASICs, etc.).