DXVK 3.0 Released with New Shader Compiler and Vulkan 1.4 Requirement

DXVK 3.0 introduces a new shader compiler, lower memory use in some games, D3D9 improvements, and requires Vulkan 1.4-ready drivers.

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.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *