REFERENCE · DXVK 3.1.1 · CHECKED AGAINST THE SOURCE
DXVK environment variables: which still work in 3.1.1
How we checked this
Old guides still tell you to set DXVK_FRAME_RATE, DXVK_STATE_CACHE or DXVK_ASYNC. This page lists every variable we found in the DXVK 3.1.1 source, whether it still exists, and what replaced it. The list was extracted from the source during our research; we marked the ones we ran ourselves with a finding number.
Every variable at a glance
| DXVK_HUD | current | Chooses which HUD items to draw. 1 means device name and FPS; full means everything. | before 1.0 | F18 | |
|---|---|---|---|---|---|
| DXVK_LOG_LEVEL | current | Sets how much DXVK logs: none, error, warn, info or debug. | before 1.0 | F16 | |
| DXVK_LOG_PATH | current | Folder for log files. The value none disables files. Under Wine nothing is written unless this is set. | before 1.0 | F14 | |
| DXVK_CONFIG_FILE | current | Path to a dxvk.conf. A missing file is not an error. | before 1.0 | F30 | |
| DXVK_CONFIG | current | Config options typed inline, separated by semicolons. | 2.3 | F22 | |
| DXVK_FILTER_DEVICE_NAME | current | Picks the GPU whose Vulkan name contains this text. | before 1.0 | F29 | |
| DXVK_FILTER_DEVICE_UUID | current | Picks the GPU by its 32-digit Vulkan device UUID. | 2.6.2 | source only | |
| DXVK_SHADER_CACHE | current | 0 turns off the new shader cache. | 3.0 | source only | |
| DXVK_SHADER_CACHE_PATH | current | Folder for the shader cache. Default is %LOCALAPPDATA%\dxvk under Wine and Windows. | 3.0 | F19 | |
| DXVK_HDR | current | 1 advertises an HDR10 colour space to the game. | 2.1 | source only | |
| DXVK_ENABLE_NVAPI | current | 1 stops DXVK hiding Nvidia GPUs, so dxvk-nvapi can work on plain Wine. | 1.10.1 | source only | |
| DXVK_DEBUG | current (developer) | Debug modes: capture, markers, validation, and hang (added 3.0.2). For bug reports. | 2.0 | source only | |
| DXVK_WSI_DRIVER | DXVK Native only | Chooses the window backend (SDL3, SDL2 or GLFW) of DXVK Native. | 2.4 | source only | |
| DXVK_FRAME_RATE | removed in 3.0 | Was a global FPS cap. | 1.9 | dxvk.maxFrameRate in dxvk.conf, or DXVK_CONFIG | F21 |
| DXVK_STATE_CACHE | removed in 2.7 | Was 0 to disable the pipeline state cache, reset to rebuild it. | before 1.0 | DXVK_SHADER_CACHE (3.0) | source only |
| DXVK_STATE_CACHE_PATH | removed in 2.7 | Was the folder for .dxvk-cache files. | before 1.0 | DXVK_SHADER_CACHE_PATH (3.0) | source only |
| DXVK_PERF_EVENTS | renamed in 2.0 | Old name for debug markers. | 1.x | DXVK_DEBUG=markers | source only |
| DXVK_WSIDRIVER | renamed in 2.4 | Old spelling of the window backend choice. | before 2.4 | DXVK_WSI_DRIVER | source only |
| DXVK_FAKE_DX10_SUPPORT | gone before 1.0 | A 0.x switch to report Direct3D 10 support. | 0.50 | source only | |
| DXVK_ASYNC | fork-only | Never in official DXVK. Read by the dxvk-async and dxvk-gplasync patches. | not upstream | See the async page | source only |
| DXVK_GPLASYNCCACHE | fork-only | A dxvk-gplasync cache switch, removed in gplasync 2.7-1. | not upstream | source only | |
| DXVK_SHADER_DUMP_PATH | developer | Dumps shaders to a folder. For developers only. | before 1.0 | source only | |
| DXVK_FORCE_WINDOWED | developer | Forces Direct3D 9 windowed mode. Undocumented. | 1.5 | source only | |
| DXVK_NO_VR | developer | 1 skips the OpenVR integration. Undocumented. | before 1.0 | source only | |
| DXVK_CAPTURE_FRAMES | developer | A frame-capture helper. Undocumented. | 3.1 | source only |
No rows match.
“Source only” means we read the variable in the code and did not run it. We did not document the developer-only variables beyond this table. Variables DXVK reads that belong to other software (for example the Steam Deck marker) are not DXVK settings and are not listed.
When key variables appeared and went
Show the releases as a list
3.1.1· 2026-09-153.1· 2026-08-273.0.2· 2026-07-183.0.1· 2026-07-053.0· 2026-06-252.7.1· 2025-08-302.7· 2025-07-052.6.2· 2025-06-102.6.1· 2025-04-072.6· 2025-03-132.5.3· 2025-01-132.5.2· 2024-12-202.5.1· 2024-11-182.5· 2024-11-112.4.1· 2024-09-262.4· 2024-07-102.3.1· 2024-03-202.3· 2023-09-042.2· 2023-05-122.1· 2023-01-242.0· 2022-11-101.10.3· 2022-08-021.10.2· 2022-07-131.10.1· 2022-03-261.10· 2022-03-041.9.4· 2022-01-241.9.3· 2022-01-111.9.2· 2021-09-201.9.1· 2021-07-261.9· 2021-06-151.8.1· 2021-03-011.8· 2021-02-191.7.3· 2020-12-021.7.2· 2020-10-071.7.1· 2020-08-131.7· 2020-05-161.6.1· 2020-04-191.6· 2020-03-201.5.5· 2020-02-291.5.4· 2020-02-071.5.3· 2020-01-301.5.2· 2020-01-251.5.1· 2020-01-091.5· 2019-12-161.4.6· 2019-12-031.4.5· 2019-11-191.4.4· 2019-10-271.4.3· 2019-10-181.4.2· 2019-10-041.4.1· 2019-09-271.4· 2019-09-211.3.4· 2019-09-081.3.3· 2019-08-291.3.2· 2019-08-051.3.1· 2019-07-201.3· 2019-07-131.2.3· 2019-06-261.2.2· 2019-06-151.2.1· 2019-05-191.2· 2019-05-131.1.1· 2019-05-041.0.3· 2019-04-151.0.2· 2019-04-011.0.1· 2019-03-141.0· 2019-02-25
How to set an environment variable
Steam on Linux and Steam Deck
Open the game’s properties, then Launch Options, and write the variables before %command%, separated by spaces:
DXVK_HUD=fps,frametimes DXVK_LOG_LEVEL=warn %command%
The most common mistake is leaving out %command%: Steam then has nothing to run. This is the widely used Steam launch-option syntax; we have not run it on a Deck ourselves.
Lutris, Bottles and Heroic
Each has an environment variables field in the game or runner settings. Put the name in one box and the value in the other, with no quotes and no %command%. We have not tested these launchers; see the launcher page for version handling.
Windows
- System-wide: Windows settings, search “environment variables”, then add a user variable. It applies to every program started afterwards, including every DXVK game, so a forgotten
DXVK_HUDorDXVK_FILTER_DEVICE_NAMEwill follow you everywhere. - One game: put the lines in a
.batfile next to the game, such asset DXVK_HUD=fpsthenstart game.exe, and launch that instead. - Better still: use a
dxvk.confnext to the game exe. It affects only that game, and it works with Steam. See the dxvk.conf page.
Variables that changed
DXVK_FRAME_RATE: removed in 3.0
Removed in 3.0 (upstream commit dae35be7), after being added in 1.9. In 3.1.1 with DXVK_FRAME_RATE=60 our Direct3D 9 test program ran at 184 FPS. With dxvk.maxFrameRate = 60 in a config file it held 60.5 FPS under Wine, 58.0 FPS on Windows Server 2025 and 57.8 on Windows Server 2022 (F21). Replace it with:
DXVK_CONFIG="dxvk.maxFrameRate=60" %command%
or a dxvk.conf line, or a limiter outside DXVK such as MangoHud or gamescope. DXVK_CONFIG itself works: d3d9.maxFrameRate=30 gave 28.3 FPS (F22). Full guidance is on the FPS limit page. The removal drew long discussion upstream (issue 5340 has 47 comments).
DXVK_STATE_CACHE and DXVK_STATE_CACHE_PATH: removed in 2.7
They went when DXVK 2.7 removed the state cache. In 3.0 a new shader cache arrived with DXVK_SHADER_CACHE (set 0 to disable) and DXVK_SHADER_CACHE_PATH. We saw one .dxvk.bin and one .dxvk.lut file per game created in the cache folder, and the path variable moved them (F19). See shader stutter.
DXVK_ASYNC: never in upstream
We found it at no official release, and no upstream commit introduces it. It comes from the dxvk-async patch, now archived, and from dxvk-gplasync. With official DXVK it does nothing. Read the async page before using a fork.
Renamed: DXVK_PERF_EVENTS and DXVK_WSIDRIVER
DXVK_PERF_EVENTS became DXVK_DEBUG=markers in 2.0. DXVK_WSIDRIVER became DXVK_WSI_DRIVER in 2.4.
Current variables in detail
DXVK_HUD
A comma list of items, for example DXVK_HUD=fps,frametimes,compiler. 1 shows the device and FPS; full shows everything. The valid items come from the source, not the README: samplers was removed in 2.7 and latency exists. We confirmed 1, full and scale work (F18). Values and screenshots are on the HUD page.
DXVK_LOG_LEVEL and DXVK_LOG_PATH
DXVK_LOG_LEVEL takes none, error, warn, info or debug. With warn the version banner is not logged, because it is an info: line, so a missing banner does not mean DXVK is off (F16). DXVK_LOG_PATH=C:\dxvk-logs writes files to that folder; under Wine DXVK only prints to the terminal unless this is set (F14). To silence things: DXVK_LOG_LEVEL=none stops the messages, while DXVK_LOG_PATH=none only stops the files. See error messages.
DXVK_CONFIG and DXVK_CONFIG_FILE
DXVK_CONFIG takes options inline, separated by semicolons: DXVK_CONFIG="dxvk.maxFrameRate=60;dxgi.maxDeviceMemory=4096". DXVK_CONFIG_FILE names a config file; if the file does not exist the game runs with defaults and DXVK says nothing (F30). The Config Builder writes the Steam launch-options form for you.
DXVK_FILTER_DEVICE_NAME and DXVK_FILTER_DEVICE_UUID
They tell DXVK which GPU to use, by part of its name or by UUID. A name that matches nothing leaves DXVK with no GPU and breaks Direct3D 11 completely (F29), while a matching substring works. Choosing a GPU is covered on the GPU selection page.
DXVK_SHADER_CACHE and DXVK_SHADER_CACHE_PATH
DXVK_SHADER_CACHE=0 disables the 3.x cache. DXVK_SHADER_CACHE_PATH moves it, which we verified (F19). Useful for putting the cache on a faster drive or deleting it cleanly. See shader stutter.
DXVK_HDR
DXVK_HDR=1 makes DXVK advertise an HDR10 colour space to games; it is the default value of the dxgi.enableHDR option. Source only, not tested by us.
DXVK_ENABLE_NVAPI
1 stops DXVK hiding NVIDIA GPUs, which dxvk-nvapi needs for features such as DLSS on plain Wine. Source only, not tested by us. See the dxvk-nvapi page.
DXVK_DEBUG
For bug reports: markers, capture, validation and, since 3.0.2, hang. Not for everyday use.
DXVK_WSI_DRIVER
Only for DXVK Native, which picks a window backend. See DXVK Native.
Proton’s own variables are different
These belong to Proton, not to DXVK. Setting them in a plain Windows install does nothing. We have not tested them; the Proton page explains each.
| PROTON_USE_WINED3D | Proton (choosing WineD3D over DXVK) |
|---|---|
| PROTON_NO_D3D11 | Proton |
| PROTON_DXVK_D3D8 | Proton |
| PROTON_ENABLE_NVAPI | Proton |
| PROTON_LOG | Proton |
No rows match.
Questions people ask
Why does DXVK_FRAME_RATE not work?
It was removed in DXVK 3.0. With DXVK_FRAME_RATE=60 on 3.1.1 our test program ran at 184 FPS, uncapped; the same cap as dxvk.maxFrameRate = 60 in a config file held 60.5 FPS under Wine (F21). Use dxvk.maxFrameRate instead.
Does DXVK_STATE_CACHE=0 still do anything?
No. The state cache and its two variables were removed in DXVK 2.7. DXVK 3.0 added a different cache, controlled by DXVK_SHADER_CACHE and DXVK_SHADER_CACHE_PATH.
Is DXVK_ASYNC=1 a real variable?
Not in official DXVK: it appears at no upstream release. It belongs to the dxvk-async and dxvk-gplasync patches, so setting it with official DXVK does nothing.
How do I set DXVK_HUD on Windows?
Set it as a user environment variable in Windows settings, or start the game from a .bat file that sets it first. Or put dxvk.hud = fps in a dxvk.conf next to the game, which affects only that game.
What is the difference between DXVK_LOG_LEVEL=none and DXVK_LOG_PATH=none?
The first stops DXVK writing log messages at all. The second stops log files being written but leaves the messages on the terminal (stderr). Under Wine, DXVK 2.2 and newer write no files unless DXVK_LOG_PATH is set (F14).
Sources
- DXVK README at v3.1.1 (environment variables) · accessed 2026-11-07
- DXVK 3.0 release notes · accessed 2026-11-07
- DXVK issue 5340: DXVK_FRAME_RATE removal discussion · accessed 2026-11-07