DIRT 5 Now Playable Through Proton!
Great news, racing fans. Just four months after the release of DIRT 5, I can confirm the game works fine using the latest commit of vkd3d-proton. Here’s the rundown for how it works:
- Use the following launch parameter for the game:
WINEDLLOVERRIDES="atiadlxx=b" %command%
- Use either Proton Experimental or Proton 5.13-6 (don’t change versions too often though; it may trigger Denovo DRM for 24-hour ban)
- Install dependencies for
vkd3d-proton
:wine, meson, glslang, mingw-w64
- Clone the
vkd3d-proton
repository, including submodules:git clone --recursive https://github.com/HansKristian-Work/vkd3d-proton
- Inside
vkd3d-proton
directory, compile the DLL files with:./package-release.sh master /your/target/directory --no-package
. Change “your/target/directory” to wherever you want the DLL files. - Copy the 64-bit DLL file (
d3d12.dll
) that’s inside “vkd3d-proton/x64” to DIRT 5’s installation directory - Run the game, wait patiently
- Profit
If in the event you already have the source for vkd3d-proton
, run git pull
followed by git submodule update --recursive
, then run the package release script to update the DLL files.
Here’s a video tutorial (with gameplay footage) as well: https://peertube.linuxrocks.online/videos/watch/f52e17c4-660c-4caa-bc37-1ac9593f07aa
This was tested with a GTX 1660; not sure what the results will be for AMD users. I’m also not sure how well it will run on graphics drivers prior to 460.56. Here’s the benchmark results (same graphics card with an Intel i5-8400 processor and 24 GB RAM):
As for the hurdle the game had, this is according to gofman from GitHub:
The game depends on consistent GPU identification through different sources and crashes if can’t match the adapters due to PCI ID mismatch (which happens when nvapiHack is on but winex11.drv/vulkan/whatever still reports real PCI ID).
He further goes on to say:
It doesn’t start on AMD right away because it wants to load atiadlxx.dll library (proprietary AMD driver extension)…We have a stub implementation for atiadlxx in Proton which is disabled by default. Running with WINEDLLOVERRIDES=“atiadlxx=b” with Proton Experimental and latest vkd3d-proton allows the game to start both on Nvidia and AMD (minus the hang on the initial screen mentioned above) without any further tweaks. On Nvidia matching the device ID actually doesn’t matter, it is atidlxx which it wants to load if sees AMD from dxgi. With the mentioned override the game looks playable on Nvidia (started the turorial successfully).
After replying to him several times to get the same results on my end, I finally got the game to work. Thanks gofman for the help! For more info on this, check out the issue on GitHub.
If any of you out there have this game and are using AMD, let me know your success rate. It’s great to see yet another game added to the 7000+ games already compatible with Proton.