DXVK DirectX To Vulkan Translation Layer 1.7.2 Released
The latest DXVK Direct3D 9 to 11 to Vulkan translation layer has seven game-specific fixes and some Direxct3D 9 fixes specific to AMD's AMDVLK Vulkan driver. DXVK can be used as an alternative to Wine's own wined3d DX 9-11 to OpenGL translation layer while we wait for Wine to get their own C-implemented DX 9-11 to Vulkan back-end ready.
DXVK is a Direct3D 9 to 11 translation layer that transforms Direct3D draw calls into Vulkan. It is very useful as a back-end to Wine since it is slightly faster than Wine's own wined3d Direct3D to OpenGL translation layer.
DXVK development has essentially been in maintenance mode for almost a year now. That doesn't mean it's dead, bug-fix releases do happen.
DXVK 1.7.2 has seven game-specific fixes listed in the release-notes:
- Baldur's Gate 3: Fixed crash after character selection screen in D3D11 mode.
- Final Fantasy XIV: Improved stability on recent Nvidia drivers.
- Just Cause 3: Work around a game bug causing flickering terrain on RADV (#1553).
- Marvel's Avengers: Fixed spurious crashes due to invalid resource copies.
- Need for Speed Heat: Fixed some Vulkan validation errors.
- PGA TOUR 2K21: Fixed Vulkan validation errors and potential crashes.
- Trails in the Sky SC: Fixed fog rendering (#1771).
That's nice if you play or just heard of any of those games.
There's also some more general fixes that apply to all games and applications:
- Fixed D3D9 crashes on AMDVLK due to invalid Vulkan API usage (#1742).
- Fixed a major D3D9 regression that would cause crashes in many games.
- Work around stack overflows in some 32-bit D3D9 games.
- Added workarounds for rendering issues on AMD drivers in some Unity Engine games.
- Work around Unicode support on Windows being garbage (PR #1761).
- Log file creation can now be disabled by setting DXVK_LOG_PATH=none, but logs will still be printed to stderr (#1743).
The fix for crashes on the AMDVLK Vulkan driver some AMD users use as an alternative to Mesa's RADV Vulkan, even though the latest AMDVLK v-2020.Q3.6 driver is generally slower than the Mesa RADV driver, isn't really all that specific to AMDVLK. DXVK was pushing more constants than the pipeline layout specifies. That this only affected that one driver was probably just pure lock.
The Wine developers are working on their own Direct3D 9 to 11 translation to Vulkan translation layer for wined3d in pure C. They already have vkd3d for Direct3D 12. The latest vkd3d 1.2 isn't a huge marvel and you can't expect DirectX 12 every random game to "just work" but it can be used to run some games. The Wine DX9-11 to Vulkan translation is still in early stages of development. It can be used in Wine 5.1x versions by creating a new string called
renderer in ▸ ▸ ▸ . That string could be
gl or, if you want lots of crashes,
vulkan. DXVK really is a great alternative while the Wine developers get their own DX9-11 to Vulkan layer to a state where it can be used to do anything beyond verifying that it's there being worked on.
The DXVK 1.7.2 source code can be acquired from github.com /doitsujin/dxvk/releases. You should probably just wait until your distribution provides an updated package in their regular repositories unless you love compiling not-easy-to-build packages.