Steam for Linux

Steam for Linux

Please merge all wine prefixes by default.
Proton by default should use one wine prefix for every game. For me, an empty prefix seems to take 250MB. That's 250 extra MB for every windows game you install. With steamos competing with windows on the legion go s, one thing critics will find is that steamos runs out of storage faster, so this will definitely be something that needs worked on. Only problem would be converting old prefixes, but this could likely be done by copying every file that is not on a list of files that goes in the prefix to a new universal prefix, this should theoretically flawlessly convert to the new universal prefix. Maybe a different prefix for every version of proton, but no more, we do not need an extra 250 MB for every windows game.
< >
114/14 megjegyzés mutatása
I was surprised when i heard they're having a dedicated environment for every game. Of course it might avoid some incompatibilities between games, but then, they're all running in the same environment in a Windows installation, too...?
It is how it works on the Steam Deck. And in my systems, usually a game's prefix is anywhere between 600 to 1.2 GiB in size, across most of my games. Yes, it does add overhead, but to me, besides the isolation benefits, running games on their dedicated prefix, also makes support way easier... if something goes wrong (and it has happened in the past especially when Proton was still not widely used), some times from all the different versions you tried on a given game rendered the prefix corrupted to the point that the only way to successfully run the game was to erase the prefix and allow Proton recreate it. So is that condition prevalent, that enabling developer mode in the SD unlocks the menu entry to allow prefix data to be deleted, on a per game basis. A common prefix could spell disaster for a given game in order to allow another to run... separation is better, if at the expense of a couple gigs per game at most.
thetargos eredeti hozzászólása:
It is how it works on the Steam Deck. And in my systems, usually a game's prefix is anywhere between 600 to 1.2 GiB in size, across most of my games. Yes, it does add overhead, but to me, besides the isolation benefits, running games on their dedicated prefix, also makes support way easier... if something goes wrong (and it has happened in the past especially when Proton was still not widely used), some times from all the different versions you tried on a given game rendered the prefix corrupted to the point that the only way to successfully run the game was to erase the prefix and allow Proton recreate it. So is that condition prevalent, that enabling developer mode in the SD unlocks the menu entry to allow prefix data to be deleted, on a per game basis. A common prefix could spell disaster for a given game in order to allow another to run... separation is better, if at the expense of a couple gigs per game at most.
Ok, what if all the prefixes are still separate BUT instead of copying windows libraries for every game, the libraries are symlinked to each prefix? That way the only real thing taking up space per prefix is the save data itself.
Legutóbb szerkesztette: DannDaMANN; jan. 10., 4:11
DannDaMANN eredeti hozzászólása:
Ok, what if all the prefixes are still separate BUT instead of copying windows libraries for every game, the libraries are symlinked to each prefix? That way the only real thing taking up space per prefix is the save data itself.
While you can do that to save on some space, whenever you install something onto the prefix (say DirectX, .NET, XACT, or other libs), will end up taking up space. Proton, like Play On Linux before it, and Heroic or Lutris, use special scripts to install and setup the prefix for a given game, that often times involve installing a bunch of extra libs.

Ever since 1993 the Wine Project (and hence Proton) has played the Catch up game. And just when things start working smoothly, comes an update that disrupts compatibility, because of how Windows changes when handling this or that, that has not been quite implemented in core Wine (that is better to use an older version) except for that particular game or applications that requires the change in order to be functional. I has been this way for all these years. The saving grace being this time, that not only Code Weavers are working on it, but also Valve and Collabra, meaning more man power allocated to these edge cases before they get normalized, in this ever evolving Windows APIs implementations.
thetargos eredeti hozzászólása:
DannDaMANN eredeti hozzászólása:
Ok, what if all the prefixes are still separate BUT instead of copying windows libraries for every game, the libraries are symlinked to each prefix? That way the only real thing taking up space per prefix is the save data itself.
While you can do that to save on some space, whenever you install something onto the prefix (say DirectX, .NET, XACT, or other libs), will end up taking up space. Proton, like Play On Linux before it, and Heroic or Lutris, use special scripts to install and setup the prefix for a given game, that often times involve installing a bunch of extra libs.

