Help - Can not get vulkan working

Hi,
I am new to linux and still learning. I do play games so I wanted to set up my PC for light gaming too. I tried to install all mesa drivers but could not get vulkan working. (Also installed steam). Tried to install official driver from AMD site still could not got it working. After that I uninstalled the driver and installed mesa again. This is the error I get with vulkan info command.

1 Like

I’m no expert on Vulkan, but it looks like its running the VulkanInfo command with no errors. All I see are warnings. Which doesn’t mean that vulkan isn’t working. Is there an actual error message somewhere? How do you know vulkan is not working? Is there a specific game you can’t get working?

Can you post the full output from the vulkaninfo command?

It looks like you may be using a driver that is no longer supporting your GPU. You may need to install an older driver.

Update README.md: Remove Pre-Polaris and Pre-Raven GPUs support · GPUOpen-Drivers/AMDVLK@00f5343 · GitHub

that is not an error, it is nearly a warning that lavapipe is installed. my vulkan works perfectly and i still get this warning. i have lavapipe installed and get the warning, but that doesnt mean that lavapipe is even being attempted to be used.
does vkcube work?

Eh not exactly, “Failed to create instance” isn’t good :grinning_face_with_smiling_eyes:

To actually test vulkan I would rather use vkcube though, which is part of the vulkan-tools package (or vulkantools, not sure on Ubuntu). Either way it should be installed already since it’s typically in the same package as vulkaninfo. vkcube should open a window with a spinning cube, similar to glxgears for OpenGL.

That is AMDVLK, which is not a driver, but a Vulkan implementation. And this is also AMD’s implementation, not Mesa.

That said, the 200 series is a weird edge case that is supported in both the old radeon driver and the new amdgpu driver and since amdgpu categorises the 200 series support as “experimental”, radeon is loaded by default.

First, you should confirm which driver it’s using:

[tarulia@localhost]~% lspci -k | grep -EA3 'VGA|3D|Display'
0b:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] (rev c1)
        Subsystem: Sapphire Technology Limited Device e37f
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu

The second to last line is important (the last probably says amdgpu radeon for you).

IF yours is saying radeon, there is a kernel parameter you can use to make the radeon driver ignore these cards and enable the amdgpu driver to pick it up, but you’ll have to edit the grub config:

  1. sudo nano /etc/default/grub
  2. find a line that says GRUB_CMDLINE_LINUX_DEFAULT
  3. add radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1 at the end of it
    a. should look something like this using the example from arch wiki: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1"
  4. Save it (Ctrl+X → Y)
  5. regenerate grub config: grub-mkconfig -o /boot/grub/grub.cfg
  6. Reboot your PC
  7. After booting back up: lspci -k | grep -EA3 'VGA|3D|Display'

This should get amdgpu to be loaded on the card.
After that, try vulkaninfo and/or vkcube again.


edit: Funny side note on that AMDVLK link above:

Note: To run the Vulkan driver with AMDGPU upstream driver stack on SI and CI generation GPUs, amdgpu.si_support and amdgpu.cik_support need to be enabled in kernel
SI and CI are the 200 and 300 generation cards which are not listed in the supported cards anymore :smiley:

4 Likes

I have a card from the same generation and use Debian (Ubuntu’s base).

Here is what you need to do.

1.) Install the current MESA from your distro’s branch. I caution using PPAs from unknown sources and PPA’s in general because you really easily can install from source and you don’t know what is going on under the hood in the PPA. It is very common for people to do this on Ubuntu but rare for people on Debian. It is like running random code on the internet, you should figure out what you are doing rather than sudo <run_random_code>. (/philosophical_rant)

2.) Make sure you are running the latest stable kernel for your branch.

3.) Install the vulkan drivers and ICDs for youu card from your distro.

4.) Enable the amdgpu driver for your card. If you are using the radeon driver (Since you are on GNC 1.1, this is the default), you cannot use vulkan because it has not been backported to the radeon driver (this has been left to the community to fix).
Add the following to your kernel command line arguments radeon.cik_support=0 amdgpu.cik_support=1

5.) mkinitrd and reboot your system

6.) Test with vkcube et voila. (If you have issues at this stage, then we can assist further.)

The above works on Debian so you should not have any issues with Ubuntu.

Key point is to only install the stuff that is applicable to your system. You don’t need the nVidia or Intel or Software Renders. Also, the Arch Wiki will be you friend in this space. Even though the packages are differently named, you can still use it as a reference.
https://wiki.archlinux.org/title/AMDGPU

Also, you can search for packages here so that you know what to include in your apt install commands.
https://packages.ubuntu.com/

2 Likes

radeon.cik_support=0 amdgpu.cik_support=1

This solved the issue. It was using radeon drivers which does not support vulkan. Switching to amd one solves the vulkan related issue it seems. Thanks everyone for the help.

It looks like anything higher then proton 4.11 does not work. Proton 4.11 or under working perfectly. (Also newer DXVK do not work). Maybe this card has limited vunkan features support or I am missing another configuration.

1 Like

That could be an issue with MESA or you may need to specify the ACO compiler as that is becoming the default for MESA but our unofficial cards don’t follow the defaults because… reasons.

https://wiki.archlinux.org/title/AMDGPU#ACO_compiler
According to the wiki is is now the global default starting with Mesa 20.2

As per the original post they are on Mesa 21.2.1 so ACO would already be the default.

That said, I expect exactly that to be the issue.

When Valve announced testing for ACO they also said that ACO only works with GCN 3.0+, so if it is indeed default, that would be an issue.
Although I thought that it would use ACO regardless of Proton or DXVK version, I’m not entirely sure how that’s implemented.

Either way, you can disable ACO using a launch parameter for the game in steam (or before opening steam should also work):

RADV_PERFTEST=llvm %command%

edit:
Actually I think that is the old Environment variable and it is now

RADV_DEBUG=llvm %command%
2 Likes

I did not know that. It has been while since I have fired up steam this year, but I was using ACO since last year by specifying it in an Environment variable. I did not have any issues with it on my GCN1.1 GPU, but I am not playing anything newer than say 2019, so maybe it really sees issues with newer games.

Thanks for the heads up. I cannot wait to get off of PoorDozer and GCN and get onto Zen3+ and RDNA2+.

1 Like

Could be yea. Maybe it’s just one of those situations where they say a certain Generation but it’s only official support and the rest is on you (as basically all of Linux gaming on steam since “official” support is still Ubuntu 16.04 (lul))
Might also just be that not everything is implemented for all the GCN generations, who knows.

1 Like