Steam for Linux

Steam for Linux

Marlock 28 Aug, 2019 @ 4:08am
5
4
2
6
Proton 101 (aka Steam Play Basic Instructions)
1- What is Proton for?
Steam Play is Steam's framework for providing compatibility layers to run games it distributes but aren't natively supported on Linux.

Proton is the default compatibility layer (based on Wine) provided by Valve to help run games developed exclusively for windows under Linux.

The game devs have no obligation to support this and the feature is in beta so there is also no Valve support for it yet, but it works very well for thousands of games already.

https://github.com/ValveSoftware/Proton/#introduction
PS: There is an outdated info in the official announcement... you no longer need to opt into Steam Beta to use Proton, it's already available for everyone :steamhappy:


2- Proton Requirements:
*** check these first if it isn't working well for you yet! ***

As it is still an experimental feature, you need to enable Proton support in Steam's settings, by checking "Enable Steam Play for supported titles" and "Enable Steam Play for all other titles".

Besides that, follow instructions here to make sure Proton will be able to run games well on your system:
https://github.com/ValveSoftware/Proton/wiki/Requirements

Please be careful not to confuse Nvidia GPU driver instructions with Intel and AMD GPU driver instructions!

2.1- Setting up an NTFS (Windows formatted) drive for Proton games under Linux:
***if you have just arrived on Linux and haven't yet reformatted the drive/partition holding a Steam Games Library folder, this is for you***

Ideally, it's simpler and safer to just format the drive as EXT4, but as a temporary measure to run games from it without reformatting, follow Valve's instructions step-by-step:
https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows


3- Finding out if a game works via Proton:

Search for the game on ProtonDB:
https://www.protondb.com/

Check reported ratings for the game:
Platinum: runs perfectly out of the box
Gold: runs perfectly after tweaks
Silver: runs with minor issues, but generally is playable
Bronze: runs, but often crashes or has issues preventing from playing comfortably
Borked: either won't start or is crucially unplayable

If a game is poorly rated but you already own it, give it a chance... Your mileage may vary! Also retest the ones you care for once in a while... as Proton evolves games might suddenly start working.

3.1- What about performance?
There are still a few games performing significantly worse, but in most cases the performance is only very slightly reduced or similar... and there is a surprising amount of games performing better on Linux too (as conter-intuitive as this may seem).

Besides a couple gaming-oriented Windows vs. Linux comparison benchmarks on Phoronix, there is at least one youtube channel trying to collect several performance comparison videos (one video for each game):
https://m.youtube.com/playlist?list=PLYB8ooZG4ATmtA1Em_gTLWptW6kvV5Jlg

