Table of contents

Proton Troubleshooting

Published on Dec 30, 2020 by: Ahmed Elsayed

Updated on Mar 15, 2021

 Proton Troulbleshooting

This part provides some tips that can help you with games that do not launch under Proton

[1] If your games are installed on a partition formatted by NTFS filesystem, you need to move them to another partition that is formatted by any Linux filesystem like: EXT4, BTRFS, XFS, or F2FS.

Linux filesystems support symlink, and different naming system that is not supported on any Windows filesystems. Also, you can not check, and repair NTFS filesystem on Linux the same way you can do it on Windows, so if you dual-boot between Windows, and Linux, you better use BTRFS filesystem, and install WinBtrfs on Windows, WinBtrfs is an open-source btrfs driver for Windows that can be downloaded from this link https://github.com/maharmstone/btrfs/releases

[2] Check if Proton is downloaded, and extracted properly by Steam by following these steps:

1. Click the Games menu, and tick TOOLS

How to fix Proton picture1

Now, it is supposed to have 4 different of Proton: Proton 4.2, Proton 4.11, Proton 5.0, and Proton 5.13 (I do not have Proton 5.13 apparently)

2. Right click on any Proton version, and pick Properties

How to fix Proton picture2

3. Press Verify integrity of game files.. to check if the compressed file is downloaded successfuly

How to fix Proton picture3

4. Now click Browse...

5. check to see if there is a folder with the name dist. If you did not find that folder, create it, and extract proton_dist.tar contents inside that folder.

How to fix Proton picture4

If Proton is not installed, you can install it by following these steps:

 (1) Click the Games menu, and tick TOOLS

How to install Proton picture1

 (2) Type proton in the search box

 (3) Choose the version you want to install

 (4) Click Install

How to install Proton picture2

[3] Check if Graphic drivers are installed, and check if Vulkan is installed as well (I will make a separate tutorial for that).

If you own RadeonSI GPU, you need to to enable Vulkan support manually (I will make a separate tutorial for that)

 How to fix Windows games that do not run under Proton

 (1) Try Proton launch options

 (2) Try a different version of Proton

 (3) Use Protontricks

 Proton Launch Options

What is Proton launch options

Proton launch options are environment variables that can be used to change the options of Proton, and it can be used with each game individually (they can not be used with all games at once).

List of important Proton launch options

Launch option Function Description
PROTON_USE_WINED3D=1 %command% Use WINED3D instead of DXVK WINED3D is a compatibility layer inside WINE that runs D3D9, D3D10, and D3D11 through OpenGL.
PROTON_NO_ESYNC=1 %command% Turn off Esync Esync can enhance the performance of multithreaded games. Esync relies on the kernel's eventfd() functionality, and it needs special setup on some Linux distributions, and can cause file descriptor exhaustion problems in event-hungry applications.
PROTON_NO_FSYNC=1 %command% Turn off Fsync Fsync is a replacement to Esync. Fsync relies on the kernel's futex() system call to support optimal thread pool synchronization. It is not officially supported on the Linux kernel, but a newer version of Fsync will reach Linux 5.11 in the near future.
PROTON_NO_D3D11=1 %command% Disable D3D11 Disable d3d11.dll, for d3d11 games which can fall back to and run better with d3d9.
PROTON_NO_D3D10=1 %command% Disable D3D10 Disable d3d10.dll and dxgi.dll, for d3d10 games which can fall back to and run better with d3d9.
PROTON_HIDE_NVIDIA_GPU=1 %command% Force Nvidia GPUs to always be reported as AMD GPUs Some games require this if they depend on Windows-only Nvidia driver functionality.
PROTON_LOG=1 %command% Create log file for the game The log file will be created in your home folder with the name scheme steam-$STEAMID.log

SteamID is the unique number Steam gives for each game.

For example:

