Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Per-game Proton Settings #5874

Open
2 tasks done
Rabcor opened this issue Nov 3, 2018 · 8 comments
Open
2 tasks done

Per-game Proton Settings #5874

Rabcor opened this issue Nov 3, 2018 · 8 comments

Comments

@Rabcor
Copy link

Rabcor commented Nov 3, 2018

Feature Request

Games that use proton should have a number of options available to tweak the prefix. This is necessary to run non-whitelisted games among other things, and may be necessary to run whitelisted games if updates break their proton compatibility later on.

I confirm:

  • that I haven't found another request for this feature.
  • that I have checked whether there are updates for my system available that
    contain this feature already.

Description

There's a lot of games that need workarounds to be able to run in proton, and it is vital in order for proton to be able to reach it's full potential that those workarounds are easily accessible without relying on hacks to get there, as those are generally only going to be accessible to experienced users.

Suggested implementation: When you go to the properties window for a game from the library, if that game uses proton to run on the system, that game should have a tab for proton options.

Suggested options:

  • Installation of native Windows DLLs/Components/Runtimes (See winetricks)
  • Toggling libraries between using native or built-in DLLs. (See winecfg)
  • Enabling a 32-bit prefix instead of 64.
  • Running 3rd party executables from the game's prefix (some games may have unofficial patches or mods that need to be installed this way, that is assuming that all official patches are installed via steam (there may be corner cases where they aren't))
  • Configuring specific games to use older versions of proton to work around regressions (Implemented)
  • Configuring specific games to use custom/patched versions of proton (This could be very helpful for users to test pull requests/patches before they are implemented, and in the worst cases, enable games that do not work properly without patches to wine to be run safely without the risk of breaking anything else if the patches have unintended side effects for other games; this idea would probably deserve it's own feature request later on.)
  • Configuring DXVK & Toggling ESync.
  • Toggling EAX (An option available in wine staging, may improve sound in some older games)
  • Configuring which sound devices to use
  • Support for showing hidden (dot) files (maybe this one should just be on by default though)
  • Setting Windows Version Compatibility Mode (95/98/XP/7/10)
  • Virtual Desktop Emulation
  • A 'Browse Prefix' button to edit game settings and save files and similar things if need be.
  • Toggle between steam and native runtimes (should probably not just be for proton)
  • Toggling pulseaudio latency fixes (this should NOT be enabled by default, the proper solution for pulseaudio latency issues is fixing up the pulseaudio configuration; and when users have fixed that configuration the latency fixes may cause sound issues)
  • SDL2 Custom Gamepad Mapping support
  • Community Configuration Presets (not necessary, but would be a nice option for quick configuration for people who have no idea what they're doing here :P)

This could also be used to enable the use of proton for user added non-steam games.

Now I know this is a lot of missing functionality, but just a 32-bit prefix toggle, and access to winetricks and winecfg, and that browse prefix button, would be a great starting point for this which could be built upon further over time.

Justification

While it would be ideal if all of the workarounds above simply wouldn't be needed and proton would auto-configure everything for every game. That may very well be a great end-goal, but the fact of the matter is that Proton will not be able to do this for every single game that needs it for a very, very long time, and the default configuration chosen by Proton's developers for certain games might have issues on some systems, or after the game receives some update, and this would allow users to more easily fix such issues. This would make it easier for users to run unsupported games, and if the community configuration presets were to be added, give Valve some direction for how each game should be configured when the time comes that proton is actually ready to have default configurations for all of them.

Even then however, there will be new games, and these new games may require the kinds of workarounds this would enable to run, and if this is implemented players will more quickly and easily find their way around to playing those games before they become officially supported in Proton.

Risks

Inexperienced users could misconfigure things.
Bad community presets (if that is implemented)
Might take some time to develop (but it's probably worth it all things considered)

References [optional]

ValveSoftware/Proton#1786
ValveSoftware/Proton#1714
ValveSoftware/Proton#1011
ValveSoftware/Proton#1715
ValveSoftware/Proton#449

@kisak-valve kisak-valve transferred this issue from ValveSoftware/Proton Nov 3, 2018
@kisak-valve
Copy link
Member

Hello @Rabcor, this is a feature request for the Steam client rather than Proton itself, so I've transferred this issue to the steam-for-linux issue tracker.

This feature request will only be used to track the general request for having per-game settings and not any specific options past that.

@Rabcor
Copy link
Author

Rabcor commented Nov 4, 2018

@kisak-valve Yeah that makes sense. I don't really care how it's implemented as long as these things (or at least most of them) can be done, I just thought it would be good form to suggest a sensible approach while at it 😄

If this is how the issue will be used, I'll edit it a bit to make it reflect that.

@Rabcor Rabcor changed the title Per-game Proton Options Tab in 'Game Properties' window Per-game Proton Options Nov 4, 2018
@Rabcor Rabcor changed the title Per-game Proton Options Per-game Proton Settings Nov 4, 2018
@ronlaws86
Copy link

ronlaws86 commented Nov 29, 2018

I +1 this, good feature request and I think a definite must-have for most if not all of them.
a lot of this can be done already but as correctly mentioned, it means delving in to the terminal and manipulating some environment variables to get wine-tricks to target a proton prefix etc. which is not user friendly unless you're a seasoned Linux user! (Hell even a button to open winetricks/PlayOnLinux against a games proton prefix would be a simple, temp option to put in here for the short term to make life easy.)

@lucifertdark
Copy link

Being able to choose a different Proton version per game would be very useful.

@ForsakenNGS
Copy link

ForsakenNGS commented Dec 29, 2018

Please, at least allow to override the used Proton version like it is possible globally in the Steam Play settings. I currently have to change the used Proton version globally in order to have Doom (2016) run properly, which (unintensionally) affects all other Games as well.

Worst case is having to keep track of and setup the correct Proton version before every game launch. This should be done by Steam automatically, but Doom is the perfect example where the automatically chosen Proton version for the game (3.16-4 I guess) introduces massive input-related performance issues (ValveSoftware/Proton#2019) that are not present in the one prefered by me. (3.7-8)

@Zamundaaa
Copy link

The latest beta allows for game-specific selection of Proton version. Also if you set a proton version for a game with native version it'll install the proton/Windows version

@lucifertdark
Copy link

It's working, sadly the first game I tried it on (Black The Fall) crashed within 5 minutes, I think it's the game though not Proton that's the problem, the Native Linux Port is just as bad for performance. Oh Well! At least the Proton part of it is working as intended.

@frostworx
Copy link

Hi, just browsed some tickets to see what could be implemented into my stl wrapper,
and thought you might find it useful, as it already has several features you are requesting here:
https://github.com/frostworx/steamtinkerlaunch
hf!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants