DXVK
Direct3D to Vulkan Translation Layer
Run Windows games and applications on Linux with improved performance using this powerful translation layer that converts Direct3D calls to Vulkan.
What is DXVK?
Bridging Windows and Linux Gaming
DXVK is a groundbreaking translation layer that converts Direct3D 9, 10, and 11 API calls to Vulkan, allowing Windows games and applications to run seamlessly on Linux systems through Wine or Proton.
Developed as an open-source project, DXVK has revolutionized Linux gaming by providing performance that often matches or even exceeds the native Windows experience in many titles.
Key Features of DXVK
- Improves frame rates in many games compared to native Direct3D on Linux.
- Reduces stuttering by handling shaders more efficiently.
- Optimizes GPU usage through Vulkan’s low-level control.
- Minimizes CPU overhead, allowing smoother gameplay on weaker processors.
- Enhances frame pacing for a more consistent experience.
- Provides better performance scaling on modern hardware.
- Supports Direct3D 9, 10, and 11 APIs.
- Works with a wide range of Windows games on Linux.
- Compatible with Wine and Proton for seamless integration.
- Provides stable performance across different GPUs.
- Ensures playability for both old and modern titles.
- Regular updates extend compatibility with new releases.
- Works smoothly with Wine and Proton for running Windows games on Linux.
- Requires minimal user configuration to get started.
- Integrates directly with Steam Play for hassle-free gaming.
- Automatically translates Direct3D calls without manual tweaks.
- Compatible with most popular Linux distributions out of the box.
- Provides a near-native gaming experience without complex setup.
- Offloads heavy graphics tasks from the CPU to the GPU.
- Uses Vulkan’s low-level API for more efficient resource management.
- Minimizes unnecessary CPU instructions compared to Direct3D.
- Reduces bottlenecks in CPU-bound games.
- Improves frame rates and overall game smoothness.
- Allows better utilization of multi-core processors.
- Runs Windows games on Linux through Vulkan translation.
- Works seamlessly with Wine and Proton compatibility layers.
- Expands gaming accessibility across multiple operating systems.
- Reduces dependency on Windows for Direct3D-based games.
- Ensures consistent performance across different platforms.
- Supports both 32-bit and 64-bit applications.
How DXVK Works
DXVK operates as a translation layer that intercepts Direct3D API calls from Windows applications and converts them to their Vulkan equivalents in real-time. This process happens transparently, allowing games to run without modifications.
Interception
DXVK intercepts Direct3D API calls made by the Windows application through Wine or Proton.
Execution
Translated commands are executed by the Vulkan driver, leveraging modern GPU capabilities.
Translation
Direct3D commands and resources are translated to their Vulkan equivalents, maintaining compatibility.
Optimization
DXVK applies various optimizations to reduce overhead and improve performance.
Performance Benefits
Average Performance Improvement with DXVK
Performance improvements vary by game, hardware, and driver implementation. These figures represent typical gains observed in community testing.
Compatibility
Thousands of Games
Compatible with a vast library of Windows games, from indie titles to AAA blockbusters.
Multiple APIs
Supports Direct3D 9, 10, and 11, covering the majority of Windows games released in the past decade.
Hardware Support
Works with any GPU that has Vulkan support, including AMD, NVIDIA, and Intel graphics cards.
Continuous Testing
Regular compatibility updates based on community testing and feedback.
Installation Guide
For advanced users, you can specify different Proton versions or enable DXVK-specific options through launch parameters.
Using DXVK with Steam Proton
Steam Proton automatically includes DXVK, making installation straightforward:
- Enable Steam Play for all titles in Steam Settings
- Install and run Windows games as you normally would
- Proton will automatically use DXVK for compatible games
For advanced users, you can specify different Proton versions or enable DXVK-specific options through launch parameters.
Using DXVK with Standard Wine
For non-Steam games or custom Wine installations:
- Download the latest DXVK release from GitHub
- Extract the archive to a convenient location
- Run the setup script:
setup_dxvk.sh install - This will copy the DXVK DLLs to your Wine prefix
Remember to configure your Wine prefix to use Windows 7 or 10 for best compatibility.
Manual Installation
For advanced users who want full control:
# Download and extract DXVK
wget https://github.com/doitsujin/dxvk/releases/download/vX.X.X/dxvk-X.X.X.tar.gz
tar -xzf dxvk-X.X.X.tar.gz
cd dxvk-X.X.X
# Copy DLLs to your Wine prefix (replace ~/.wine with your prefix path)
cp x64/* ~/.wine/drive_c/windows/system32/
cp x32/* ~/.wine/drive_c/windows/syswow64/
# Register the DLLs
wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d11 /d native /f
wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v dxgi /d native /f
Frequently Asked Questions
What is DXVK and what does it do?
DXVK is a translation layer that converts Direct3D 9/10/11 calls into Vulkan, allowing Windows games to run efficiently on Linux and other platforms that support Vulkan.DXVK is a translation layer that converts Direct3D 9/10/11 calls into Vulkan, allowing Windows games to run efficiently on Linux and other platforms that support Vulkan.
Which graphics APIs does DXVK translate between?
DXVK translates Direct3D 9, 10, and 11 into Vulkan API commands.
Is DXVK only for Linux users?
DXVK is mainly used on Linux, but it can also work on Windows in some cases for performance testing or compatibility.
Can DXVK improve gaming performance on older hardware?
Yes, in many cases DXVK improves performance by providing better driver optimization through Vulkan, especially on modern GPUs.
How does DXVK differ from WineD3D?
WineD3D translates Direct3D to OpenGL, while DXVK translates to Vulkan, which usually results in higher performance and better compatibility.
How do I install DXVK on Linux?
You can install DXVK manually by copying DLL files into the game folder, or use tools like Proton (Steam) or Lutris, which already include DXVK.
Can DXVK be installed on Windows systems?
Yes, though it’s mainly for Linux, some Windows users install DXVK for testing or to fix driver-related issues.
Do I need Vulkan drivers before installing DXVK?
Yes, a Vulkan-compatible GPU and up-to-date Vulkan drivers are required for DXVK to work.
How do I check if DXVK is working properly in a game?
You can enable the DXVK HUD by setting the environment variable DXVK_HUD=1, which displays frame rate and other details.
Is Proton already bundled with DXVK on Steam?
Yes, Proton includes DXVK by default, so you don’t need to install it separately for Steam Play games.
What is DXVK and what does it do?
DXVK is a translation layer that converts Direct3D 9/10/11 calls into Vulkan, allowing Windows games to run efficiently on Linux and other platforms that support Vulkan.DXVK is a translation layer that converts Direct3D 9/10/11 calls into Vulkan, allowing Windows games to run efficiently on Linux and other platforms that support Vulkan.
Which graphics APIs does DXVK translate between?
DXVK translates Direct3D 9, 10, and 11 into Vulkan API commands.
Is DXVK only for Linux users?
DXVK is mainly used on Linux, but it can also work on Windows in some cases for performance testing or compatibility.
Can DXVK improve gaming performance on older hardware?
Yes, in many cases DXVK improves performance by providing better driver optimization through Vulkan, especially on modern GPUs.
How does DXVK differ from WineD3D?
WineD3D translates Direct3D to OpenGL, while DXVK translates to Vulkan, which usually results in higher performance and better compatibility.
Does DXVK work with all Direct3D 9/10/11 games?
Not all, but most Direct3D 9/10/11 games run well with DXVK, and compatibility improves with every update.
Which games show the biggest performance boost with DXVK?
Many AAA titles like The Witcher 3, Dark Souls series, and Skyrim show noticeable boosts when using DXVK on Linux.
Are multiplayer or anti-cheat protected games compatible with DXVK?
Some anti-cheat systems may block DXVK, but support is improving as developers update their anti-cheat software.
How can I see the DXVK HUD in games to monitor performance?
Set the environment variable DXVK_HUD=fps to show an in-game overlay with FPS and GPU information.
What should I do if a game crashes when using DXVK?
Try updating DXVK, clearing shader caches, or using different Proton/Lutris versions. Checking logs also helps identify issues.
How much performance improvement can DXVK provide?
It varies by game, but many titles run faster with DXVK than with WineD3D due to Vulkan’s efficiency.
Does DXVK reduce stuttering in games?
Yes, thanks to shader caching and Vulkan’s handling of graphics, stuttering is often reduced.
Can DXVK use shader caching to improve smoothness?
Yes, DXVK supports pipeline and shader caching, which reduces in-game stutters over time.
Is DXVK better than WineD3D for modern gaming?
Generally, yes. DXVK provides better performance and compatibility for most modern games compared to WineD3D.
Does DXVK support DirectX Raytracing (DXR)?
No, DXVK does not support DirectX Raytracing yet, as Vulkan raytracing and DXR are handled differently.
How do I update DXVK to the latest version?
Download the newest release from the official DXVK GitHub page and replace the old DLL files, or update Proton/Lutris which bundle DXVK.
Where can I download the official DXVK releases?
DXVK releases are available on its official GitHub repository.
What are common errors users face with DXVK?
Common issues include missing Vulkan drivers, crashes with specific games, or shader compilation stutter on first runs.
Can DXVK logs help in debugging game issues?
Yes, DXVK creates log files in the game folder that help track errors and performance details.
How do I uninstall or disable DXVK if needed?
Simply remove the DXVK DLL files from the game directory, or disable DXVK in your Proton/Lutris settings.