Proton Troubleshooting
NTFS filesystem
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.
How to verify Proton installation
Check if Proton is downloaded, and extracted properly by Steam by following these steps:
- Click the Games menu, and tick TOOLS
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)
- Right click on any Proton version, and pick Properties
- Press Verify integrity of game files.. to check if the compressed file is downloaded successfully
- Now click Browse…
- 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 install Proton
If Proton is not installed, you can install it by following these steps:
- Click the Games menu, and tick TOOLS
- Type proton in the search box
- Choose the version you want to install
- Click Install
Graphic drivers
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)
Troubleshooting Windows games that do not run under Proton
-
Use Protontricks
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 (It is enabled by default). |
%command%
at the end of each launch option. You can only use it once.If you want to turn off Esync, Fsync, and DXVK, you can combine all of them like this:
|
|
How to set Proton launch options
- Right click on the game you want to set Proton launch options for, then pick Properties.
- Under LAUNCH OPTIONS write your launch options.
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:
|
|
How to change the version of Proton
- Right click on the game you want to change the version of Proton for, then pick Properties.
- 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.
The unsupported Windows games
-
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.
InfoAnother popular cheat engine, Battleye does not support Proton / Wine. Check their website to get a list of the games that uses Battleye » https://www.battleye.com -
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 some of these 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
-
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
InfoAll information about this website can be found in this tutorial » [Link]
Running the game from the terminal
You can run Steam game by its appid like this:
Open the terminal, and type a command like this:
|
|
If you have any questions, write it down below, or you can contact me directly by my E-mail account.
If you want to get notified when we post a new content by adding our RSS feed to your feed list, or by joining our Telegram channel.
If you find this post helpful, please consider sponsoring.
Sponsor