ValveSoftware/steam-for-linux

Refactor internal display scaling for embedded steam client within gamescope-session into a user-facing option

matte-schwartz opened this issue · 0 comments

Your system information

  • Steam client version (build number or date): 1717792772

  • Distribution (e.g. Ubuntu): N/A - universal Deck client feature request

  • Opted into Steam client beta?: Yes

  • Have you checked for system updates?: Yes

  • Steam Logs: including from my ROG Ally running Fedora 40 linux using upstream gamescope with gamescope-session in case any of my Steam logs help with implementation of this feature request
    steam-logs.tar.gz

  • GPU: AMD Z1 Extreme APU

Please describe your issue in as much detail as possible:

Transferring from ValveSoftware/gamescope#1344
I wasn't able to find an existing issue that matched this feature request - sorry if I overlooked one

With more customization options in the pipeline for Steam Deck and Linux users of gamescope and embedded steam within gamescope-session, I wanted to raise a suggestion of refactoring the internal display scaling option for the Steam Deck client into Steam client userspace for customization.

Handheld devices with high internal display resolutions - such as the ROG Ally at 1920x1080p or the even more egregious Legion Go at 2560x1600 - are very hard to use with the default scaling that ships in gamescope-session provided from the in-client source package mirror: https://steamdeck-packages.steamos.cloud/archlinux-mirror/

I don't have a Legion Go anymore (it's a bit more of a stark comparison as well...) but here are the Steam Deck and ROG Ally side-by-side showcasing the scaling differences

IMG_1622


If users want to scale the UI to be more legible right now, they have two options:

1: make gamescope think your panel is external with a forked version of gamescope and forked gamescope-session... perhaps the most common method and a very "hacky" workaround
2: rely on third-party extensions to access "hidden" dev options within the steam client itself

Method 1 is difficult for many users who are new to the linux ecosystem unless a distro provides a modified package for them, while Method 2 lead to people using third-party extensions to fill the gap - which are liable to break between steam updates that ultimately end up being filed as erroneous steam client bug reports. Method 2 also involves menus that no end user should ever need to be seeing.

Imo, refactoring internal display scaling into a user-facing portion of the client is starting to make sense given the heading of a few different Valve projects. If it's just internal UI scaling it can probably be done by dressing up the existing method and unhiding it? bringing this in-line with the proposed Gamescope PR gives a wider range of users the ability Valve's own provided packages. just my two cents on it.