Proton icon indicating copy to clipboard operation
Proton copied to clipboard

Better fullscreen support for multi-monitor setup with different resolutions.

Open adoa opened this issue 2 years ago • 0 comments

Feature Request

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

I have two monitors with drastically different resolution. Primary, left: 3840×2160 @ 60Hz Secondary, right: 1920×1080 @ 60Hz

Arch Linux & Gnome 3 via Wayland Radeon RX 580, mesa 22.1.6-1 Steam

When I launch games in exclusive fullscreen, they stretch to fill my primary monitor, irrespective of game resolution. This is expected and fine. However, some games I really want to play at native 1080p on my secondary monitor while capturing the game window via OBS.

The Problem When I drag a fullscreen game from primary to secondary monitor, the stretching is preserved even if the game renders in 1080p. As a consequence, I can only see one fourth of the game – which is entirely unusable. This is irrespective of the screen scaling I set in Gnome.

Positioning the game in windowed mode to fill the secondary screen pixel perfect (und thus hide the decorations) is not an option for me since I also want to capture the output of the game window via OBS.

Games in “borderless windowed” fullscreen are not affected.

Small selection of affected games:

  • Sekiro (314380)
  • Witcher 2 (20920)

Not affected (I assume they render to borderless fullscreen):

  • The Cat Lady (253110)
  • Cuphead (268910)

Games that can switch between fullscreen & borderless:

  • Dark Souls Remastered (570940) When in borderless, scaling is correct when positioned on the smaller secondary monitor. When in fullscreen, scaling is off when positioned on the smaller secondary monitor.

I accidentally found this workaround, which used to work with Proton 6.3 & Gnome 3:

  1. Set the game to windowed mode at native resolution of the secondary screen.
  2. Position the window pixel-perfect on the secondary screen such that window decorations are invisible and window content fills the entire screen.
  3. Switch to a different virtual desktop of Gnome and then switch back to the virtual desktop where the game is located.
  4. Magically, the game is rendered borderless.

I have no idea how or why this workaround ever worked, nor do I understand why this workaround stopped working with Proton 7.0. In any case, it was never really satisfying for me.

My current workaround involves gamescope. I believe a solution with winecfg could work too. But seriously this should work out of the box with Steam Play.

References [optional]

Following issues seem to be vaguely related: #720 #3060 #3600 but I don't understand the internals well enough to really judge that.

adoa avatar Aug 14 '22 18:08 adoa