protonscr

Feature Request: Comatibility Tool "None"

steamclosed Feature RequestSteam client
ValveSoftware/steam-for-linux#9305 · opened 2023-03-28 by dfabulich · updated 2023-04-28 · 4 comments · github
1 matching comments, n / p to jump
Ddfabulich 2023-03-28 github

Your system information

  • Steam client version (build number or date): 1679680416 (Fri, Mar 24 10:20 AM UTC -08:00)
  • Distribution (e.g. Ubuntu): Steam Deck SteamOS 3.4.6
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes

Some Steam games offer functional native Linux apps that don't work in Proton and don't work in the Steam Linux Runtime.

For example, apps built with browser-based technology (Electron or NW.js) don't work in Steam Linux Runtime. https://github.com/ValveSoftware/steam-runtime/issues/579 and some of those happen to run into critical bugs in Proton.

What I'd wish for is an option under Compatibility Tools to run with no compatibility tool at all. I'd like to select the option to "Force the use of a specific Steam Play compatibility tool" and find the option "None" there. In that case, the native Linux app would just run, natively, without the Steam Linux Runtime container.

@Scrumplex has actually implemented such a tool https://github.com/Scrumplex/Steam-Play-None but users have to install it manually:

  • Download this repository as an archive file: Download
  • Extract it to ~/.steam/steam/compatibilitytools.d/
  • Set the compatibility-tool for the game in your library to "None"

If this feature were built into the Steam for Linux client, it would really help developers compare and contrast issues/performance running in Steam Linux Runtime vs. just running the native build directly on the current Linux system.

TTTimo 2023-03-28 github

Unfortunately there is no such thing as "the native Linux app". It's only "native" for the ABI of the distribution the binary was compiled against (say, Ubuntu 20).

Deck is nothing special in that regard. Valve make no promise of ABI backwards compatibility for future releases of SteamOS.

Steam does extensive work to provide a stable and consistent ABI to run native binaries everywhere that Steam for Linux runs, which works for (most) all native games that have shipped on the platform up to now (that's a lot of different distributions across many releases).

Non-steam shortcuts are a special case: they run as-is because we assume they are compiled against the local OS, or they come with their own ABI compatibility solution (flatpak).

Over the last few years, we have mostly closed the recurrent problem of games running on one distro but not on another, which was a bad experience for users.

Games could mostly ignore the above and ship titles that would work on the most popular distribution at the time, and would not work on other distros, or stop working with the next major Ubuntu update.

The cost of keeping titles running reliably across many linux distributions moving forward is enforcing stricter rules for the runtime, which is what we are doing on Steam Deck.

We expect that there will always be tools published by third parties to do things differently. That's probably quite healthy for power users and the ecosystem in general, but that's not the out of the box experience we want for our users.

Ddfabulich 2023-03-28 github

@TTimo In no case would "None" be an "out of the box" experience. Nobody's saying that games should run with "None" compatibility tool by default.

But the entire "Force compatibility tool" setting is, itself, a power-user option. "None" improves the compatibility of some games, even on Steam Deck.

None of what you've said here addresses any reason why not to let power users opt in to "None" compatibility.

Ddfabulich 2023-03-28 github

What if, instead of "None," it were called "Current System ABI (Unstable)"? Surely that can't be any worse than opting into "Proton Experimental," which is currently already allowed.

Gg2p 2023-04-28 · hidden on GitHub github

Look into Luxtorpeda: a compatibility tool that picks native engines for hundreds of games.

https://github.com/luxtorpeda-dev/luxtorpeda

Proton versions

Upstream links