Issues running proton/dxvk on AMD 9070 XT

Hi, one month ago I committed to an overdue upgrade of my system and decided to go with Linux for my new daily driver.
I’m a returning user. I’ve had manjaro on my laptop for close to ten years, but it suffered from the SSL issues regarding their repos and other nonsense. I was recommended endeavour and so far, I can’t say I’m too happy.

First, my specs and system parameters are as follows:

  • CPU: AMD Ryzen 7 9800X3D
  • GPU: Gigabyte Radeon RX 9070 XT Gaming OC 16 GB
  • RAM: TeamGroup T-Create Expert DDR5 2x16 GB @ 6000 MHz
  • MOBO: Gigabyte X870 EAGLE WIFI7
  • WM/DE: KDE Plasma v6.3.5 (KWin/X11)
  • Distro: EndeavourOS
  • Kernel: 6.14.6-zen1-1-zen

Here’s the detailed log from inxi -Fx: https://pastebin.com/ByzcYfPx

I made sure to avoid amdvlk and other problematic drivers. I followed the guide to installing them from lutris and read through the AMDGPU article on ArchWiki. I’ve got vulkan-radeon, vulkan-icd-loader and other necessities present.

I then tried running Overwatch 2, Among Us and Ultrakill on this system and I’ve been unable to get even a single one of those to boot more than a handful of time on the best days. That is 1 in rougly 20 attempts. Once Overwatch 2 manages to boot (haven’t had much luck with any other games) it actually runs fairly well and does not crash.

My friend also has an arch based system, more or less identical to mine, however he has an NVIDIA gpu and everything for him is a click away. Similarly I’ve read tons of reviews on protondb from people with AMD based systems on the same distro running without a hitch, so I’m completely lost as to what is the problem.

I’ve been able to launch wine apps like ltspice without any issues. I’m also positive it may have nothing to do with vulkan, since Team Fortress 2 runs natively using vulkan and I had zero issues with it. I also streamed on OBS using vulkan hardware encoding and I’ve done some rendering in blender in cycles with HIP on my GPU.

I want to clarify, my steam library is on an external drive, but it’s formatted as ext4. I’m not trying to reuse my old steam library. I’ve also checked all the permissions with stat on all the relevant directories and files.

I have no idea what the issue is, no one seems to know either, here’s a list of things I tried so far:

  • checked different wine versions (now I’m running wine-staging),
  • checked every proton version, including proton-ge-custom, wiping prefixes between changes
  • tried disabling the iGPU in the bios,
  • checked all permissions on my drives,
  • moved my games and proton to the system drive,
  • played with tons of launch parameters for respective games,
  • updated drivers and installed 32 bit versions of them,
  • checked glibc versions,
  • tried wayland,
  • upgraded my bios out of sheer desperation,
  • tried running with and without gamescope, with and without steam overlay,
  • tried different kernels (right now running linux-zen)

Here’s the logs that proton gives when running Steam games with PROTON_LOG="1" %command%.

Here’s a log of what vulkaninfo spits out: https://pastebin.com/XWKV8Waf

Games don’t even get as far as spawning a window. These logs are rather undecipherable to me, but I don’t know what’s in the wrong. According to a friend of mine, who watched me throughout this adventure, from assembling the pc through performing basic system maintenance and running games, I haven’t done anything wrong. This is a stock install, with KDE Plasma and a wallpaper change.

I’ve also performed a system upgrade since I wrote this, got my hands on latest mesa and it’s broken all the same (games still crash and don’t even boot). There’s nothing conclusive or related in dmesg or journalctl. However, the upgrade broke spectacle and the updated drivers also broke my OBS Studio installation, because the vaapi encoder is not available, oh well.

have you installed lib32-vulkan-radeon

yes, I’ve got 32 bit versions of mesa, vulkan-radeon and vulkan-icd-loader installed.

Just a wild guess:

Is resizable bar support activated within the bios ?

