DXVK 1.0 Released (Vulkan-based Compatibility Layer For Direct3D 11/10)

DXVK, the Vulkan-based translation layer for Direct3D 11 and 10, has reached version 1.0, and includes performance improvements fixes for quite a few games, and a new setup script.

DXVK allows running Direct 3D 11/10 3D games and application on Linux using Wine. To use DXVK you'll need Wine, the Vulkan library, as well as a Vulkan capable GPU.

Overwatch Wine DXVK 1.0

The latest DXVK 1.0 adds an option to show the current D3D feature level in the DXVK HUD. This is especially useful if you're interesting in knowing the feature set supported for a particular Direct3D 10 game. This isn't particularly useful for D3D 11 games, since this will show 11_0 for almost all games. To see this information, export DXVK_HUD=api.

What's more, with this release two new Vulkan extensions are used (VK_EXT_memory_priority and VK_EXT_memory_budget) if they are available. These extensions improve behavior under memory pressure, and report available VRAM more accurately to applications.

Other improvements in DXVK 1.0:

  • The device filter now matches substrings rather than the full device name, which may help if the device name changes after driver updates on RADV.
  • Minor performance improvement on RADV by generating better shader code.
  • Minor improvements to CPU overhead in some scenarios.
  • Potentially improved frame time consistency on Nvidia in some games.
  • The state cache directory will now be created if it does not exist yet.

DXVK 1.0 also ships with game-specific improvement and fixes too, including:

  • Resident Evil 2: Enabled new d3d11.relaxedBarriers option to improve performance by up to 10% in GPU-limited scenarios. Enabling this option may cause issues with other games so be careful when using it.
  • Overwatch: Implemented proper fix for shadow issues using the new VK_EXT_depth_clip_enable extension. In case this is not available, DXVK falls back to the previous behavior.
  • Far Cry 3 / 4 / Blood Dragon: Fixed lighting artifacts around buildings on some GPUs.
  • Far Cry Primal: Fixed weird rendering issues that would occur on some systems.
  • Final Fantasy XIV: Added workaround for division-by-zero issue causing artifacts.
  • Heroes of the Storm: Fixed lighting issues on some objects.
  • Monster Hunter World: Fixed invalid SPIR-V shader causing crashes on the Nvidia 418.43 driver.

And finally, the winetricks verb was replaced with a new Bash setup script in order to overcome some limitations. Thanks to this, it's possible to use the Wine DXGI implementation instead of the one provided by DXVK by simply omitting the DLL override. This can be done by running setup-dxvk.sh install --without-dxgi when installing DXVK into a Wine prefix.

The advantage of this is that you can use Wine's vkd3d for D3D12 games, while using DXVK for D3D11 games.

Also, the new setup script can install the DXVK dlls as symbolic links, making it easier to update DXVK for multiple Wine prefixes (run it with --symlink).

To download the latest DXVK, head over to GitHub, where you'll find binaries, as well as the source. For most users though, using an application such as Lutris makes playing games with Wine and DXVK a lot easier. For a Lutris quick start guide, take a look at: How To Use Lutris To Play Windows Games On Linux.

To use DXVK 1.0 with Lutris, select a game, right click it and choose Configure, head to the Runner options tab, and select 1.0 for the DXVK version.