Ever since 1993 the Wine Project (and hence Proton) has played the Catch up game. And just when things start working smoothly, comes an update that disrupts compatibility, because of how Windows changes when handling this or that, that has not been quite implemented in core Wine (that is better to use an older version) except for that particular game or applications that requires the change in order to be functional. I has been this way for all these years. The saving grace being this time, that not only Code Weavers are working on it, but also Valve and Collabra, meaning more man power allocated to these edge cases before they get normalized, in this ever evolving Windows APIs implementations.
There could still be different files that get symlinked for each proton version
I think that having a single prefix for all games is not a good approach and should not be default. You can symlink parts of prefixes manually, but that might cause issues while doing very little gain in free space.

Some components are already shared, like shader caches and common Proton runtime stuff.

There are multiple reasons why Valve decided to have this part modular and separated between games.

1. Isolation of dependencies like DirectX, Visual C++ redistributables, game specific DLLs and registry tweaks. If everything is shared in a single WINE prefix, one game dependencies can break anothers... So isolating them helps to avoid DLL hell :thumbalift:

2. Stability and compatibility within each prefix, on initial first time setup. Proton handles game specific hacks and/or overrides, like DXVK, Esync and so on, which can be locked at specific version for specific game.

3. Troubleshooting when something breaks is easier with this architecture. You can delete just one game prefix and let Steam to regenerate it. You can debug single game without affecting other games. If you have a shared prefix, this would be debugging nightmare.

4. Version control, as different games can work with different Proton version. This would not work when having a shared prefix.

5. Easier cleanup and management when uninstalling a game. It deletes it's prefix and keeps your system tidy. If there was a global prefix, stuffs would pile up unless tracked manually and removed by hand.

So I think the way they do things now is pretty good and having a global prefix would make things worse.
Neumond eredeti hozzászólása:
I think that having a single prefix for all games is not a good approach and should not be default. You can symlink parts of prefixes manually, but that might cause issues while doing very little gain in free space.

Some components are already shared, like shader caches and common Proton runtime stuff.

There are multiple reasons why Valve decided to have this part modular and separated between games.

1. Isolation of dependencies like DirectX, Visual C++ redistributables, game specific DLLs and registry tweaks. If everything is shared in a single WINE prefix, one game dependencies can break anothers... So isolating them helps to avoid DLL hell :thumbalift:

2. Stability and compatibility within each prefix, on initial first time setup. Proton handles game specific hacks and/or overrides, like DXVK, Esync and so on, which can be locked at specific version for specific game.

3. Troubleshooting when something breaks is easier with this architecture. You can delete just one game prefix and let Steam to regenerate it. You can debug single game without affecting other games. If you have a shared prefix, this would be debugging nightmare.

4. Version control, as different games can work with different Proton version. This would not work when having a shared prefix.

5. Easier cleanup and management when uninstalling a game. It deletes it's prefix and keeps your system tidy. If there was a global prefix, stuffs would pile up unless tracked manually and removed by hand.

So I think the way they do things now is pretty good and having a global prefix would make things worse.
Ok, what if instead of symlinking the folders themselves, we instead create a central location where every single file is stored along with indexing files and folders inside of this central location for each version of proton. Then, when a new prefix is made, instead of data for these files being needlessly copied every single file is a symlink to our central location. This way we can have the benefits you mentioned and save space.
This is just another one of those incredibly obvious things to everyone, but wine developers.
The first distro that makes a universal wineprefix is gonna be the one that overtakes Ubuntu. When you can just download an exe and download click it and it'll just work, if its a mod or a patch it automatically picks up the game instead of ♥♥♥♥♥♥♥ with winetricks, if its a launcher you can just install it once directly just like Windows instead of having to separately install (and waste space) and be annoyed with constantly having to login separately for each game (and run out of trusted logins so end up having to log in every single time for every instance) and ♥♥♥♥ with Bottles this and Lutris that, oh you wanna install a game while another is already running on a non-Steam launcher? Too bad most won't let you login on two instances at once which you are kinda forced to do by default on linux.
Cross-windows software interaction is like one of my biggest complaints about wine due to everything being designed around being isolated for no real good reason, most things just run on Proton Experimental or latest stable anyways, no reason to separate them unless theres something very broken about wine and separating it is the workaround instead of fixing the actual issue.
One of the most annoying things could be fixed by this it would increase compatibility so much, I have to reboot for old games way more to Windows than new games, at least new games work out of the box on linux, old games where I need to run flawless widescreen or mods or patches alongside the game? Too bad Steam refuses to allow multiple processes to properly run in one of its wineprefixes, unless I guess you were to do some crazy ♥♥♥♥ to put your mod or whatever as a mandatory dependency like a launcher in the games exe so Steam can't refuse to run both.
Such an easy fix for so many issues but everyone who could actually change it has probably convinced themselves for decades that everything is fine the way it is and has been since day one.
Legutóbb szerkesztette: tyl0413; márc. 30., 22:20
No thanks, i like being able to tinker with a prefix for a game without it possibly causing issues for another game(s).
Legutóbb szerkesztette: Yzal; ápr. 3., 10:05
Yzal eredeti hozzászólása:
No thanks, i like being able to tinker with a prefix for a game without it possibly causing issues for another game(s).
and you should still be able to do that, but by default compatibility and ease of use should be improved by this simple change that there is no option for whatsoever right now.
tyl0413 eredeti hozzászólása:
Yzal eredeti hozzászólása:
No thanks, i like being able to tinker with a prefix for a game without it possibly causing issues for another game(s).
and you should still be able to do that, but by default compatibility and ease of use should be improved by this simple change that there is no option for whatsoever right now.

