Common Proton workarounds for Linux gamers

Proton is an incredible tool offered by Valve to enable Windows games to run seamlessly under Linux. The Steam Deck uses Proton extensively to run Windows games with its custom Linux distribution, but any Linux user can also make use of Proton to run Windows games on their personal machine.
However, Proton often needs a helping hand to work correctly. Over the last few months I have debugged quite a few games in Linux, and this collection of environment variables is what I use for any game that doesn’t quite work correctly.
This option forces the use of my GPU. The documentation provides this description:
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 asvulkaninfo.
Note that you will need to run vulkaninfo on your own machine to find the correct name of your GPU:
DXVK_FILTER_DEVICE_NAME="NVIDIA GeForce RTX 3060"This option enabled DirectX Raytracing (DXR). The documentation provides this description:
VKD3D_CONFIG- a list of options that change the behavior of vkd3d-proton.
dxr- Enables DXR support if supported by device.
dxr11- Enables DXR tier 1.1 support if supported by device
VKD3D_CONFIG="dxr,dxr11"This option enables NVAPI. The documentation provides this description:
Enable NVIDIA’s NVAPI GPU support library.
PROTON_ENABLE_NVAPI="1"This option prevents a NVIDIA GPU from being exposed as an AMD GPU. The documentation provides this description:
Force Nvidia GPUs to always be reported as AMD GPUs. Some games require this if they depend on Windows-only Nvidia driver functionality. See also DXVK’s nvapiHack config, which only affects reporting from Direct3D.
PROTON_HIDE_NVIDIA_GPU="0"This option informs the game that the GPU supports DirectX 12 with feature level 12.2:
VKD3D_FEATURE_LEVEL="12_2"So the complete command I usually start with to debug issues is:
DXVK_FILTER_DEVICE_NAME="NVIDIA GeForce RTX 3060" VKD3D_CONFIG="dxr,dxr11" PROTON_ENABLE_NVAPI="1" PROTON_HIDE_NVIDIA_GPU="0" VKD3D_FEATURE_LEVEL="12_2" %command%





