(SOLVED) DXVK Error "Failed to create Vulkan 1.1 instance"

Hello,
I’ve been wasting a lot of energy lately to try DXVK for the first time (for GTA 5) and I’m running out of options.

Here is the logs when I try to launch it (I installed it through Steam and then downloader a Lutris installer on the website), Steam launches correctly and then Wine crashes on me.
https://paste.ubuntu.com/p/dsW5Ys8K4F/

I’ve followed the informations on the “How to: DXVK” wiki page, or the least that there is, and browsered the web for infos.
My graphic card appears to be compatible with Vulkan as other users with this card managed to get it working (and is also listed in the compatible GPU).

I have a few clues but not sure of anything:

  • Mesa version seems to be 18.3.6 while the recommended version is 19.2 but I can’t find a way to update it, I get errors when I try to compile a 19.3 version.
  • I’ve rebooted a few times my computer and I got the same result everytime
  • I’ve read that LLVM 7.0.1 was somewhat causing issues with Vulkan or something similar, but I can’t manage to upgrade LLVM on Buster.
  • Following the info from DXVK Commong Issues page, installing libvulkan1 libvulkan1:i386 and mesa-vulkan-drivers mesa-vulkan-drivers:i386 is still giving me this error.

Thank you for your help, I hope I will be able to fix it. Here is some additional info below.


OS: Debian Buster (10)
Kernel: Linux 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux
GPU: AMD Radeon R9 280X (Vulkan compatible)
Wine version: 4.0-2
Lutris runner: lutris-5.2

GLXINFO Output

OpenGL renderer string: AMD TAHITI (DRM 2.50.0, 4.19.0-8-amd64, LLVM 7.0.1)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.3.6

VULKANINFO Output

ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
/build/vulkan-tools-1.2.131.2~rc1/vulkaninfo/vulkaninfo.h:477: failed with ERROR_INITIALIZATION_FAILED

I upgraded from Debian Buster to Debian Bullseye (testing), and got a lot of new libraries versions available.

Here is my glxinfo output now:

glxinfo

OpenGL renderer string: AMD TAHITI (DRM 2.50.0, 5.4.0-4-amd64, LLVM 10.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.1.0-devel (git-8792464 2020-02-26 focal-oibaf-ppa)

I now have Mesa 20.x and LLVM 10 which helped getting rid of some errors. Still, when I try a command like vulkaninfo here is what I’m getting:

vulkaninfo output

ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32
ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 0. Skipping ICD.
/build/vulkan-tools-1.2.131.2~rc1/vulkaninfo/vulkaninfo.h:477: failed with ERROR_INITIALIZATION_FAILED

Other than that, when I try to use the Installer Analyser for Vulkan, I get this:

vkvia output

amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.
VIA_ERROR: Vulkan failed to find a compatible driver.


To summarize, here is the steps I did:

  • Installed a game needing DXVK through Wine Steam runner
  • Upgraded to Debian testing (in order to get the latest drivers)
  • I installed libgl1-mesa-dri:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386 libvulkan1 vulkan-tools vulkan-utils vulkan-validationlayers as requested by the “Installing Drivers” wiki page about DXVK.
  • I installed the Vulkan SDK from the official website for my distro.
  • I rebooted my computer several times
  • I get the errors above.

Even if there is a lot of info on the web it is still really technical, so I would appreciate some help with these new elements above. I can understand there is an issue with drivers now.

Although I’m totally lost because it has been said that AMD Radeon R9 200 Series GPUs are Vulkan compatible…

The vulkaninfo error is caused by trying to run a 64-bit binary with 32-bit driver libraries. Maybe you may want to uninstall the i386 slot drivers for now? Of course, making it use 64-bit libraries would probably be better in the long run, but checking if it doesn’t confuse them when only 64-bit ones are installed is a start.
As for the second one, it’s either that your Mesa determines wrong DRM or maybe you need some legacy version of Vulkan drivers… You may want to try looking up something like “vulkan linux R9 280X” to check if there’s any details for your card available (like this thread).

I managed to fix the issue, now vulkaninfo and vkcube are working correctly, all I did was figuring out that my card was categorized as “Southern Islands” (SI) and I had to apply a grub config:
radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1 amdgpu.dpm=1 amdgpu.dc=1

@LeXofLeviafan Thanks for answering, I already came across this link but the result is the same after trying out to block radeon drivers and applying the grub config just above.

But when I try to launch a DXVK game through Lutris, the wine prefix seems to crash. Here is a full log with debugging activated:
https://paste.ubuntu.com/p/sw3cSNn4vw/

I even used the custom Steam installer available on the website which is marked as “Gold” but no luck either… Making progress but running out of ideas…


EDIT:
Solved!! In Lutris > Preferences > System Options > ICD Loader, it should be on AMD_ICD64.json instead of the radeon one. Then on the game > Configure > ICD Loader as Auto (Default).

I then restarted Lutris and it now works perfectly!

From what I’ve gathered AMD_ICD64.json is for “newer” AMD GPUs, it’s the one to choose. Unfortunately I found no info on what “recent” means in this particular case, but my GPU appears to be considered as “newer” although being pretty old.