$HOME/steam-368370.log
DRI_PRIME=1 %command% Use dedicated AMD GPU This command is needed when you use a laptop with a dedicated AMD GPU, and you want to open an OpenGL game, or when you use WineD3D instead of DXVK, because WineD3D render the game through OpenGL, and OpenGL games be run using iGPU by default.
__NV_PRIME_RENDER_OFFLOAD=1 %command% Use dedicated Nvidia GPU (Vulkan) This command is needed when you use a laptop with a dedicated Nvidia GPU, and you want to open a Vulkan game, or a game running through DXVK.
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command% Use dedicated Nvidia GPU (OpenGL) This command is needed when you use a laptop with a dedicated Nvidia GPU, and you want to open an OpenGL game, or when you use WineD3D instead of DXVK, because WineD3D render the game through OpenGL, and OpenGL games be run using iGPU by default.
VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay %command% Display Mesa HUD (Vulkan) Mesa HUD displays GPU name, driver version, FPS, and frametime (This HUD only works only with Vulkan games and games running through DXVK, and it only works with AMD and Intel GPUs).
DXVK_HUD=fps %command% Display DXVK HUD DXVK HUD displays many useful information like fps, framtimes, GPU load, and VRAM. For more information follow this link >> https://github.com/doitsujin/dxvk
mangohud %command% Display MangoHud MangoHud is a Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more (You need to install MangoHud first before using it). For more information follow this link >> https://github.com/flightlessmango/MangoHud
MANGOHUD_DLSYM=1 mangohud %command% Display MangoHUD for OpenGL games You need to add MANGOHUD_DLSYM=1 to mangohud command for some OpenGL games that may also need dlsym hooking (most of them need it).
ENABLE_VKBASALT=1 %command% Enable vkBasalt vkBasalt is a vulkan post processing layer for linux. It is similar to ReShade (You need to install vkBasalt first before using it). For more information follow this link >> https://github.com/DadSchoorse/vkBasalt
gamemoderun %command% Enable GameMode GameMode optimises Linux system performance on demand. It is made by Feral Interactive which ports native games for Linux and MacOS. (You need to install GameMode first before using it). For more information follow this link >> https://github.com/FeralInteractive/gamemode
PROTON_FORCE_LARGE_ADDRESS_AWARE %command% Enable the LARGE_ADDRESS_AWARE flag This environment variable can prevent 32bit games running through dxvk from crashing after reaching 4gb of RAM (Enabled by default).

You can combine different launch options, but don't write %command% at the end of each launch option. You can only use it once.


If you want to turn off Esync, and Fsync, and DXVK, you can use all of them like this:

PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 PROTON_USE_WINED3D=1 %command%

 How to set Proton launch options on Steam

1- Right click on the game you want to set Proton launch options for, then pick Properties.

How to set Proton launch options on Steam picture1

2- Under LAUNCH OPTIONS write your launch options.

How to set Proton launch options on Steam picture2

 Using Windows commandline arguments

You can use Windows command-line arguments the same way you set launch options.

The Windows version of Portal may use DirectX 8 by default, and to force the use of DirectX 9, you have to add this argument: -dxlevel 90 to be like this:

%command% -dxlevel 90

More info can be found in this link https://support.steampowered.com/kb_article.php?ref=1040-JWMT-2947

 How to change the version of Proton

1- Right click on the game you want to change the version of Proton for, then pick Properties.

How to change the version of Proton picture1

2- Choose COMPATIBILITY (1)
Tick Force the use of a specific Steam Play compatibility tool (2), then pick the version of Proton you want to use from the list (3), and close this window.

How to change the version of Proton picture2

 The unspported games that do not run under Proton (WINE)

(1) Windows games that use Easy Anti Cheat (EAC) will not allow you to join, or you may get a ban for running these games using Proton / WINE

Here is a list of these games https://www.easy.ac/en-us/partners/

A few of these games are ported to Linux, and EAC works natively on Linux without any issues.

There are a work in progress from Collabora to support EAC that is going to reach Linux kernel 5.11 which has not released yet (I am not sure about that though).

(2) Windows games that requires Microsoft Media Foundation (MF) to play intro videos, cut-scenes, and credits.

MF is a little problematic to support under Proton, but there is unofficial Proton releases that can run theses gamse, these unofficial Proton releases are called Proton GE

Here is a list of the games that requires Microsoft Media Foundation which is supported by Proton-GE: https://github.com/GloriousEggroll/proton-ge-custom#media-foundation-fixes-fully-working-or-playable

(3) There are other Windows games that do not work at all under Proton, or requires some tinkering to work, you can get these kind of information by visiting this website https://www.protondb.com

All information about this website can be found in this tutorial [Link]

Additional information:

You can run Steam game by its appid like this:

Open the terminal, and type a command:

steam steam://rungameid/648390

648390 is the appid of the game, more info can be found in this link [link]

If you want to know more about Proton check these tutorials: