# DXVK — Vulkan-Based Direct3D 9/10/11 Translation for Linux > A Vulkan-based translation layer for Direct3D 8 through 11 that enables Windows games and applications to run on Linux and Wine with high performance. ## Install Save in your project root: # DXVK — Vulkan-Based Direct3D 9/10/11 Translation for Linux ## Quick Use ```bash # DXVK is bundled with Proton; for standalone Wine: # Download the latest release curl -fLO https://github.com/doitsujin/dxvk/releases/latest/download/dxvk-2.5.3.tar.gz tar xzf dxvk-2.5.3.tar.gz cd dxvk-2.5.3 # Install into a Wine prefix WINEPREFIX=~/.wine ./setup_dxvk.sh install ``` ## Introduction DXVK is a set of replacement DLLs that implement the Direct3D 8, 9, 10, and 11 APIs on top of the Vulkan graphics API. By translating DirectX calls to Vulkan at runtime, it lets Wine and Proton run graphically intensive Windows applications on Linux with significantly better performance than Wine's built-in OpenGL translation. ## What DXVK Does - Translates Direct3D 9, 10, and 11 API calls into Vulkan commands in real time - Implements a shader compiler that converts DXBC bytecode to SPIR-V - Provides a state cache so compiled shaders persist between runs, reducing stutter - Supports the Direct3D 8 API via a built-in wrapper - Works as a drop-in replacement inside any Wine prefix ## Architecture Overview DXVK ships as Windows DLLs (d3d9.dll, d3d10core.dll, d3d11.dll, dxgi.dll) that Wine loads in place of its own implementations. When a game calls a Direct3D function, DXVK maps it to the equivalent Vulkan construct, batches draw calls, and submits them through the Vulkan driver. A background thread handles shader compilation asynchronously to minimise frame-time spikes. ## Self-Hosting & Configuration - Download releases from GitHub or use the setup script in a Wine prefix - Set `DXVK_STATE_CACHE=1` (default) to enable persistent shader caching - Use `DXVK_HUD=fps,memory` to display an in-game performance overlay - Configure per-game overrides in `dxvk.conf` for frame rate limits or feature toggles - When using Proton, DXVK is pre-installed; no manual setup is needed ## Key Features - Substantial performance gains over Wine's WineD3D OpenGL backend - Async shader compilation reduces stuttering on first runs - Built-in HUD for real-time FPS, GPU memory, and API call monitoring - State cache eliminates repeat shader compilation across sessions - Actively maintained with regular releases tracking new Vulkan features ## Comparison with Similar Tools - **WineD3D** — Wine's built-in OpenGL-based D3D translation; slower than DXVK on most titles - **vkd3d-proton** — handles Direct3D 12 to Vulkan; DXVK covers D3D 8-11 - **Gallium Nine** — D3D9-only, requires Mesa with Nine support; DXVK is driver-agnostic - **DXVK-NVAPI** — companion project adding NVIDIA API stubs for DLSS/RTX features ## FAQ **Q: Does DXVK require an NVIDIA GPU?** A: No. It works with any Vulkan-capable GPU: NVIDIA, AMD, or Intel. **Q: How does it affect performance compared to native Windows?** A: Many games achieve 90-100% of native Windows performance; some exceed it thanks to Vulkan driver efficiency on Linux. **Q: Can I use DXVK outside of gaming?** A: Yes. Any Windows application using Direct3D 9-11 benefits, including CAD tools and creative software. **Q: What is the state cache?** A: A file that stores compiled shader programs so subsequent launches skip recompilation and load instantly. ## Sources - https://github.com/doitsujin/dxvk - https://github.com/doitsujin/dxvk/wiki --- Source: https://tokrepo.com/en/workflows/asset-824facdd Author: AI Open Source