whatisgithub

What is dxvk?

doitsujin/dxvk — explained in plain English

Analysis updated 2026-06-24

17,117C++Audience · generalComplexity · 3/5Setup · moderate

In one sentence

DXVK is a translation layer that lets Windows games using Direct3D 8 through 11 run on Linux through Wine with near-native GPU performance, by converting DirectX graphics calls into Vulkan in real time.

Mindmap

mindmap
  root((dxvk))
    What it does
      DirectX to Vulkan
      Wine integration
      Better performance
    Supported APIs
      Direct3D 8
      Direct3D 9
      Direct3D 10
      Direct3D 11
    Tools
      On-screen HUD
      Env var config
      Vulkan validation
    Gaming Tools
      Steam Play
      Lutris
      Bottles
      Heroic Launcher
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run a Windows game on Linux via Steam Play or Lutris with better GPU performance than the default Wine translation.

USE CASE 2

Benchmark a game on Linux using the DXVK on-screen HUD to display frame rate, GPU memory, and draw call counts.

USE CASE 3

Enable DXVK in Bottles or Heroic Launcher for a non-Steam Windows game so it runs faster on your Linux desktop.

USE CASE 4

Test or debug a Direct3D application on Linux by enabling Vulkan validation layers through DXVK environment variables.

What is it built with?

C++VulkanWine

How does it compare?

doitsujin/dxvkmoonlight-stream/moonlight-qtzlmediakit/zlmediakit
Stars17,11717,08917,030
LanguageC++C++C++
Setup difficultymoderatemoderatehard
Complexity3/53/54/5
Audiencegeneralgeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Most gaming tools like Steam Play, Lutris, and Bottles set up DXVK automatically, manual setup means copying DLL files into a Wine prefix.

So what is it?

DXVK is a translation layer that lets Windows applications using Direct3D 8, 9, 10, or 11 run on Linux through Wine, by translating their graphics calls into Vulkan. Direct3D is Microsoft's graphics API and only ships on Windows, so a game that talks Direct3D cannot normally run natively on Linux. Wine, the compatibility project that lets Windows software run on Linux, has its own Direct3D translation called wined3d, but performance is often modest. DXVK replaces that translation with a Vulkan-based one, which usually runs much faster. In practice, DXVK ships as a set of DLL files such as d3d9.dll, d3d10core.dll, d3d11.dll, and dxgi.dll. You copy them into a Wine prefix and configure Wine to use the native versions instead of its built-in ones. Most gaming-focused tools built on Wine, such as Steam Play, Lutris, Bottles, and Heroic Launcher, set DXVK up automatically when you enable it for a game. DXVK includes a configurable on-screen HUD, controlled by the DXVK_HUD environment variable, that can show frame rate, frame times, GPU info, draw calls, pipeline counts, memory usage, and other rendering statistics, useful for benchmarking and for confirming DXVK is actually being used. Other environment variables let you pick a specific GPU, set log paths, tweak configuration, and enable Vulkan validation for debugging. You would use DXVK to run Windows games or other 3D applications on Linux through Wine with better performance and compatibility than the default translation. The README warns that altering Direct3D libraries in online multiplayer games can be considered cheating and may get accounts banned. The codebase is C++.

Copy-paste prompts

Prompt 1
I want to run a Direct3D 11 Windows game on Linux using Wine and DXVK. Walk me through downloading the DXVK DLLs, placing them in a Wine prefix, and configuring Wine to use them.
Prompt 2
How do I enable the DXVK HUD to show frame rate and GPU memory usage while playing a game on Linux? What do I set in DXVK_HUD?
Prompt 3
I am using Steam Play on Linux. How does DXVK fit into Proton and how do I confirm it is actually being used for a specific game?
Prompt 4
How do I tell DXVK to use a specific GPU on a Linux system that has both an integrated and a discrete graphics card?
Prompt 5
What is the difference between DXVK and VKD3D-Proton, and which should I use for a Direct3D 12 game versus a Direct3D 11 game?

Frequently asked questions

What is dxvk?

DXVK is a translation layer that lets Windows games using Direct3D 8 through 11 run on Linux through Wine with near-native GPU performance, by converting DirectX graphics calls into Vulkan in real time.

What language is dxvk written in?

Mainly C++. The stack also includes C++, Vulkan, Wine.

How hard is dxvk to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is dxvk for?

Mainly general.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.