DIRT 5 Now Playable Through Proton!

By

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:

  1. Use the following launch parameter for the game: WINEDLLOVERRIDES="atiadlxx=b" %command%
  2. 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)
  3. Install dependencies for vkd3d-proton: wine, meson, glslang, mingw-w64
  4. Clone the vkd3d-proton repository, including submodules: git clone --recursive https://github.com/HansKristian-Work/vkd3d-proton
  5. 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.
  6. Copy the 64-bit DLL file (d3d12.dll) that’s inside “vkd3d-proton/x64” to DIRT 5’s installation directory
  7. Run the game, wait patiently
  8. 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):

DIRT 5 Benchmarks

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.