doitsujin

dxvk

DXVK is a Vulkan-based translation layer for Direct3D 8/9/10/11 that lets D3D games run on Linux and Wine, and serves as a reusable rendering backend for native ports.

v3.1.1
Published at
Sep 15, 2026
18,487
Stars
12,600,103
Download
Synced at
6m ago

Latest release

v3.1.1Sep 15, 2026, 05:43 PM
Downloads slow? Switch the source anytime above

README

Project Overview

DXVK turns Direct3D 8/9/10/11 draw calls into Vulkan commands, sitting between the game and the driver as a set of replacement DLLs. A game still loads d3d11.dll or d3d9.dll, but the code that runs is DXVK's translation layer, and the Vulkan driver takes it from there to the GPU. It started as a way to run Windows games under Wine and is now also used as a rendering backend for native ports.

Item Value
Platform Linux and Wine, with a Windows build
Language / Build C++17, Meson 0.58 or newer
Translated APIs D3D8, D3D9, D3D10, D3D11, DXGI
Target API Vulkan 1.3
Version / License 3.1.1 / zlib

D3D games think they are on Windows while actually running on Vulkan.

Core Capabilities

  • D3D9 translation: handles the fixed-function pipeline and shader models used by a large body of 2000s games
  • D3D11 translation: powers DX11 titles through d3d11.dll and dxgi.dll
  • DXGI presentation: swap chains, fullscreen transitions, and frame rate limits are handled by dxgi.dll
  • State merging: collapses redundant pipeline and descriptor bindings to cut per-frame CPU submission cost
  • Shader cache: compiled results are cached on disk at a path set by DXVK_SHADER_CACHE_PATH
  • HUD diagnostics: DXVK_HUD exposes counters such as fps, frametimes, drawcalls, pipelines, and memory

Integration

Wine prefixes

Copy the DLLs from the release package into the matching prefix folders, then add native overrides for d3d8, d3d9, d3d10core, d3d11, and dxgi on the Libraries tab of winecfg:

export WINEPREFIX=/path/to/wineprefix
cp x64/*.dll $WINEPREFIX/drive_c/windows/system32
cp x32/*.dll $WINEPREFIX/drive_c/windows/syswow64
winecfg

A single API only needs part of that set:

API Required DLLs
d3d8 d3d8.dll, d3d9.dll
d3d9 d3d9.dll
d3d10 d3d10core.dll, d3d11.dll, dxgi.dll
d3d11 d3d11.dll, dxgi.dll

Steam launch options

Proton already ships DXVK, so appending environment variables to the launch options is enough, since key-value pairs before %command% apply before the game process starts:

DXVK_HUD=devinfo,fps DXVK_FILTER_DEVICE_NAME="AMD RADV" %command%

Launchers and native ports

Lutris, Bottles, and Heroic place the DLLs and overrides automatically once the DXVK option is enabled; for native ports built on DXVK Native, DXVK_WSI_DRIVER must explicitly select the SDL3, SDL2, or GLFW window backend.

Use Cases

  • Running Windows games on Linux through Wine or Proton
  • Managing a game library with Lutris, Bottles, or Heroic
  • Reusing an existing D3D rendering backend while porting a game
  • Diagnosing rendering issues with the HUD and tiered logs
  • Pinning a specific GPU on multi-GPU machines

Environment Requirements

Item Requirement
OS Linux or a Wine prefix, with a Windows build also published
Graphics API A driver supporting Vulkan 1.3 or newer
Runtime A Vulkan-capable GPU driver, including 32-bit ICDs
Build tools wine 10.0, Meson 0.58, Mingw-w64 10.0, glslang
Permissions Write access to system32 and syswow64 in the target prefix

Notes

  • Multiplayer risk: replacing D3D libraries in online games may be treated as cheating and can get an account banned
  • Device filter: DXVK_FILTER_DEVICE_NAME matches substrings, and a wrong value can filter out every device so no D3D device can be created
  • Compile stalls: drivers with VK_EXT_graphics_pipeline_library precompile at load time, which can keep a weak CPU busy for a long stretch
  • Log location: on Windows logs land in the game working directory, while on Linux DXVK_LOG_PATH must be set
  • Full removal: delete the DLLs and overrides, then run wineboot -u to restore the originals

Release history

Sort