DXVK
| Developers | |
|---|---|
| doitsujin | |
| Joshua-Ashton | |
| K0bin | |
| AlpyneDreams | |
| Community | |
| Release dates | |
| Windows | January 14, 2018[Note 1] |
System abstraction
General
Utilities
Key points
- Vulkan-based translation layer for Direct3D 8-11 games used by e.g. Proton to allow Windows games to run on Linux.
- Windows is not officially supported, though generally works, and may even improve performance compared to native.
- Starting with version 2.0 a Vulkan 1.3 driver is required[4] (cards which entered legacy status before 2022 thus won't work[Note 2]). A fork exists trying to make the best out of the old 1.10.x branch.
General information
Availability
| Source | DRM | Notes | Keys | OS |
|---|---|---|---|---|
| Official website |
Installation
| Instructions for Windows: |
|---|
Notes
|
Uninstallation
| Remove the installed DLL files from the game folder to uninstall DXVK. |
|---|
Performance
For most post-DX9 games, DXVK provides 10-20% lower framerate comparing to native DirectX[citation needed], as the translation isn't always perfect and DXVK cannot enhance GPU performance.
However, for some circumstances, it is possible to get even higher framerates than native DirectX. This is due to the framerate being limited by the weaker one between CPU and GPU, and DXVK have slightly lower call overhead which reduce CPU usage (this is useful for those who have a weak CPU with powerful GPU, in the latest DX11 games which can manage to push hundreds of thousands draw calls). Moreover, this can restore (if not exceed) much of the CPU-limited DX9 performance that was lost in later Windows 10 builds.
Some options like dxvk.enableDescriptorBuffer=False[8] or d3d9.deviceLocalConstantBuffers=True can be tried to slightly improve GPU-limited scenarios.
DLSS
On Windows, games utilizing DXVK are unable to work with DLSS by default. However, there is a workaround for this.
| Instructions for enabling DLSS while using DXVK on Windows: |
|---|
{
"logging": true,
"enabled": true,
"auto_load": false,
"targets": [
"gameExecutable.exe"
],
"modules": [
{
"path": "nvapi64.dll",
"required": true
},
{
"path": "nvofapi64.dll",
"required": true
}
]
}
Notes
|
Other information
dxvk-async
- dxvk-async is a fork of DXVK that changes the compilation of pipelines (e.g. shaders etc) to be an asynchronous operation performed by a worker thread. This prevents the compile process from blocking the main thread, which could otherwise cause noticeable stutters in games.
- Not supported anymore by the developer since it was superseded by graphics pipeline libraries support.[9]
dxvk-gplasync
- dxvk-gplasync is a successor to dxvk-async that combines asynchronous compiling and pre-compiling of shaders. It might work better than vanilla DXVK 2.0 (which removed the shader compilation stutter[10]) on older GPU drivers without
GraphicsPipelineLibrarysupport[Note 3].
- Be aware that
gplAsyncCacheis now completely removed since version 2.7 due to removal of legacy state cache[14] and cannot be used along with the olddxvk.enableAsync=trueindxvk.conffile created nearby the binary any longer.dxvk.enableAsyncshould be used instead to take advantage of this feature.
d7vk
- d7vk is a DXVK fork that implements Direct3D 7. It uses DXVK's D3D9 backend as well as Wine's DDraw implementation (or the windows native DDraw) and acts as a proxy between the two, providing a minimal D3D7-on-D3D9 implementation. Its goal is to support games utilizing DDraw7 and D3D7, whereas games relying on interoperability with older DDraw interfaces are not going to be supported for the most part.
Notes
- ↑ It is... debatable... which release version we should use. Technically speaking v1.0 was released on February 25, 2019[1] but is otherwise not really different than any other releases that predates it and came after, ergo I opted to see the very first public release, v0.20,[2] as the 'official' release date.[3]
- ↑ This isn't really a problem for those using open-source drivers on Linux (newer Vulkan versions don't mandate additional hardware features), but otherwise it means that Nvidia's Kepler and AMD GPUs older than GCN4 aren't supported anymore.
- ↑ On NVIDIA, GPL was compatible with DXVK 2.0 since 520.56.06 drivers on Linux and 473.33 on Windows[11][12], and much later in 24.6.1 on AMD[13]
References
- ↑ GitHub - doitsujin/dxvk - Version 1.0 - last accessed on 2022-09-24
- ↑ GitHub - doitsujin/dxvk - Version 0.20 - last accessed on 2022-09-24
- ↑ Verified by User:Aemony on 2022-09-24
- ↑ Driver support · doitsujin/dxvk Wiki - GitHub - last accessed on 2025-07-06
- ↑ Vulkan® Driver Support - last accessed on 2025-09-20
- ↑ Verified by User:Deton24 on 2025-10-09
- RX 400 series, 25.3.1, Radeon-ID drivers, Rayman 2 Redreamed DX11, (UE5), W11 24H2
- ↑ Did AMD just end support for the RX 500 series of GPUs? · Reddit - last accessed on 2025-10-09
- ↑ [dxvk] Enable descriptor buffer on Nvidia by doitsujin · doitsujin/dxvk - GitHub - last accessed on 2025-07-06
- ↑ the async patch partially breaks the dxvk-cache · Issue #55 · Sporif/dxvk-async - last accessed on June 2023
- ↑ Release Version 2.0 · doitsujin/dxvk · GitHub - last accessed on 2025-09-20
- ↑ drivers.softpedia.com - Unknown page title (retrieval failure) - last accessed on 2025-09-20
- ↑ Vulkan Driver Support | NVIDIA Developer - last accessed on 2025-09-20
- ↑ VK_EXT_graphics_pipeline_library is supported, but not recognized by DXVK on Windows · Issue #3859 · doitsujin/dxvk · GitHub - last accessed on 2025-09-20
- ↑ Release Version 2.7 · doitsujin/dxvk · GitHub - last accessed on 2025-09-20