Vulkan

From wikipedia:Vulkan (API):

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.

Installation

Note: On hybrid graphics (NVIDIA Optimus/AMD Dynamic Switchable Graphics):

To run a Vulkan application, you will need to install the vulkan-icd-loader package (and lib32-vulkan-icd-loader 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:

Other drivers may be installed manually instead:

For Vulkan application development, install , and optionally and vulkan-tools (you can find the vulkaninfo tool in here).

Verification

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 vulkan-tools 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.

$ vulkaninfo

You can see https://linuxconfig.org/install-and-test-vulkan-on-linux for more information.

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 of amdvlk 2021.Q3.4, a new switching logic was implemented which enforces AMDVLK as the default and mandates you either

  • set to switch from the AMDVLK default,
  • or globally set to re-enable the ICD loader method below.

When , you can choose your preferred driver by setting the environment variable . For example, running Steam with the RADV driver is done by

$ VK_ICD_FILENAMES=/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 , and prepend your application with the prefix you want. The executables provided are , , and . For example, to use the AMDVLK Closed drivers:

$ vk_pro command

Software Vulkan: lavapipe

You can also install the software Vulkan rasterizer known as lavapipe: vulkan-swrast. There is no 32-bit vulkan-swrast package for now (even in AUR).

$ LIBGL_ALWAYS_SOFTWARE=1 __GLX_VENDOR_LIBRARY_NAME=mesa VK_ICD_FILENAMES=/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 or vulkan-caps-viewer-x11AUR.

Troubleshooting

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 to .

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.

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_ICD_FILENAMES

export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/nv_vulkan_wrapper.json

AMDGPU - ERROR_INITIALIZATION_FAILED after vulkaninfo

If after running vulkaninfo on AMD card from GCN1 or GCN2 family you got error message like: 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 , after running this command check kernel driver of your gpu. It should be .

Some forum threads about this problem:

terminate called after throwing an instance of 'dxvk::DxvkError'

Having both AMD and NVIDIA drivers can cause issues. Check with

pacman -Qs vulkan
local/lib32-amdvlk 2022.Q2.3-1
    AMD's standalone Vulkan driver
local/lib32-nvidia-utils 515.57-1
    NVIDIA drivers utilities (32-bit)
local/lib32-vulkan-icd-loader 1.3.221-1
    Vulkan Installable Client Driver (ICD) Loader (32-bit)
local/nvidia-utils 515.57-1
    NVIDIA drivers utilities
local/vulkan-icd-loader 1.3.221-1
    Vulkan Installable Client Driver (ICD) Loader
local/vulkan-tools 1.3.217-1 (vulkan-devel)
    Vulkan Utilities and Tools

and remove the wrong driver package.

AMD GPU 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.

gollark: Ah, the new meme channel is here, excellent.
gollark: I see.
gollark: Not necessarily. Knowledge degrades over time (unless you have writing/computers/etc but even then language evolves and people disagree on interpretation).
gollark: Or they'd think it was God weeding out the unworthy and want to go to prove themselves.
gollark: (until they get horrible cancer and/or radiation poisoning; I don't know if it would be bad or immediate enough that people would form the connection)
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.