How to Use Proton
Introduction to Proton
Steam Play is announced by Valve in 2018, and according to their announcement:
Steam Play: a way for Steam users to access Windows, Mac and Linux versions of Steam games with a single purchase. More than 3000 of the games that have been added to Steam after that point have included Linux support, with more titles being added every day. Since then, we’ve continued to look for ways to make more titles easily accessible to Linux users.
Steam Play uses Proton to run Windows games on Linux, so these names are connected together.
Proton is a compatibility layer sponsored by Valve that is capable of running Windows games on Linux. Proton is a combination of WINE, DXVK, VKD3D, and FAudio.
WINE is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, and BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop (desktop shortcuts, menu entries, and open-with entries).
Wine recently added support for ChromeOS, and Android.
WineD3D is a compatibility layer capable of running Direct3d from version 1 to version 11 by translating Direct3d calls to OpenGL calls on-the-fly. WineD3D is a part of Wine.
Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render 3D graphics in applications where performance is important, such as games.
DXVK is a Vulkan-based translation layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine. DXVK is not a part of Wine, it is a separated project founded by Philip Rebohle, and later Joshua Ashton joined him to offer support for Direct3d 9 which was not supported before by DXVK, and they are both are hired by Valve to work on Proton.
VKD3D is a Vulkan based translation layer for Direct3D 12 which is used by default on WINE, and Proton. It is founded by Józef Kucia, WINE developer, who passed away in 2019 at the young age of 30 in an accident, then the development continued by Hans-Kristian Arntzen who later joined by Valve developers Philip Rebohle, and Joshua Ashton.
FAudio is an XAudio reimplementation that focuses solely on developing fully accurate DirectX Audio runtime libraries for the FNA project, including XAudio2, X3DAudio, XAPO, and XACT3. The project is founded by Ethan Lee.
Proton started with Proton 3.7 which is the same version of WINE that they used, then they updated it later to Proton 3.16 which is WINE 3.16 with additional patches that was not included in WINE, these patches have not included yet like proton_fs_hack, and FS_bypass_compositor
proton_fs_hack: fullscreen patch that allows resolution changes for fullscreen games without changing desktop resolution.
FS_bypass_compositor: bypass compositor in fullscreen modes which helps to reduce stuttering, and improves performance.
Proton was later updated to Proton 4.2 » Proton 4.11 » Proton 5.0 » Proton 5.13 » Proton 6.3
Proton only work with Windows games, but if you want to run a native Linux game, choose Steam Linux Runtime from the list instead of Proton.
Proton Experimental contains experimental version of Proton which can help with running new games.
How to enable Proton on Steam
Proton is enabled only for supported titles which is a short list for officially supported games that are tested, and known to work without any issues, but you can enable Proton for all titles by going to Steam (menu) » Settings » Steam Play » Enable Steam Play for all other titles
press ok to confirm, then RESTART STEAM
Now, you can install, and play any games that are available only for Windows.
How to add a non Steam game to your library
Games (menu) » Add a Non-Steam Game to My Library…
- Click BROWSE…
- Select the executable of the game
- From file types choose All Files
- Press OPEN
Click ADD SELECTED PROGRAMS
If the game has any spaces in the name of the folder of the game, you need to rename it, and replace the spaces with underscores.
- Choose COMPATIBILITY
- Tick Force the use of a specific Steam Play compatibility tool
- choose the latest Proton version