ValveSoftware / ValveSoftware/Proton

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

Open
#6,092 7 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
32.8k
Forks
1.6k
PR merge metrics
PR metrics pending

Description

Feature Request

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

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named; start by reproducing the issue with an affected exclusive-fullscreen game on the described dual-monitor Wayland setup, then review related issues #720, #3060, and #3600. Done means native 1080p exclusive fullscreen scales correctly on the secondary monitor while existing borderless behavior remains unaffected.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
desktop, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.