While I agree that an option would be fine, having the prefixes separated is the most safe bet in terms of compatibility (no game interferes with the other) and ease of use (just install and play).
Zyro eredeti hozzászólása:
tyl0413 eredeti hozzászólása:
and you should still be able to do that, but by default compatibility and ease of use should be improved by this simple change that there is no option for whatsoever right now.

While I agree that an option would be fine, having the prefixes separated is the most safe bet in terms of compatibility (no game interferes with the other) and ease of use (just install and play).
That may be the case but then it should be fixed? Games run in one windows environment just fine usually, it breaks more compatibility with mods and such that its such a huge pain to run multiple programs in one container. I don't see a good reason for this.
I just want to be able to use flawless widescreen for example.
tyl0413 eredeti hozzászólása:
That may be the case but then it should be fixed? Games run in one windows environment just fine usually, it breaks more compatibility with mods and such that its such a huge pain to run multiple programs in one container. I don't see a good reason for this.
I just want to be able to use flawless widescreen for example.
When you grasp how things work is much easier to overcome this aparent inconvenience. In the case of Proton, I'd wager that it could be even better if Steam incorporated the functionality of Protontricks, at least partially, to run an .exe under a given prefix (game name), in such a way like a context menu entry in the game's properties "Run .exe in prefix", for example, to open a file selection window onto which you could simply drag and drop the file you wanted to run, as well another entry similar to the show game files to open a file manager window to "Show game prefix", for instance, and place these options behind advanced options (such as developer mode in Steam Deck).
Legutóbb szerkesztette: thetargos; ápr. 3., 17:02
thetargos eredeti hozzászólása:
tyl0413 eredeti hozzászólása:
That may be the case but then it should be fixed? Games run in one windows environment just fine usually, it breaks more compatibility with mods and such that its such a huge pain to run multiple programs in one container. I don't see a good reason for this.
I just want to be able to use flawless widescreen for example.
When you grasp how things work is much easier to overcome this aparent inconvenience. In the case of Proton, I'd wager that it could be even better if Steam incorporated the functionality of Protontricks, at least partially, to run an .exe under a given prefix (game name), in such a way like a context menu entry in the game's properties "Run .exe in prefix", for example, to open a file selection window onto which you could simply drag and drop the file you wanted to run, as well another entry similar to the show game files to open a file manager window to "Show game prefix", for instance, and place these options behind advanced options (such as developer mode in Steam Deck).
Sure, there are workarounds, I'm playing Mass Effect 3 right now and it is among the very few games where Steam is not launching an exe but an Origin URL, so all the exe replacement based linux mods to launch extra software in prefix just do not work, so I can't launch flawless widescreen, can't play in ultrawide on linux, so I'm not playing on linux.
These shouldn't be complicated to fix and would greatly enhance compatibility with mods and old games and various edge cases like this.
< >
114/14 megjegyzés mutatása
Laponként: 1530 50