Steam for Linux

Steam for Linux

Zbyt mało ocen
Proton 101 (aka Steam Play Basic Instructions): The Guide
Autorzy: Pixelzul [🐧] i 1 innych współtwórców
This is a guide about Steam Play and Proton (the compatibility layer for playing windows games on Linux)
By @Marlock and @Pixelzul
   
Przyznaj nagrodę
Ulubione
Ulubione
Usuń z ulubionych
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:
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!
Finding out if a game works with Proton
Search for the game on ProtonDB:
https://www.protondb.com/

Check reported ratings for the game: https://www.protondb.com/dashboard

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.
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

https://www.youtube.com/playlist?list=PLN6qGFzRivk5pmUSRrvFXRmtrs2_7Al3G
https://www.youtube.com/watch?v=68rjGXwCMks&list=PLN6qGFzRivk5pmUSRrvFXRmtrs2_7Al3G
Some benchmarks (the performance may improve as the tool evolves):
https://www.youtube.com/watch?v=U-BCWtAxUT4
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 about 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://store.steampowered.com/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.



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. You can even use it on Windows nowadays, with the 3rd-party "Linux File Systems for Windows by Paragon".

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
1- Finding out ways to fix a game that isn't working under Proton:
1.1- General Issues (causing all or a lot of games to fail):

1.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!

1.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.

1.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

1.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

1.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:
2- 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.
3- 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.
4- 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)
5- Using a different version of Proton
5.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
5.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
6- 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://steamcommunity.com/sharedfiles/filedetails/?id=2386287653
7- Trying experimental components:
7.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

7.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://steamcommunity.com/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 #.#).

7.3- fsync:
Linux Kernel experimental feature meant to significantly increase Proton performance in some workloads
https://steamcommunity.com/app/221410/discussions/0/3158631000006906163/

7.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.

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

7.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

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

7.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

7.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.

7.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.

7.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%
Merging (guide still building)
1- What is Proton for?
Steam Play (aka Proton) is a compatibility layer 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! ***
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!

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!

4- Finding out ways to fix a game that isn't working under Proton:
Double-check Proton Requirements: https://github.com/ValveSoftware/Proton/wiki/Requirements

Read existing reports on ProtonDB (with non-platinum ratings), where people have reported what they had to do to get it to run.

If that doesn't help, look for your issue in:
ProtonDB FAQ entries about common issues
https://www.protondb.com/help/troubleshooting-faq
WineHQ's AppDB entries for the game
https://appdb.winehq.org/
old threads about the game and/or similar issues in this forum
fetch the game's proton debug log (see [6]) and ask for help in this forum with a link to the log and system specs (see [7])

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-

7- Fetching system informations:

How to gather system information
Una guía para Gear Up
Por: pulchr
These instructions show how to gather system information about your computer. It is very important that you can provide the system information, when you're having trouble, so that we can investigate problems and find...


8- Making changes to the wine prefixes of proton games (to apply workarounds to issues):
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 use winetricks:
https://wiki.winehq.org/Winetricks

For slightly easier use, there is Protontricks:
https://github.com/Sirmentio/protontricks
END
This is the end
thanks for your visit

It helps


Other Guides:
check our profiles, we have some other useful stuff.
https://steamcommunity.com/sharedfiles/filedetails/?id=2843537933

https://steamcommunity.com/app/221410/discussions/0/1777136225015918222/

Tags
For Search Engines:
Proton, Tutorial, Guide,Proton Linux , Proton Guide, Steam Linux, Steam Play, Playing, Linux, Gaming, games, how to use proton, Proton Steam Play on Linux, wine, layer, How to install Proton, Run Games on Linux, Steam Deck, Compatibility.
Komentarzy: 3
murla 19 stycznia o 22:38 
JaredX7 19 października 2024 o 14:59 
One thing I noticed is that proton looks to be applying a bilinear filter when upscaling.

But in Wine it looks to be a nearest upscaler, as games look a lot sharper.

Is there any way to specify the upscaler?
Pixelzul [🐧]  [autor] 31 lipca 2024 o 16:44 
hi :p2cube: