What is the proper way to install Vulkan drivers in Linux Mint 21.3 with an AMD GPU? (I think this issue is solved)
Edit: I think I've figured it out, it seems like Linux Mint defaulted to the wrong Kernel driver and I was able to switch it to the correct one.
I've already tried searching for this online but there is a reason I'm posting about it here. The last time I tried to install Vulkan drivers in Linux Mint, there was an update to the oibaf PPA that completely broke my Linux Mint installation and I had to manually reinstall it. I've read that, at least in the past, the oibaf PPA causes problems in Ubuntu but I can't find another solution to installing Vulkan drivers in Linux Mint. Is that the only way to install the Vulkan Drivers in Linux Mint, or is there another way?
Also, yes, Vulkan works in Windows and it did work in my previous installation of Linux.
Could you post the output of
vulkaninfo
including any errors that it might also print.If it's not shown, what GPU do you have?
Also run
lspci -k
, is your GPU using amdgpu or the old radeon driver?My computer has an AMD Radeon R2 Graphics. It seems like both the radeon and the amdgpu modules are installed but the kernel driver in use is radeon. I'd show the output of "vulkaninfo" but it doesn't seem to show the full thing, is there a way I can get it to show the full output?
Cool, you're going to have to enable Sea Islands (CIK) support for amdgpu. You should just have to add
radeon.cik_support=0 amdgpu.cik_support=1
to your kernel parameters. You're probably using GRUB so to do that you'll need to runsudo nano /etc/default/grub
to edit it's config file, then add the above to the end ofGRUB_CMDLINE_LINUX_DEFAULT
(keep it in the quotes, but space seperated from the previous parameter). Then reboot and hopefully Vulkan works!Alternatively, there's a section on the Arch Wiki for this, it should work fine for Mint too: https://wiki.archlinux.org/title/AMDGPU
Did I do it correctly?
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.cik_support=0 amdgpu.cik_support=1"
After saving, is there anything else I have to do it get it to work?Oh whoops yeah there is, run
sudo update-grub
.But otherwise that config looks correct.
Ok, do I need to restart my computer now?
Yep!
Ok, it seems to have worked as the game I was using for testing seems to be working fine.
Although, I keep getting the error message
(WARNING: radv is not a conformant Vulkan implementation, testing use only.)
, is that to be expected?Epic!
I've never seen that on modern AMD stuff that uses radv, but I'm sure it's probably fine.
I had that warning too with a r9 270x and if I remember correctly it was because radv didn't have official/full support for GCN =<2, so what they're saying is something in the line of... it may break. In my case, it worked beautifully gaming with proton, etc.
Did you manage?
Yeah it seems like it's working now.
Vulkan drivers come as part of Mesa, which would already be part of Linux Mint. Unless you have an Nvidia GPU, or a GPU that's somehow too modern for Mint 21.3.
My GPU shouldn't be too modern because it just recently became EOL. The only thing I know is that when ever I try to run something that requires Vulkan in Linux, it defaults to using Lavapipe instead of my GPU and if it try to disable Lavapipe, it acts like Vulkan isn't installed.
What GPU are you using? What influenced you to add “Oibaf PPA” instead of using the default built in Mesa drivers that came with Mint? No judgement, just trying to figure out what led you here, so we can unravel it. Because as the other poster mentioned, Vulkan for Amd should have worked out of the box on a fresh install.
Edit, to clarify, did you add the repo because you thought that mint didn’t have drivers and that was the way to get them? Or was there a different reason you needed to add the repo?
Because Vulkan has never worked out of the box for me in either Ubuntu nor Linux Mint and every single search result on every single search engine states that Ubuntu and it's derivatives need that PPA for Vulkan to work. I would have tried other solutions if there was even a single mention of another way to get Vulkan working.
What is the GPU?
The GPU is an AMD Radeon R2 Graphics. It was a bit hard for me to find and I have no idea if it's accurate but it should support at least Vulkan 1.2.170.
Try running a command like
vulkaninfo --summary
.Then try running
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json vulkaninfo --summary
(alternatively, just try running whatever else it is you use that reports you only have lavapipe available). See if there's a difference and if it finally reports the hardware being used.For some reason, I can't get Lemmy's "code" fuction to work properly in this reply but both commands give the same information:
`j@j-HP-Notebook:~$ vulkaninfo --summary WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 2. Skipping ICD. ERROR: [../src/amd/vulkan/radv_physical_device.c:1877] Code 0 : Device '/dev/dri/renderD128' is not using the AMDGPU kernel driver: Invalid argument (VK_ERROR_INCOMPATIBLE_DRIVER)
VULKANINFO
Vulkan Instance Version: 1.3.204
Instance Extensions: count = 20
VK_EXT_acquire_drm_display : extension revision 1 VK_EXT_acquire_xlib_display : extension revision 1 VK_EXT_debug_report : extension revision 10 VK_EXT_debug_utils : extension revision 2 VK_EXT_direct_mode_display : extension revision 1 VK_EXT_display_surface_counter : extension revision 1 VK_EXT_swapchain_colorspace : extension revision 4 VK_KHR_device_group_creation : extension revision 1 VK_KHR_display : extension revision 23 VK_KHR_external_fence_capabilities : extension revision 1 VK_KHR_external_memory_capabilities : extension revision 1 VK_KHR_external_semaphore_capabilities : extension revision 1 VK_KHR_get_display_properties2 : extension revision 1 VK_KHR_get_physical_device_properties2 : extension revision 2 VK_KHR_get_surface_capabilities2 : extension revision 1 VK_KHR_surface : extension revision 25 VK_KHR_surface_protected_capabilities : extension revision 1 VK_KHR_wayland_surface : extension revision 6 VK_KHR_xcb_surface : extension revision 6 VK_KHR_xlib_surface : extension revision 6
Instance Layers: count = 7
VK_LAYER_INTEL_nullhw INTEL NULL HW 1.1.73 version 1 VK_LAYER_MESA_device_select Linux device selection layer 1.3.211 version 1 VK_LAYER_MESA_overlay Mesa Overlay layer 1.3.211 version 1 VK_LAYER_VALVE_steam_fossilize_32 Steam Pipeline Caching Layer 1.3.207 version 1 VK_LAYER_VALVE_steam_fossilize_64 Steam Pipeline Caching Layer 1.3.207 version 1 VK_LAYER_VALVE_steam_overlay_32 Steam Overlay Layer 1.3.207 version 1 VK_LAYER_VALVE_steam_overlay_64 Steam Overlay Layer 1.3.207 version 1
Devices:
GPU0: apiVersion = 4206847 (1.3.255) driverVersion = 1 (0x0001) vendorID = 0x10005 deviceID = 0x0000 deviceType = PHYSICAL_DEVICE_TYPE_CPU deviceName = llvmpipe (LLVM 15.0.7, 256 bits) driverID = DRIVER_ID_MESA_LLVMPIPE driverName = llvmpipe driverInfo = Mesa 23.2.1-1ubuntu3.1~22.04.2 (LLVM 15.0.7) conformanceVersion = 1.3.1.1 deviceUUID = 6d657361-3233-2e32-2e31-2d3175627500 driverUUID = 6c6c766d-7069-7065-5555-494400000000 `
This is the smoking gun, btw.
I see you've got it working, so I'll just add a bit of explanation.
AMD GPUs used to use a driver called
radeon
. It was replaced with the currentamdgpu
driver. For a while, you had devices that were supported by both drivers and you could choose between the stableradeon
driver that was missing features like Vulkan and HDMI audio or the brand newamdgpu
driver that had the newest features but was unstable and not well tested.The kernel has a policy of not unnecessarily breaking things with kernel changes so even though
amdgpu
has been well tested in the years since, devices from that era still default to theradeon
driver and need to be forced onto theamdgpu
driver.What if you do have an Nvidia GPU...?
I'm not a Mint user but according to this page https://www.linuxmint.com/rel_wilma.php
Oh... I thought there'd be more to it than that.
Lol, sorry. xD
I mean, there is, but people have worked hard to set it up so you can just click the button and it all happens.
We must praise those people! \O_O/
It is preinstalled as it is natively supported by Linux (thanks AMD)
Your issue lies elsewhere and will not be solved by installing random PPAs
Ok, what is my solution then? Right now, the only thing I know is that when ever I try to run anything in Linux that requires Vulkan, it defaults to Lavapipe instead of using my GPU and if I try to disable Lavapipe, it acts like Vulkan isn't installed.
What's the GPU?
you should just install mesa, no?
Yes but the problem for me was more complicated. Mesa is installed by default in Linux Mint and Vulkan should have worked out of the box but for some reason it defaulted to the wrong Kernel driver for the GPU. I didn't know this before posting and, as I stated in other replies, every search result on every search engine told me the wrong information.
Sorcery.
You must commune with the machine spirit.
This is the setup I use in debian, it might give you a hint (no PPAs, standard repos):
sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386 libvulkan1 libvulkan1:i386 vulkan-tools vkd3d-demos mesa-opencl-icd clinfo libxrandr2 libxrandr2:i386 libvulkan-dev libvulkan-dev:i386 libgl1-mesa-dri libgl1-mesa-dri:i386 vkmark glmark2-x11 firmware-amd-graphics radeontop xserver-xorg-video-amdgpu
This is what I get when I try to run that set of commands: `j@j-HP-Notebook:~$ sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386 libvulkan1 libvulkan1:i386 vulkan-tools vkd3d-demos mesa-opencl-icd clinfo libxrandr2 libxrandr2:i386 libvulkan-dev libvulkan-dev:i386 libgl1-mesa-dri libgl1-mesa-dri:i386 vkmark glmark2-x11 firmware-amd-graphics radeontop xserver-xorg-video-amdgpu [sudo] password for j:
Reading package lists... Done Building dependency tree... Done Reading state information... Done Package firmware-amd-graphics is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Unable to locate package vkmark E: Unable to locate package glmark2-x11 E: Package 'firmware-amd-graphics' has no installation candidate `
You need to activate contrib, non-free, non-free-firmware repos:
sudo nano /etc/apt/sources.list
You should have something likedeb http://URL_OF_THE_REPO DISTRIBUTION main
, you need to addcontrib non-free non-free-firmware
to the end of those lines like:deb http://URL_OF_THE_REPO DISTRIBUTION main contrib non-free non-free-firmware
then you dosudo apt update
and try installing the packages again.I don't know if I need to do that because Vulkan seems to be working now but is that correct? My sources.list file is empty and it states the wrong version of Linux mint. Should I actually edit "/etc/apt/sources.list.d/official-package-repositories.list", seeing that that has the actual list of repositories?
I think those are Debian specific, Mint has Ubuntu as its base.
You're right, I don't have mint/ubuntu installed nor that kind of hardware (anymore), so I can't give precise instructions. I was just like: see that you're not missing any of these packages/repos/firmware and adapt it to your needs. I had to deal with a laptop with dual gpu (intel+amd) and it was such a pain in the ass to get it working. I think you needed to have n packages installed, add grub flags, configure X11 to use amdgpu and blacklist radeon and even when I had it working, the amd gpu was only compatible with a limited amount of vulkan instructions so I had graphical glitches and games breaking. Old dual gpu setups are just a nightmare.
Try using Pop OS or Zorin.
I would but I'm actually using Linux Mint because the Xfce edition has low ram usage. My computer's ram is very slow and it's only 4GB.