Yes, it is. I’ve toggled in on after performing the BIOS upgrade and disabling the iGPU. It was off before, but I don’t feel like toggling it on helped much.

Just checked the individual logs and there nothing that immediately catches my attention.

As the Blizzard Crash Reporter was called by Overwatch2, maybe there is a crash log within the shared steamapp folder that provides a bit more evidence ? Check this and the parent folders H:\games\steamapps\common\Overwatch/ErrorReporting/x64

I’ve located the directory on my external drive. The only thing that directory contains is the following:

  • msvcr100.dll
  • msvcp100.dll
  • msdia100.dll
  • dbghelp.dll
  • CrashMailer_64.exe

No logs to be found unfortunately. I’ve noticed throughout some logs there’s instances of errors regarding vulkan::create_gpu_resource, vulkan:create_keyed_mutex and DxvkMemoryAllocator failing. It’s in the log for Ultrakill. I’m just guessing, but given the available MiB in the logs it appears to have something to do with VRAM. No idea why it’s failing of course, just pointing out what I’ve read.

You could try to install dxvk-bin, but I’m not certain if this would address the issue via steam.

Have you tried lutris by chance ?

I did not try dxvk-bin, nor mesa-git. I’ve been told it’s not recommended, since at some point those AUR packages would end up conflicting with the system or steams packages during an upgrade.

In similar vein I haven’t tried steam from flatpak yet, even though it ships its own vulkan and stuff, potentially bypassing whatever broken system configuration I have, but it’s also not recommended.

I’ve not tried lutris no.

give dxvk-bin a try and install lutris, as you could use it for games that are not on steam as well.
If dxvk-bin doesn’t solves the issue you could remove the package without issues, as steam itself doesn’t depend on it.

I wouldn’t recommend mesa-git as it would have to be build locally.

Alright. Although I may be a wee bit clueless on this.

See, all my games are Steam games so wouldn’t I have to somehow trick or hijack steam into launching these games via dxvk provided by dxvk-bin instead of the one it ships with? How can I accomplish this?

I’m aware lutris may have some way of importing and running my steam library, nonetheless, I don’t quite understand how I can make this work.

Have you tried to start the games after dxvk-bin has been installed ?

As I didn’t have faced the issue, I do have to admit that my suggestion didn’t took into account how to get this to work. And I’m trying to figure this out as well.

First of all, for the purpose of diagnosis without getting lost in configuration hell :

  • You could also try to launch the game in steam with the following command
    PROTON_USE_WINED3D=1 %command% which should disable DXVK.

Other than that, to make use of the dxvk-bin

  • As per comment of the dxvk-bin package:

ssorgatem commented on 2018-03-27 06:47 (UTC) (edited on 2019-02-26 12:20 (UTC) by ssorgatem)
To enable DXVK in a wineprefix, do the following (with the WINEPREFIX variable properly set):
setup_dxvk install
In order to uninstall DXVK from a wineprefix:
setup_dxvk uninstall

  • The wineprefix for a specific title installed via steam according to this guide looks like this:

Install additional original Windows libraries with Winetricks (if required), where [appid] is your game id:
(look up steamdb if in doubt)
WINEPREFIX=“~/.steam/root/steamapps/compatdata/[appid]/pfx/” winetricks “win7”

If that is to complicated and doesn’t work out, the dxvk '.dll files could be copied manually into a specific proton runtime within it’s subfolder in ~/.steam/steam/compatibilitytools.d/

The nice part is, at least for steam, all subfolders within this path are treated as additional proton runtimes, e.g. you can download the latest release of GE-Proton as an archive and extract the folder within that path and steam will recognize it as an additional runtime, and it will be accessible via the compatibility tools within steam. Which could be handy for testing purposes.

I tried running the games with dxvk-bin installed, without any changes made to prefixes or anything. No changes.

My command line looks like this right now:
DXVK_LOG_PATH="/home/claymore/.logs/dxvk" DXVK_LOG_LEVEL="warn" PROTON_LOG="1" LD_PRELOAD="" %command%