3.2- Steam Deck verified
While this official verification by Valve is focused on the Steam Deck compatibility and not on Proton in general, it provides very useful and reliable information on the matter of windows games working on Linux, because it uses SteamOS 3 (Valve's own noob-friendly & Deck-oriented derivate of Arch Linux).

Check your entire library here:
https://gtm.you1.cn/storesteam/steamdeck/mygames

Check the verification criteria here:
https://www.steamdeck.com/en/verified

Lots of it useful even outside the Deck, and remember that "Playable" instead of "Verified" is possibly all you need on a PC or laptop, depending on the type of issue encountered. eg: On-screen keyboard needs to be called manually instead of popping up on its own... relevant for gamepads but not an issue if you have a physical keyboard.

You can read the exact issues noted for each game when Valve verified it last time, and game devs can even fix issues and submit for re-verification, so keep an eye on your favourites that aren't perfect yet.


4- Finding out ways to fix a game that isn't working under Proton:

4.1- General Issues (causing all or a lot of games to fail):

4.1.1- Missing or too old components (especially Vulkan and/or 32-bit OpenGL libs)
Double-check Proton Requirements above (see [2]). Yes, it really helps!

4.1.2- Using windows partition (NTFS)
If you are using an NTFS partition for Proton games, it's very likely the cause of your issue, so check [2.1]. That is what Windows uses, so doublecheck this carefully if you have just arrived on Linux and haven't reformatted the drive/partition holding the faulty games yet.

4.1.3- Steam installed as a Flatpak
If Steam is installled via Flatpak, you shoukd consider switching to a normal install from the distro repos instead, as it may cause several issues.

A common problem with an easy fix is if an update caused a mismatch between the userspace drivers running in Flatpak and those of your host installation. Try running the command:
flatpak update

4.1.4- Steam Linux Runtimes (Soldier) not properly installed
Likely the case if Proton 5.13 and above don't work but older versions do, as 5.13 was the first to require the new (and modularly distributed) runtime... which for several people wasn't pulled in correctly by Steam.

Go to Steam > Library > change "Games" to "Tools" in the upper-left (it doesn't look like a filter but is one) > search for "Steam Linux Runtimes (Soldier)" > (uninstall and re)install it

If that doesn't work, check this for other known issues that can affect the runtimes:
https://github.com/ValveSoftware/steam-runtime/blob/master/doc/steamlinuxruntime-known-issues.md

4.2- Game-Specific Issues:
Test other Linux-native and Proton games to confirm they are not failing as well. See 4.1 above if they are.

Read existing reports on ProtonDB (see [3]), where people have reported what they had to do to get the game to run.

If that doesn't help, look for your issue in:

You can also try these on your own:


5- Reporting if a game works via Proton:
Search for the game on ProtonDB - https://www.protondb.com/

Click on "Add your report", and then follow the instructions.

You should also report bugs to Valve via their GitHub - https://github.com/ValveSoftware/Proton/issues/

Get the debug log from the crash (see [6]) and upload it to Github along with your system specs (see [7]). Valve has a "1 issue per game" policy so just add your comment to the existing issue for the game. Issue names contain a game's name and AppID to make them easier to find.


6- Fetching proton game logs:
https://www.protondb.com/help/troubleshooting-faq#how-do-i-create-logs-of-a-game-i-run-with-proton

This kind of error is normal and can be ignored:
'/home/username/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: (ELFCLASS32): ignored.
Steam will try to load both the 32bit and 64bit versions of the overlay and at least one will always fail due to mismatched bitness. It's noisy but normal to use this method to guess the right version.

7- Fetching system informations:
1- Go to the Steam Help menu.
2- Pick System Information in the dropdown menu.
3- Right-click and select Copy all text to clipboard
4- Paste it in the forum directly or create a text link with https://gist.github.com/ (that is what is used for official Proton bug reports)


8- Using a different version of Proton:
8.1- To select a Proton version that all the games will default to:
  • Go to Steam Settings >> Steam Play >> Advanced section
  • Select a Proton version that all the games will default to
and/or
8.2- To select a different Proton version for individual games:
  • Right-click on the game and select Properties
  • activate the checkbox for "Force the use of a specific Steam Play compatibility tool"
  • select a differen Proton version for that game

9- Making changes to the wine prefixes of proton games:

This is how Steam manages Wine prefixes (remember Proton is a fork of Wine) for each Proton game:
https://github.com/ValveSoftware/Proton/wiki/Proton-FAQ#how-does-proton-manage-wine-prefixes

You can use Wine (if installed to your system) to edit these prefixes as you would for normal Wine prefixes:
https://wiki.winehq.org/FAQ#Wineprefixes

Eg: https://www.gamingonlinux.com/forum/topic/3460

Frequently that means needing to install redistributable libraries inside a prefix (like .NET 4.0). For that see the deep-dive... or use winetricks (but in either case make a prefix backup first):
https://wiki.winehq.org/Winetricks
https://www.protondb.com/help/troubleshooting-faq#some-reports-say-they-made-the-game-running-by-installing-some-software-how-do-i-do-that-

For slightly easier use, there is Protontricks or Protonfixes:
https://github.com/Matoking/protontricks
https://github.com/simons-public/protonfixes

ProtonTricks allows for easily updating your proton prefixes for games that are missing certain windows dependencies (eg: for games relying on Windows Media Player). Installation instructions are in the Github Project and usage per game can be found typically on protondb.com where users post fixes.

There is also an awesome deep-dive into fixing/modifying proton prefixes:
(unconventional methods ahead)
https://gtm.you1.cn/sharedfiles/filedetails/?id=2386287653

10- Trying experimental components:

10.1- D9VK:
This is a 3rd-party Vulkan-based alternative to Wine's builtin "Wined3d" support of DirectX 9. It was included in Proton 4.11-1 but you still need to enable it manually. Just add this as a Steam launch option for a DirectX 9 game:
PROTON_USE_D9VK=1 %command%
As of Proton 4.11-12 it is now part of DXVK and enabled by default for everyone:
https://github.com/ValveSoftware/Proton/wiki/Changelog#411-12
https://github.com/doitsujin/dxvk/releases/tag/v1.5

10.2- ACO:
This is a gaming-optimized shader compiler (deployed for testing as Mesa replacement included in upsteam Mesa 19.3 and newer), currently meant for those with recent enough AMD GPUs:
https://gtm.you1.cn/app/221410/discussions/0/1640915206474070669/

Run games with ACO by adding this to a game's launch options on steam library > game > properties:
RADV_PERFTEST=aco %command%

The best way to set these environment overrides for all games is by renaming user_settings.sample.py to user_settings.py and modifying it appropriately. This file is located in the Proton installation directory in your Steam library (often ~/.steam/steam/steamapps/common/Proton #.#).

10.3- fsync:
Linux Kernel experimental feature meant to significantly increase Proton performance in some workloads
https://gtm.you1.cn/app/221410/discussions/0/3158631000006906163/

10.4- 3rd-party compatibility layers
Proton is Valve's only official Steam Play compatibility layer so far, but they've made it easy to try other ones now.

For very easy setup and updates to Proton GE, Luxtorpeda, Boxtron and Roberta, use ProtonUP-QT:
https://www.gamingonlinux.com/2022/01/protonup-qt-adds-support-for-lutris-flatpak-new-batch-update-feature/

Each project will also give specific instructions, but in general it's a simple matter of creating a "compatibilitytools.d" folder (if it doesn't already exist) in "/.local/share/Steam/compatibilitytools.d" ~/.steam/root/compatibilitytools.d ~/.steam/steam/compatibilitytools.d (new location, beware outdated info in GitHub) and then uncompress a copy of the desired layer into a subfolder, then start Steam and select it from where you'd normaly choose a version of Proton for a game.

10.4.1- Proton GE:
A 3rd party bleeding edge version of Proton, based on latest Wine versions
https://github.com/GloriousEggroll/proton-ge-custom/

10.4.2- Boxtron:
A native linux DOSBox derivate for DOS games (instead of the usual game-bundled windows .version of DOSBox over Proton)
https://github.com/dreamer/boxtron#boxtron-formerly-steam-dos

10.4.3- Roberta:
Same idea as Boxtron, but for ScummVM adventure games
https://github.com/dreamer/roberta#roberta

10.4.4- Luxtorpeda:
Same idea as Boxtron, but for several games with opensource alternative engines (eg: OpenMW, vkQuake, ioquake3, ...)
https://github.com/dreamer/luxtorpeda#luxtorpeda

10.5- NGG Culling for RADV (ergo only for Vulkan on AMD GPUs):
https://www.phoronix.com/scan.php?page=article&item=radeon-radv-nggc&num=1
Enabling NGG culling on Navi graphics cards can be achieved via setting the RADV_PERFTEST=nggc environment variable.

10.6- Vulkan ray-tracing for AMD GPUs
https://www.phoronix.com/scan.php?page=news_item&px=Mesa-21.3-RADV-Ray-Tracing
It only works if using Mesa 21.3 or above, with the default RADV + ACO. Enable it by using the correct version of Mesa and adding this to the game launch parameters in steam:
RADV_PERFTEST=rt %command%

Various games work, including many Windows DXR titles via VKD3D-Proton, but performance is not yet optimal.

10.7- Fidelity FX Super Resolution - FSR
Make sure you are using Proton GE 6.14 or later (see item 10.4.1) then put this in the Steam Launch Parameters in the game properties:
WINE_FULLSCREEN_FSR=1 %command%

Then set the game to fullscreen and to a lower resolution than the desktop resolution. If you set the game to 720p and the desktop is set to 1080p, Proton FSR will upscale the game to 1080p (less raw power needed than working at 1080p for nearly identical results).

On Proton GE versions below 6.16-1 you should also add an extra setting manually to ensure best visual outcome (6.16-1 started choosing the best option automatically):
WINE_FULLSCREEN_FSR_STRENGTH=2 WINE_FULLSCREEN_FSR=1 %command%
Last edited by Marlock; 23 Feb, 2022 @ 1:39pm
< >
Showing 1-15 of 61 comments
Marlock 28 Aug, 2019 @ 4:32am 
Posted as a new thread, as discussed here:
https://gtm.you1.cn/app/221410/discussions/0/3647273545696895371/

edit: obviously open to suggestions for improvements in this Proton 101
Last edited by Marlock; 28 Aug, 2019 @ 4:46am
[GNU] Debian ☭ 28 Aug, 2019 @ 9:06am 
GG
Condex 28 Aug, 2019 @ 11:05am 
Would upvote this thread to make it sticky if it were possible :steamhappy:
Marlock 14 Sep, 2019 @ 7:59pm 
Just revised it to include references to experimental stuff like ACO, Boxtron, Proton GE, ...
DenZel 15 Sep, 2019 @ 9:41am 
how can i fix pubg anti cheat cuz its doesn`t work with proton
halifax 15 Sep, 2019 @ 1:45pm 
Good work Marlock! And I've said it a few times now, but holy crap have Valve and Codeweavers delivered. They have done mind blowing good work on Wine over the last couple of years.

That's not an exaggeration. My mind is steadily getting blown more and more, as I keep getting yet another relatively modern (DX10/11) game to work, one after another. With my particular Windows back catalog, I'm getting towards the fails are fewer than the wins. Holy crap, it cannot be overstated what a sea change that is.

And not even just Steam Proton games. I'm able to play Mass Effect: Andromeda, Dragon Age 2 and Dragon Age: Inquisition in the same Origin Game Client Wine prefix. Solidly play, too. Little hiccups and setup snags here and there; but minor ones vs the major show stopping ones I used to get. And once I get these previously untouchable games dialed in, they play at high fps without more crashes than normal with great graphics settings. Just... Wow :-)

Valve has absolutely not abandoned Linux gamers. They have given back to such a degree they indirectly are even getting other companies like Bioware/EA, that haven't invested a dime in Linux, somewhat viable on Linux.

It's definitely more viable than ever to not have to retreat to Windows for game XYZ. Sure, we still have holes, especially with most of the latest and greatest - but still, huge wins and ground gained for Linux gaming lately.


Marlock 15 Sep, 2019 @ 1:51pm 
Originally posted by HiddingUser cs.money:
how can i fix pubg anti cheat cuz its doesn`t work with proton

It's an anticheat, so I'm sorry to say usually not much can be done by the player yet...

Making anticheat software recognize and accept working via Proton, or creatung and supporting a native Linux version is something that a few popular anticheat engines are currently doing... so far I'm only aware of Valve's own VAC having a linux native version and tolerating Proton. In the not-so-distant future we might see EAC and a couple others, but currently this is a serious limitation to competitive online multiplayer linux gaming.


Still worth looking up the game on ProtonDB and such (see #3), as for some games sometimes there are workarounds.
haytham.med 18 Jan, 2020 @ 2:00pm 
I just want to warn about installing latest beta graphics driver, when updating them, all components in the repository should be updated or else x server will broke.
Zyro 18 Jan, 2020 @ 2:01pm 
Originally posted by haytham.med:
I just want to warn about installing latest beta graphics driver, when updating them, all components in the repository should be updated or else x server will broke.

AMD?
Because I never had that problem with the proprietary Nvidia driver...
Marlock 27 Feb, 2020 @ 3:06am 
Included in item [4]:

You can also try these on your own:

Also replaced risky method for enabling ACO on [10.2] for all games (system-wide outside Proton) for a safe method (applies exclusively to all Proton games), as non-Proton games are out of scope here and a 101 guide should try to stay on the safe side whenever possible.
Last edited by Marlock; 27 Feb, 2020 @ 3:08am
Marlock 18 Oct, 2020 @ 1:23pm 
It seems like Proton 5.13 has a new set of specific issues which players need to be aware of and that may require non-obvious action

Originally posted by Raklödder:
Proton 5.13 beta: known issues

- Selecting Proton 5.13 for a game and launching it will only download "Proton 5.13" and not "Steam Linux Runtime - Soldier", resulting in no games launching properly. This can be avoided by either installing both by hand or restarting Steam after the initial launch.
- Controller hot-plugging doesn't work
- System-wide Vulkan layers like MangoHUD or vkBasalt don't work
- Using a custom per-game driver (like with VK_ICD_FILENAMES or LIBGL_DRIVERS_PATH) doesn't work
- User hooks like LD_PRELOAD (like for MangoHUD OpenGL) don't work
- Doesn't work on a Wayland desktop


https://github.com/ValveSoftware/Proton/issues/4289
Marlock 22 Dec, 2020 @ 5:54pm 
Very small fragments of info about the new "Experimental" version of Proton:
https://mobile.twitter.com/Plagman2/status/1336777378517794817?s=20

Today we are also introducing a Proton Experimental branch, with the start of a set of architectural improvements to Wine. While esync/fsync were about multi-threaded apps, this effort is about reducing CPU overhead around input and window event handling.

Changelog:
https://github.com/ValveSoftware/Proton/wiki/Changelog

And it seems currently to be based on 5.10 + experimental tweaks, instead of even 5.13 (which might explain some people having better luck with it than plain Proton 5.13):
Originally posted by GeeEl:
In the regular (not Big Picture that I normally use) client clicking on the Information icon gives some more details says....
"Runs on this computer via Steam Play. Proton 5.0-10 selected by you for this title."
5.0-10 seems consistent for a few random titles, so not necessarily the latest numbered version but easy enough to find if you know where to look.

Total coincidence I came across it - I was trying to work out how to launch Remote Play on a whim.
Last edited by Marlock; 24 Dec, 2020 @ 9:47pm
Marlock 7 Feb, 2021 @ 6:50pm 
here is what to expect of Proton 6.0 from its new Wine base:
https://www.winehq.org/news/2021011401
Core modules in PE format.
Vulkan backend for WineD3D.
DirectShow and Media Foundation support.
Text console redesign.

DirectShow and MF support are probanly particularly important in ironing out frequent game cutscene issues, finally! :winter2019happyyul:

Here is the long-winded release notes:
https://www.winehq.org/announce/6.0
Last edited by Marlock; 7 Feb, 2021 @ 6:51pm
class101 [deck] 23 Mar, 2021 @ 7:08am 
Hi Marlock, here is the link you requested to my guide, I hope you will like it :beatmeat:

https://gtm.you1.cn/app/221410/discussions/0/3094509155631896210/
Marlock 27 Mar, 2021 @ 11:38am 
Originally posted by class101 linux:
Hi Marlock, here is the link you requested to my guide, I hope you will like it :beatmeat:

https://gtm.you1.cn/app/221410/discussions/0/3094509155631896210/
Awesome work!!! Added your guide to 9- Making changes to the wine prefixes of proton games
< >
Showing 1-15 of 61 comments
Per page: 1530 50

Date Posted: 28 Aug, 2019 @ 4:08am
Posts: 61