Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

The DXVK development team has officially released DXVK 3.0, introducing a major update to the popular Direct3D-to-Vulkan translation layer used by Wine and Proton. The new release delivers significant performance improvements, reduced memory consumption, enhanced compatibility, and a range of game-specific fixes for Linux gamers running Windows titles.
One of the biggest changes in DXVK 3.0 is the transition to the dxbc-spirv shader compiler. This replaces the project’s previous shader translation system across all supported shader models.
The updated compiler produces more efficient SPIR-V shaders, helping resolve numerous rendering problems that were previously difficult or impossible to fix, including issues caused by invalid shaders generated by Microsoft’s FXC compiler or undefined game behavior.
The optimized shader code also reduces memory usage in certain games. For example, titles such as Overwatch and God of War can use up to 1 GB less memory, improving overall system efficiency.
DXVK 3.0 also improves the shader compilation process by moving all shader translation tasks to background worker threads.
Previously, only Vulkan pipeline compilation occurred asynchronously, while shader translation still ran on the main application thread. By offloading this work, many games can launch faster and provide a smoother startup experience.
Another major enhancement is the adoption of the VK_EXT_descriptor_heap Vulkan extension as the default resource binding method on supported graphics drivers.
This replaces the descriptor buffer model introduced in DXVK 2.7 and delivers similar CPU performance while significantly reducing GPU overhead, particularly on modern NVIDIA graphics cards.
To take advantage of this feature, NVIDIA users need driver version 595.84 or later. Older driver versions will continue using the previous binding method because of known performance regressions.
DXVK 3.0 introduces several improvements specifically for Direct3D 8 and Direct3D 9 games.
The legacy fixed-function rendering pipeline is now handled through a pair of optimized ubershaders. As games change rendering states, specialized shader variants are compiled automatically in the background, improving rendering efficiency without interrupting gameplay.
The Direct3D 9 backend has also received smarter buffer management. Instead of immediately placing all buffers into video memory, DXVK now uploads many resources only when needed, reducing VRAM usage while maintaining performance.
Shared resource support has been updated to work directly with Wine’s upstream implementation, eliminating the need for Proton-specific patches.
To preserve compatibility with older Proton releases, the previous implementation remains available temporarily but is expected to be removed in a future version.
Beyond the major architectural improvements, DXVK 3.0 includes numerous optimizations and bug fixes, including:
These changes contribute to improved stability and better performance across a wide range of Windows games running on Linux.
The release also addresses issues affecting several popular titles.
Notable fixes include:
Additional compatibility improvements have been made for games including:
One important requirement introduced with DXVK 3.0 is support for Vulkan 1.4. Users will need graphics drivers that implement the Vulkan 1.4 specification.
Most recently updated graphics drivers already include this support, so only systems running significantly older drivers are likely to encounter compatibility issues.
The DXVK developers also advise caution for Windows users with AMD RDNA1 and RDNA2 graphics cards.
Since AMD no longer provides feature updates for these Windows drivers, they remain limited to the older binding model and may experience reduced DXVK performance. As a result, affected users are encouraged to either remain on DXVK 2.x or consider running DXVK under Linux, where newer driver support offers better performance.
DXVK 3.0 represents one of the project’s most significant updates in recent years. By introducing a modern shader compiler, reducing memory usage, improving compatibility with Wine, enhancing Direct3D 8 and 9 support, and adopting Vulkan 1.4 technologies, the release delivers meaningful performance gains for Linux gamers.
Whether you’re using Wine or Proton to enjoy Windows games on Linux, upgrading to DXVK 3.0 can provide faster loading times, lower memory consumption, improved graphics compatibility, and a smoother overall gaming experience.
DXVK has just released version 3.0, as a major update to the Direct3D-to-Vulkan translation layer widely used by Linux gamers through Wine and Proton to run Windows games on Linux.
The primary change is the adoption of dxbc-spirv for shader compilation. This replaces the previous shader translation code for all supported models and resolves rendering issues that were previously unfixable, including those caused by undefined game behavior or invalid code from Microsoft’s FXC compiler.
The new compiler generates more compact SPIR-V code, reducing DXVK’s memory usage in some games. Overwatch and God of War, for example, may see memory reductions of about 1 GB.
Moreover, shader compilation now runs entirely on worker threads. Previously, only Vulkan pipeline compilation used worker threads, while shader translation occurred on the application thread, reducing launch times in some games.
An additional significant change is the default use of the VK_EXT_descriptor_heap Vulkan extension on supported drivers, replacing the descriptor buffer-based binding model introduced in DXVK 2.7.
The descriptor heap model offers similar CPU-bound performance and reduces GPU-bound performance penalties on NVIDIA GPUs. NVIDIA driver version 595.84 or newer is required; older drivers will not use this feature due to performance regressions.
DXVK 3.0 also introduces improvements for older Direct3D 8 and 9 games. The legacy fixed-function pipeline is now managed using a pair of ubershaders, with optimized variants compiled in the background as games configure different fixed-function states.
On top of that, the D3D9 backend now features buffer upload optimizations. Several buffer types are uploaded on demand rather than placed directly in VRAM, with added logic to limit memory usage.
Shared resources now function with Wine’s upstream implementation and no longer need Proton-specific patches. The previous method remains temporarily to maintain compatibility with older Proton versions but will be removed in the future.
Additional improvements include fixes for Vulkan validation errors, software vertex processing in D3D8/9 games, corrected fixed-function fog calculations, reduced CPU overhead in common D3D9 paths, improved D3D9 shader constant uploads, increased use of the asynchronous transfer queue for VRAM uploads, and support for the D3D11 Class Linkage feature.
Several game-specific fixes are included as well. BioShock Infinite receives a fix for a persistent sampler pool issue causing flickering. Borderlands 2 has a fix for flickering grass with anisotropic filtering enabled. Fallout New Vegas gets a depth resolve fix for certain mods, and Max Payne is fixed for a crash when launching with multiple monitors connected.
Other affected titles include Colin McRae Rally 3, Counter-Strike: Global Offensive, Insurgency, Railroad Tycoon 3, Sang-Froid: Tales of Werewolves, Splinter Cell 4, The Sims 3, Total War: Pharaoh, Witch on the Holy Night, and World of Final Fantasy.
Importantly, DXVK 3.0 now requires features and extensions introduced with Vulkan 1.4, so users need a driver that supports Vulkan 1.4, which should not be an issue unless the driver is several years old.
Windows users with AMD RDNA1 and RDNA2 GPUs should note that AMD’s Windows driver for these GPUs no longer receives feature updates, only supports the slower legacy binding model, and has significant DXVK performance issues. The project recommends that affected users remain on DXVK 2.x or switch to Linux.
For additional details, see the changelog.
We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.