protonscr

[Feature Request] Proton common issues reporting + Help Page

protonclosed Feature Request
ValveSoftware/Proton#1968 · opened 2018-11-14 by Rabcor · updated 2018-11-15 · 4 comments · github
RRabcor 2018-11-14 github

Feature Request

Proton should be able to check if the user has a misconfigured sytem or suboptimal settings and warn the user about it. Additionally, there should be an officially provided guide/steam help page for proton which explains how to resolve those issues (within reason).

I confirm:

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

Description

Example issues:

  • Proton uses Esync which requires the hard file descriptor limit to be set high, most distros have this setting misconfigured out of the box see: https://github.com/zfigura/wine/blob/esync/README.esync
    The hard file descriptor limit (hard nofile) setting needs to be at least 1048576, the value can be checked with the ulimit -Hn command.
    Proton should be able to check whether the value is appropriately high, and warn the user if it is not.

  • Most distros do not install the Nvidia Proprietary driver by default for nvidia cards. Proton should be able to detect whether it is being used or not (if the GPU is nvidia) and warn the user that performance may be bad with their current driver if it isn't.

  • For Intel iGPU and AMD graphics cards (and open source Nvidia drivers), the Vulkan driver is not always provided by default as part of the driver and may need to be installed separately. Proton should be able to detect if Vulkan is properly supported and warn the user about lack of Vulkan (and by extension, DXVK) support. And how some games might not run because of it.

  • Laptop users with dual graphics (integrated+dedicated) should probably use their dedicated graphics to run games. Proton (or perhaps steam?) should be able to detect if there are more than one graphics card and which one is being used.

Example Tweaks:
For the suggested steam help page, besides reasonable explanations for how to solve the above mentioned issues, there should probably also be a tweak section to explain optimizations users can optionally run to make some games possibly run better.

  • Setting the CPU Governor to Performance (may have a big impact for AMD CPUs and older Intel CPUs)
  • Threaded Optimization (for __GL_THREADED_OPTIMIZATION/mesa_glthread) may help certain games run slightly better.
  • DXVK configuration file tweaking (I am personally unfamiliar with this, perhaps a link to here https://github.com/doitsujin/dxvk/wiki/Configuration )
  • List of the common Launch options for proton (currently on the github readme page)

Justification [optional]

The average user will be unaware of the possibility of these issues, and a lot of them may make even whitelisted games hard/impossible to play. It is important that they be made aware of these potential issues so that they can avoid them, and it is also important that there is a guide (or as I suggested, steam help page) which outlines how to solve each of these most common problems which may be encountered when using Proton; or perhaps even steam on linux in general. I mean you have to admit that this page: https://support.steampowered.com/kb_article.php?ref=1504-QHXN-8366 is pretty dry, unhelpful and missing a lot of information.

Risks [optional]

May be finicky to get working with laptops with dual graphics (due to the multiple gpu drivers)
Users need to be able to disable warnings (do not show me again button or something like that)
Otherwise None (unless poorly implemented)

RRabcor 2018-11-14 github

@kisak-valve not sure if this should be a proton feature request or a steam client one, please decide on this for me. (I noticed a lot of the issues I'm pointing out would help both proton and native games, so it could go both ways)

Originally though the thread was about a common issue with proton (the nofile limit) and I think it is a potentially major problem that proton does not properly detect and warn the user about that one, since most users do not know about that setting even existing, much less that it could be causing them problems while gaming.

Kkisak-valve maintainer 2018-11-14 github

So ... you've changed this feature request from a single actionable request for Proton (print a message when a common esync issue occurs) to a general request to check for any number of sub-optimal system config settings.

I'm not going to accept this kind of bait and switch approach to making a feature request.

In general, a user's choice of video driver or system tuning is outside the scope of this project. However, if you figure out how to implement said checks, then open a pull request with each suggestion and they can be evaluated on a per-case basis.

RRabcor 2018-11-15 github

So ... you've changed this feature request from a single actionable request for Proton (print a message when a common esync issue occurs) to a general request to check for any number of sub-optimal system config settings.

I'm not going to accept this kind of bait and switch approach to making a feature request.

In general, a user's choice of video driver or system tuning is outside the scope of this project.
However, if you figure out how to implement said checks, then open a pull request with each suggestion and they can be evaluated on a per-case basis.

@kisak-valve I added a warning to the top of the post that I was rewriting it before you flagged it as a feature request, after posting the intitial request it seemed to me like it would be better if the request covered a broader misconfiguration-checking function rather than just one error. Clearly you disagree with that and that is fine.

Do you think I should repost the request in it's original 'actionable' form that covered just that one error?

Kkisak-valve maintainer 2018-11-15 github

Sure, the original request is worth running past a Proton dev to see what they think, or at least to gauge the amount of interest others have in the topic.

Launch options