An excerpt from the repository, fetched Nov 13, 2026.
Read the project’s introduction
DXVK
A Vulkan-based translation layer for Direct3D 8/9/10/11 which allows running 3D applications on Linux using Wine.
For the current status of the project, please refer to the project wiki.
The most recent development builds can be found here.
Release builds can be found here.
How to use
In order to install a DXVK package obtained from the release page into a given wine prefix, copy or symlink the DLLs into the following directories as follows, then open winecfg and manually add native DLL overrides for d3d8, d3d9, d3d10core, d3d11 and dxgi under the Libraries tab.
In a default Wine prefix that would be as follows:
export WINEPREFIX=/path/to/wineprefix
cp x64/*.dll $WINEPREFIX/drive_c/windows/system32
cp x32/*.dll $WINEPREFIX/drive_c/windows/syswow64
winecfg
For a pure 32-bit Wine prefix (non default) the 32-bit DLLs instead go to the system32 directory:
export WINEPREFIX=/path/to/wineprefix
cp x32/*.dll $WINEPREFIX/drive_c/windows/system32
winecfg
Verify that your application uses DXVK instead of wined3d by enabling the HUD (see notes below).
In order to remove DXVK from a prefix, remove the DLLs and DLL overrides, and run wineboot -u to restore the original DLL files.
Tools such as Steam Play, Lutris, Bottles, Heroic Launcher, etc will automatically handle setup of dxvk on their own when enabled.
DLL dependencies
Listed below are the DLL requirements for using DXVK with any single API.
d3d8: d3d8.dll and d3d9.dll
d3d9: d3d9.dll
d3d10: d3d10core.dll, d3d11.dll and dxgi.dll
d3d11: d3d11.dll and dxgi.dll
Notes on Vulkan drivers
Before reporting an issue, please check the Wiki page on the current driver status and make sure you run a recent enough driver version for your hardware.
Online multi-player games
Manipulation of Direct3D libraries in multi-player games may be considered cheating and can get your account banned. This may also apply to single-player games with an embedded or dedicated multiplayer portion. Use at your own risk.
HUD
The DXVK_HUD environment variable controls a HUD which can display the framerate and some stat counters. It accepts a comma-separated list of the following options:
devinfo: Displays the name of the GPU and the driver version.
fps: Shows the current frame rate.
frametimes: Shows a frame time graph.
submissions: Shows the number of command buffers submitted per frame.
drawcalls: Shows the number of draw calls and render passes per frame.
pipelines: Shows the total number of graphics and compute pipelines.
descriptors: Shows the number of descriptor pools and descriptor sets.
memory: Shows the amount of device memory allocated and used.
allocations: Shows detailed memory chunk suballocation info.
gpuload: Shows estimated GPU load. May be inaccurate.
version: Shows DXVK version.
api: Shows the D3D feature level used by the application.
cs: Shows worker thread statistics.
compiler: Shows shader compiler activity
samplers: Shows the current number of sampler pairs used [D3D9 Only]
swvp: Shows the vertex processing mode and the current number of software vertex processing shaders [D3D9 Only]
scale=x: Scales the HUD by a factor of x (e.g. 1.5)
opacity=y: Adjusts the HUD opacity by a factor of y (e.g. 0.5, 1.0 being fully opaque).
Additionally, DXVK_HUD=1 has the same effect as DXVK_HUD=devinfo,fps, and DXVK_HUD=full enables all available HUD elements.
Logs
When used with Wine, DXVK will print log messages to stderr. Additionally, standalone log files can optionally be generated by setting the DXVK_LOG_PATH variable, where log files in the given directory will be called app_d3d11.log, app_dxgi.log etc., where app is the name of the game executable.
On Windows, log files will be created in the game's working directory by default, which is usually next to the game executable.
Device filter
Some applications do not provide a method to select a different GPU. In that case, DXVK can be forced to use a given device:
DXVK_FILTER_DEVICE_NAME="Device Name" Selects devices with a matching Vulkan device name, which can be retrieved with tools such as vulkaninfo. Matches on substrings, so "VEGA" or "AMD RADV VEGA10" is supported if the full device name is "AMD RADV VEGA10 (LLVM 9.0.0)", for example. If the substring matches more than one device, the first device matched will be used.
DXVK_FILTER_DEVICE_UUID="00000000000000000000000000000001" Selects a device by matching its Vulkan device UUID, which can also be retrieved using tools such as vulkaninfo. The UUID must be a 32-character hexadecimal string with no dashes. This method provides more precise selection, especially when using multiple identical GPUs.
Note: If the device filter is configured incorrectly, it may filter out all devices and applications will be unable to create a D3D device.
Debugging
The following environment variables can be used for debugging purposes.
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation Enables Vulkan debug layers. Highly recommended for troubleshooting rendering issues and driver crashes. Requires the Vulkan SDK to be installed on the host system.
DXVK_LOG_LEVEL=none|error|warn|info|debug Controls message logging.
DXVK_LOG_PATH=/some/directory Changes path where log files are stored. Set to none to disable log file creation entirely, without disabling logging.
DXVK_DEBUG=... Enables one of various debugging modes:
capture: Default when used with certain tools. Enables dxvk-internal debug names and debug markers for render passes, shaders, etc.
hang: Detects GPU hangs or driver crashes resulting in VK_ERROR_DEVICE_LOST and logs failing command(s).
markers: Uses VK_EXT_debug_utils to forward applocation-provided resource names and debug markers to Vulkan.
validation: Enables validation debug callback. Must also set VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation on Linux.
DXVK_CONFIG_FILE=/xxx/dxvk.conf Sets path to the configuration file.
DXVK_CONFIG="dxgi.hideAmdGpu = True; dxgi.syncInterval = 0" Can be used to set config variables through the environment instead of a configu
Read the full README on GitHub