Steam for Linux

Steam for Linux

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


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

10.3- fsync:
Linux Kernel experimental feature meant to significantly increase Proton performance in some workloads
https://steamcommunity.com/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%
Отредактировано Marlock; 23 фев. 2022 г. в 13:39
< >
Сообщения 4660 из 70
Автор сообщения: Marlock
Автор сообщения: JimmyJames26
Marlock, maybe just gee wiz here… but my potato laptop from 2019 is pretty good for Linux gaming despite its shortcomings specs wise. I find that it still helps to have battery management in mind when I’m not gaming and away from a charger. You don’t have to add it, but everyone might find this extremely useful if they don’t already know about it.

https://github.com/AdnanHodzic/auto-cpufreq
nice hint!

I've never heard of this one, only of gamemode, TLP and Powertop

it's not really specific to proton so I'll fit it on another thread dedicated to FOSS gaming tools:
https://steamcommunity.com/app/221410/discussions/0/1694969361100777223/

Ahh thanks for the better fit thread. I’ve heard in most cases it replaces the need of TLP, as it’s allegedly superior in most cases. I’m still a nub and mileage may very, so feel free to experiment if you’re interested.
Отредактировано JimmyJames26; 14 янв. 2022 г. в 20:38
ProtonUP-QT added to 10.4 instead of just ProtonUP in 10.4.1, because it helps all the famous 3rd-party comparibility layers, not just Proton GE

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/
Отредактировано Marlock; 16 янв. 2022 г. в 8:17
Автор сообщения: meheezen
^wrong link?
yep! hahaha

corrected it now (in the OP and the above post)

thanks for the heads up!!! :winter2019happyyul:
Отредактировано Marlock; 16 янв. 2022 г. в 8:19
Frim another thread, a nice examole on how to handle mods on Proton:
Автор сообщения: Bleeplo
Made a video guide on how to get Mod Organizer running on Linux for Fallout NV
https://youtu.be/eSbDd2ImdTg
Added a new "3.2- Steam Deck verified" topic :winter2019happyyul:
Is it correct to assume that step 2.1 only applies to people who has previously played the steam gamed on pc or want to play them on both systems?
I plan to only play on my linux system.
Автор сообщения: liv82
Is it correct to assume that step 2.1 only applies to people who has previously played the steam gamed on pc or want to play them on both systems?
I plan to only play on my linux system.
if you're ok with formatting the drive / partition as EXT4 (and wiping it out in the process) then go for it, it's much better than the workaround needed to get NTFS working on linux as even if done correctly there are drawbacks to performance, quirks, etc
The news just came out! There's an insidious bug in Nvidia 535 breaking games with Proton 8:
https://www.gamingonlinux.com/2023/08/recent-nvidia-drivers-are-causing-issues-for-proton/

The issue is an odd one, because even if you're on an AMD GPU and happen to have some NVIDIA driver bits installed (say from moving from an NVIDIA GPU to an AMD GPU), the issue can still happen. The set up gets stalled on DXSETUP and just won't go any further.


edit:
quoting a workaround from another thread
Автор сообщения: jeremyrenaud
Sometimes when launching the game I encounter issue installing DirectX.

If it happened open terminal:
ps -aux | grep vdf
and kill process one by one order by pid desc
don't kill the lowest pid

And the game should start
Отредактировано Marlock; 11 сен. 2023 г. в 14:30
Автор сообщения: elbistro
Now, some games won't start if I don't hit "Clear Cache" button from the "Clear Download Cache" before I launch them and I need to do it each times.

- I tried by starting Steam from the console and get no error message (games are stuck on "Launching" and console is stuck after "renice" message and I see a "winedevice.exe" process running that won't be killed when I hit "Cancel")
- If I "Clear Cache" after starting Steam and then launch the game, It works.
- If I close Steam and try to launch problematics games without "Clear Cache", It doesn't work

solved by:
Автор сообщения: Radoo
Maybe there's an issue with Proton or the Steam Linux Runtime. Try reinstalling those tools. Try playing GNU/Linux native games and see if they all work.

Did you update manually Steam client? Steam > Check for Steam client updates...
Try forcing an update from the terminal.

steam -forcesteamupdate -forcepackagedownload -overridepackageurl -exitsteam
Автор сообщения: jrubz
You can either do so per game or under
Settings> Compatibility
*enable Steam Play for all other titles
Supported being the division of games already tested on Proton.
[...]
This post was all a PSA that they divided "other titles" into another setting now. So Steam will just spit out a vague "invalid client" error really meaning the platform your on isn't officially supported.
So there is a new setting in steam settings for choosing the default proton version for "all other titles" (now separate from the default for supported titles)

...and it's empty by default

...and this causes a poorly written error message to appear until a selection is made there or per game

(because of course... why would they define a sane fallback default for steam to use if the user hasn't gone into their steam settings and used this new selector manually? sigh)
Отредактировано Marlock; 28 дек. 2023 г. в 18:30
Is it possible to specify where I want the Proton prefix to be created or two have two shortcuts of the same prefix? A.e. a shortcut for The Sims and a shortcut for The Sims Creator, which utilises the game files to compile.
Автор сообщения: 死烏
Is it possible to specify where I want the Proton prefix to be created or two have two shortcuts of the same prefix? A.e. a shortcut for The Sims and a shortcut for The Sims Creator, which utilises the game files to compile.

It might be possible to replace one prefix with a (hard?) link to the other. Did not try.
Автор сообщения: Zyro
Автор сообщения: 死烏
Is it possible to specify where I want the Proton prefix to be created or two have two shortcuts of the same prefix? A.e. a shortcut for The Sims and a shortcut for The Sims Creator, which utilises the game files to compile.

It might be possible to replace one prefix with a (hard?) link to the other. Did not try.

Would have to be a softlink, because directories can't be hardlinked. Only files can. Might work though. Steam doesn't generally appear to care whether a file (or dir) is a softlink or not.
Автор сообщения: Bloo Alien
Автор сообщения: Zyro

It might be possible to replace one prefix with a (hard?) link to the other. Did not try.

Would have to be a softlink, because directories can't be hardlinked. Only files can. Might work though. Steam doesn't generally appear to care whether a file (or dir) is a softlink or not.
iirc proton cares in some cases, unfortunately
< >
Сообщения 4660 из 70
Показывать на странице: 1530 50