I’ll modify it to include PROTON_USE_WINED3D="1".

I installed dxvk-bin from the AUR, so I don’t really know where its files reside, so I’m not sure about copying its DLL files anywhere. I didn’t pay attention during the package install, oops.

I’ve also already installed and tried out proton-ge, after installing it from the AUR and it didn’t work on its own, but it is available as a runtime in the dropdown on any given steam game. I’m not exactly sure how I set all this up with dxvk-bin

EDIT: None of the games I tried have a corresponding directory in ~/.steam/root/steamapps/compatdata/, I do have these on my external drive, so perhaps thats what the guide was talking about.

Just to clarify, with this commandl ine option steam will use the opengl backend to wrap the direct3d instructions instead of using the dxvk wrapper which is using vulkan.

That being said, if the games won’t launch even with the OpenGL backend, then dxvk won’t be the issue.

I managed to get Ultrakill to run consistently using the OpenGL backend. It runs pretty awful though. I can’t really check the framerate (steam overlay is not initializing / isn’t present), but it feels inappropriate for my system specs. If I had to guesstimate, about 50 fps, maybe. I disabled vsync, played around with graphical settings, but to no avail.

I’m assuming this narrows down the source of the issue to dxvk or something along those lines.

I guess it didn’t picked up the 9070XT, but the integrated Radeon chipset instead. Which you should be able to disable permanently via BIOS settings.

After i did some searching, it seems that CachyOS does support the 9070 XT out of the box, at least that has been the case when some Arch users ran into issues shortly after the release of the GPU.

So instead of a whole reinstall, you can try to install at least the CachyOS kernel via the AUR linux-cachyos as well as linux-firmware-git. Additionally, first success with the 9070 XT relied on the amdvlk driver.

amdvlk might be proprietary, yes, but it’s pretty forgiving in terms of other gpu drivers installed on the system, I would also prefer the opensource mesa driver. I can’t really tell if mesa-git would include the latest patches for the 9070 XT.

But I guess you finally want to get that beastly setup you’ve got to spit out some nice framerates I guess :wink:

Edit: On a further note… The next kernel release 6.15. should address multiple issues related to the 9070 XT. But until the release and it being available within the Arch repositories, it ill take some weeks. 6.14.8 has been released the day before yesterday and Arch is still on 6.14.6 currently.

I guess it didn’t picked up the 9070XT, but the integrated Radeon chipset instead. Which you should be able to disable permanently via BIOS settings.

Issue with this is that I disabled the iGPU in the BIOS a good while ago, it was recommended to me in other places where i asked for help :sweat_smile:

I heard about amdvlk and I’ve only been discouraged from even just installing it. I’m relatively worried it will become difficult to remove or switch out, provided it actually works and helps with my issue. I don’t really mind the proprietary driver, given it actually somehow fixes the issue, but I’m not sure if this is my gpu driver breaking or dxvk in general.

I am internally conflicted as to whether I should simply abandon Endeavour and go with Cachy, if it really does provide out of box support for my GPU, then again, technically this GPU is supported on the system as well. Like I pointed out, TF2 runs through valve’s dxvk, vkgears and vkcube work, streaming with OBS using vaapi encoding also works, so I’m kinda lost.

I’m not sure if I wanna wait weeks longer for the kernel update though, I was thinking to do a reinstall (maybe somehow I ruined the install?) or try a different distro.

EDIT: I uninstalled vulkan-radeon and lib32-vulkan-radeon. I also uninstalled xf86-video-amdgpu because it’s unnecessary (i think?). I followed that up with the install of amdvlk and lib32-amdvlk. Games still crash, logs look identical. They only run with the opengl backend, which still has terrible performance.

EDIT 2: I’ve installed linux-firmware-git, linux-cachyos and linux-cachyos-headers. I’m wondering if I have to do anything else, besides selecting that specific kernel during the boot to ensure everything works as intended (provided it supports the RX 9070 XT out of the box)