Fixing Horizon Zero Dawn freeze crashes / driver timeout in 2024

· 327 words · 2 minute read

Horizon Zero Dawn on PC does not seem well supported anymore at this point in time. Despite being an AMD sponsored game, there are several reports of newer AMD Drivers causing constant freezing crashes and driver timeouts.

This is my own little documentation on how to fix this issue (unfortunately I don’t have a digital garden for that… yet) and to make it easier to find for others having this issue. No worries: This blog isn’t and wouldn’t be monetized.

The trick is to bypass the use of DirectX 12, which seems to be causing the crashes in combination with the modern AMD implementation. There are some other issues with exotic audio devices in the game, suggesting there’s little resilliance to not running on expected hardware.

We can do this with the help of DXVK and vkd3d-proton. This translates DirectX 12 calls to Vulkan, and is also what powers most gaming on Linux, including the Steam Deck. A lesser known fact about these projects is that they’re just Windows DLL binaries, since they run under Wine, and can be used on Windows to help some games run better or more stable. This in fact may work with a lot of other games, just don’t try it with multiplayer ones since the foreign code may be detected by anticheats.

To fix the game:

  1. Get something to open zstd files. 7-Zip ZS works well for this and can replace your existing 7-zip install. Run winget install mcmilk.7zip-zstd or install from the GitHub Releases page.
  2. Download the latest DXVK. Get the tar.gz file.
  3. Download the latest vkd3d-proton. This is only needed for DX 12 games (Horizon Zero Dawn is one of those).
  4. Extract the DLL files found in the archive to your game folder. Usually you’ll need the ones in the x64 directory.
  5. Play the game. You should see two new files in the game folder, <filename>_d3d11.log and <filename>_dxgi.log, indicating the game now runs the DirectX to Vulkan translation layer.