Philip Rebohle has announced a new version of DXVK, a Vulkan-based translation layer for Direct3D which allows running 3D applications on Linux using Wine.
A Vulkan-based translation layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine.
Features
- Implemented basic support for various subsampled YUV texture formats such as NV12, which is used for video playback in some games, as well as basic support for ID3D11VideoProcessor APIs. This is needed for videos in Nier Replicant to play back ( #2048), and may also be required for Contra: Rogue Corps ( #1676). Note that Nier videos currently do not work with Proton for other reasons.
- Implemented Conservative Rasterization for supported GPUs, which allows enabling the Nvidia ShadowLibs option in Final Fantasy XV and possibly similar options in other games.
- Reduced presentation latency by up to one frame under some circumstances. This may help with games that are limited by vertical synchronization, DXGI frame latency settings, or external frame limiters that operate on vkAcquireNextImageKHR (PR #2075).
- Added a frame rate limiter. This is mostly intended as a workaround for games that do not work correctly at high frame rates, but can also be controlled with an environment variable. Check the README for detais.
Device selection
Software-only Vulkan implementations such as Lavapipe are no longer reported to the application as long as there is a Vulkan-capable GPU present on the system. This should fix issues where games try using Lavapipe over a proper driver on some setups with recent Mesa versions and then crash due to hitting an unsupported texture format.
Lavapipe can now be used with DXVK by manually setting the VK_ICD_FILENAMES environment variable. While some of DXVK's feature requirements have been lifted in order to allow it to run, note that limitations of this driver may still cause some games to crash or render incorrectly, while others (such as The Witcher 3) were tested successfully.
Bug fixes and Improvements
- Fixed a number of performance and stability issues introduced with the D3D9 locking rewrite in 1.9 ( #2142, #2149, #2150, #2164, #2168).
- Rewrote the way staging textures are handled in D3D11. This can reduce memory usage and the number of image copies necessary to move data between the CPU and GPU, and fixes severe performance issues in Roblox on Nvidia GPUs.
- Removed some workarounds for very old Mesa versions (19.0 and older).
- Reimplemented locking primitives based on Windows SRW locks. This may be more efficient compared to the winpthreads implementation in mingw builds.
- Earth Defense Force 5: Work around performance issues caused by the game frequently turning vertical synchronization on and off between frames ( #2127)
- Far Cry 1: Spoof Nvidia GPU in order to enable higher-quality water rendering.
- Far Cry 5 and other Dunia Engine games: Fixed various issues due to uninitialized memory (PR #2137).
- GTA IV: Fixed broken app profile that would break the game on Nvidia GPUs.
- Risen 3: Fixed crash on Nvidia GPUs ( #2154).
- World of Final Fantasy: Forcibly disable MSAA to work around game bugs. Note that this should not impact visual quality since the game only uses MSAA for full-screen passes where it has no effect ( #1216, #2136).
Download DXVK 1.9.1
How to use