HOW-TO · PROTON · STEAM DECK · UNTESTED UNDER PROTON
DXVK in Proton: how Steam uses it and how to change it
How we checked this
Does Proton use DXVK?
Yes, for Direct3D 8, 9, 10 and 11. The chain looks like this:
Steam game -> Proton -> DXVK (Direct3D 8, 9, 10, 11)
-> vkd3d-proton (Direct3D 12)
-> WineD3D (fallback, or if you ask for it)
Valve keeps its own DXVK tree for Proton (ValveSoftware/dxvk), so the DXVK inside a Proton version can lag behind the newest upstream release. That is why we do not say which DXVK a given Proton carries without reading it from a log.
Which DXVK version is my Proton using?
Ask Proton to write a log, then read it. In the game’s launch options:
PROTON_LOG=1 %command%
Proton’s README says this writes steam-<appid>.log in your home folder. Search it for the DXVK: v line. The same first lines on our Wine run looked like this (F15):
info: Game: dxprobe64.exe
info: DXVK: v3.1.1
The DXVK version. Read this line in your own Proton log.
info: Build: x86_64 gcc 16.2.0
info: Found config file: dxvk.conf
Present only when a config file was found and read.
info: Effective configuration:
info: dxvk.maxFrameRate = 60
| Proton stable, Proton Experimental, GE-Proton, Proton-CachyOS | not read yet | We have not run Proton |
|---|
No rows match.
We will fill the table only with values read from real logs.
Steam launch options for DXVK
Write variables before %command%, separated by spaces. Without %command% Steam has nothing to run.
| PROTON_USE_WINED3D=1 | Proton | Uses Wine’s Direct3D instead of DXVK for this game. | untested | Proton README; ProtonDB reports use it |
|---|---|---|---|---|
| PROTON_NO_D3D11=1 | Proton | Stops the game using Direct3D 11. | untested | Documented by CachyOS and GE |
| PROTON_NO_D3D10=1 | Proton | Stops the game using Direct3D 10. | untested | Documented by CachyOS and GE |
| PROTON_ENABLE_NVAPI=1 | Proton | Turns on NVIDIA’s NVAPI layer, needed for DLSS. | untested | GamingOnLinux DLSS reports |
| PROTON_LOG=1 | Proton | Writes a log file to your home folder. | untested | Proton README |
| DXVK_HUD=1 | DXVK | Shows the device name and FPS. | untested | Works on Wine (F18) |
| DXVK_CONFIG_FILE=/home/you/dxvk.conf | DXVK | Loads your own dxvk.conf. | untested | Works on Wine (F30) |
| DXVK_CONFIG="dxvk.maxFrameRate=60" | DXVK | Inline settings, semicolon-separated. | untested | Works on Wine (F22) |
| DXVK_LOG_LEVEL=warn | DXVK | Less logging. | untested | Works on Wine (F16) |
| DXVK_FILTER_DEVICE_NAME=... | DXVK | Picks the GPU by name. A name that matches nothing breaks the game. | untested | Wine (F29) |
| DXVK_FRAME_RATE=60 | DXVK | Used to cap FPS. | removed | Removed in 3.0; did nothing in 3.1.1 (F21) |
| DXVK_STATE_CACHE=0 | DXVK | Used to turn off the state cache. | removed | Removed in 2.7 |
| DXVK_ASYNC=1 | Fork | Only read by dxvk-async and gplasync patches. | fork-only | Never in upstream DXVK |
No rows match.
The Proton option for Direct3D 8 has had different names over time. Old guides mention PROTON_ENABLE_D8VK, and a Warcraft III guide reports it no longer works. Check the Proton README for your version before relying on any Proton variable. Proton variable names change between versions, so none of these rows carries a Proton version we verified.
The Config Builder can write a launch-option line for the DXVK settings. All variables are explained on the environment variables page.
Use a dxvk.conf with a Steam game
Two ways. We tested neither under Proton.
- Next to the game’s exe. DXVK reads
dxvk.conffrom the folder the game runs in (F23). Proton starts the game in its own folder, so this should work, but a game update or “verify files” can remove it. DXVK_CONFIG_FILE. Point it at a file in your home folder:DXVK_CONFIG_FILE=/home/you/dxvk/game.conf %command%. This survives updates. A missing file is not an error: the game runs with defaults (F30), so check the log lineFound config file(F15) to be sure it was read.
Syntax is on the dxvk.conf page.
Turn DXVK off for one game
-
Open launch options
Steam, right-click the game, Properties, General, Launch Options. -
Add the switch
TypePROTON_USE_WINED3D=1 %command%. -
Check it worked
Start the game withDXVK_HUD=1as well: if the HUD does not appear, DXVK is not drawing the game. -
Undo
Delete the text to return to DXVK.
When it helps: ProtonDB reports use it for games that render wrongly with DXVK, and it is a way out on GPUs without a recent enough Vulkan driver. What it costs: forum posts warn that WineD3D is slower. We have no measurement under Proton; see DXVK vs WineD3D.
Getting a newer DXVK than your Proton ships
In order of safety:
- Proton Experimental. Steam offers it as a compatibility tool for any game. It is generally newer than stable Proton, but we did not verify that: check the version in the log as above.
- A community build. GE-Proton and Proton-CachyOS can be installed with a tool such as ProtonUp-Qt. They bundle their own DXVK; read the version from the log. Some community builds include a gplasync fork: see the async page before using one.
- Replacing files by hand inside a Proton folder. Last on purpose: updates overwrite your change, and it is easy to break the install. Never do it in Steam’s official Proton folders for games you care about. One guide describes overwriting the DXVK folders under
files/lib/wine/dxvkandlib64; we did not try it.
Steam Deck notes
Per-game dxvk.conf on the Deck
Put the file somewhere permanent, such as a folder in /home/deck/, and use DXVK_CONFIG_FILE=/home/deck/dxvk/game.conf %command%. A community workaround for Fallout 4 on the OLED screen uses this method. Edit files in Desktop mode; launch options can be set in either mode.
Frame cap: the Deck’s limiter or dxvk.maxFrameRate
The Deck’s own limiter or gamescope are the usual choices; they work with any game. dxvk.maxFrameRate also works on Wine (F21) and can help when a game ignores the limiter. We did not test either on a Deck. See Limit FPS.
The HUD and the Deck’s own overlay
DXVK_HUD shows DXVK-specific data such as shader compile activity; the Deck’s performance overlay shows system data. They can be used together. We have no Deck screenshots.
DXVK has one built-in Steam Deck profile at 3.1.1 (for Fallout 4) and reads a SteamDeck=1 variable. This is a curiosity: Valve’s Proton handles the Deck for you.
Online games under Proton
Steam Cloud does not sync launch options, so keep a note of the ones you set per game.
Questions people ask
Does Proton use DXVK?
Yes, for Direct3D 8, 9, 10 and 11 games. Direct3D 12 goes to a different project, vkd3d-proton. You do not need to install anything.
How do I turn DXVK off for one game?
Add PROTON_USE_WINED3D=1 %command% to the game's launch options. Proton then uses Wine's own Direct3D renderer, which is usually slower. We have not measured it under Proton.
How do I use a dxvk.conf with a Steam game?
Point DXVK_CONFIG_FILE at the file in your home folder, or put the file next to the game's exe. DXVK reads dxvk.conf from the folder the game runs in (F23). We did not test either under Proton.
Why did DXVK_FRAME_RATE stop working?
DXVK removed it in version 3.0. On 3.1.1 it left our test program uncapped at 184 FPS, while the same cap in dxvk.conf held 60.5 FPS (F21). Use dxvk.maxFrameRate or the Steam Deck's own limiter.
Can I use DXVK_ASYNC=1 on the Steam Deck?
Not with Valve's Proton: DXVK_ASYNC does not exist in official DXVK. Some community builds carry a fork. See the async page for the risks.
Sources
- Proton README (Valve) · accessed 2026-11-07
- ValveSoftware/dxvk (Valve's DXVK tree) · accessed 2026-11-07
- DXVK README at v3.1.1 · accessed 2026-11-07
- CachyOS Proton · accessed 2026-11-07
- GE-Proton · accessed 2026-11-07