gamescope icon indicating copy to clipboard operation
gamescope copied to clipboard

Gamescope + Big Picture Overlay mouse recapture bug on stretched resolutions (native res workaround exists; conflicts with multi-Xwayland)

Open dillacorn opened this issue 3 weeks ago • 2 comments

Is there an existing issue for this?

  • [x] I have searched the existing issues

Are you using any gamescope patches or a forked version of gamescope?

  • [x] The issue occurs on upstream gamescope without any modifications

Current Behavior

Description: On stretched resolutions using gamescope (-S stretch with -W/-H != -w/-h), closing the Steam Big Picture overlay does not reliably return the game to a working relative/raw mouse state. After closing the overlay, the game’s camera mouse input becomes unresponsive until the user physically moves the mouse (a tiny “jiggle”). In some games, mouse/camera input becomes constrained to a small box region; in others it appears fully locked/unresponsive. The same jiggle restores normal camera input.

On native resolutions (no stretch; -W/-H == -w/-h), I can avoid the issue by using multiple Xwayland instances (STEAM_MULTIPLE_XWAYLANDS=1 with --xwayland-count 2). However, enabling that workaround causes stretched mode to stop working on my system: -S stretch is ignored or the output is no longer stretched (scaler behavior changes).

Expected behavior:

  • Closing the Steam Big Picture overlay should immediately restore normal relative/raw mouse capture for camera input.
  • Stretched scaling (-S stretch) should continue working regardless of whether multiple Xwayland instances are used.

Actual behavior (stretched mode):

  • Open Steam overlay (Shift+Tab).
  • Close Steam overlay (Shift+Tab).
  • If the mouse is NOT moved immediately after closing overlay, camera input is unresponsive (no mouselook) OR constrained to a small box region.
  • Moving the mouse even slightly (1–2 px) after closing overlay immediately restores normal camera input.

Games observed:

  • ARC Raiders: often constrained to a small “box” region until jiggle.
  • THE FINALS: similar “box” constraint until jiggle.
  • Other titles: sometimes fully unresponsive until jiggle.

Steps To Reproduce

Steps to reproduce:

  1. Launch a game with gamescope stretched scaling and forced cursor grab: PIPEWIRE_DEBUG=0 gamescope -f -W 1920 -H 1080 -w 1440 -h 1080 -r 400 -S stretch --force-grab-cursor -- steam -gamepadui
  2. In-game, open Steam overlay (Shift+Tab).
  3. Close Steam overlay (Shift+Tab).
  4. Do NOT move the mouse.
  5. Observe camera input is broken (unresponsive or boxed).
  6. Move mouse slightly (“jiggle”).
  7. Observe camera input immediately returns to normal.

Workaround for native (works, but breaks stretch on my system): This fixes the overlay/mouse recapture issue at native resolution, but conflicts with stretched scaling.

  • Native (no stretch) example command: STEAM_MULTIPLE_XWAYLANDS=1 PIPEWIRE_DEBUG=0 gamescope -f -W 1920 -H 1080 -w 1920 -h 1080 -r 400 --xwayland-count 2 --force-grab-cursor -- steam -gamepadui

Conflict / regression detail:

  • If I keep my stretched sizes (W/H 1920x1080, w/h 1440x1080) and add multi-Xwayland: STEAM_MULTIPLE_XWAYLANDS=1 PIPEWIRE_DEBUG=0 gamescope -f -W 1920 -H 1080 -w 1440 -h 1080 -r 400 -S stretch --xwayland-count 2 --force-grab-cursor -- steam -gamepadui Result: stretched behavior stops working (on my system). The scale behavior changes and the output is no longer stretched as expected.

Hardware information

System / software info
- Distro: Arch Linux (vanilla)
- Kernel: 6.17.8-273-tkg-eevdf
- CPU: AMD Ryzen 7 7700
- GPU: AMD Radeon RX 6800 XT
- Graphics stack:
  - mesa 1:25.3.1-2
  - libdrm 2.4.131-1
  - llvm 21.1.6-1
- Steam:
  - Client channel: Stable Client (not beta)
  - Steam version/build: 1763795278
- Monitor: Zowie XL2566X+

Software information

* Desktop environment: Bare Metal TTY & Hyprland
* Session type: tty & wayland
* Gamescope version: 3.16.18

Issue with:

* Gamescope launch command(s): `PIPEWIRE_DEBUG=0 gamescope -f -W 1920 -H 1080 -w 1440 -h 1080 -r 400 -S stretch --force-grab-cursor -- steam -gamepadui`

Resolves issue, but using `STEAM_MULTIPLE_XWAYLANDS=1` and `--xwayland-count 2` causes stretched (-S stretch) to not work anymore.

* Gamescope launch command(s): `STEAM_MULTIPLE_XWAYLANDS=1 PIPEWIRE_DEBUG=0 gamescope -f -W 1920 -H 1080 -w 1440 -h 1080 -r 400 -S stretch --xwayland-count 2 --force-grab-cursor -- steam -gamepadui`

Which gamescope backends have the issue you are reporting?

  • [x] Wayland (default for nested gamescope)
  • [x] DRM (default for embedded gamescope, i.e. gamescope-session)
  • [ ] SDL
  • [ ] OpenVR

Logging, screenshots, or anything else

Notes:

  • The bug presents as “overlay visually closes, but relative mouse grab/capture is not restored until the first post-overlay mouse motion event.”
  • The “boxed” behavior and “fully unresponsive” behavior appear to be the same underlying failure mode across different games.

dillacorn avatar Dec 18 '25 20:12 dillacorn

I switched the examples from -- %command% (per-game launch options) to -- steam -gamepadui to match how I’m reproducing this issue.

dillacorn avatar Dec 20 '25 21:12 dillacorn

I'm experiencing this issue again on a new kernel..

6.18.2-3-cachyos

the solution would be to allow STEAM_MULTIPLE_XWAYLANDS=1 and --xwayland-count 2 to allow stretched resolutions with steam -gamepadui but that still doesn't work.

dillacorn avatar Dec 24 '25 15:12 dillacorn

I'm running very similar hardware and also cs2 with a stretched resolution. For me, this problem never happens while shift-tabbing out of the game - only when I open the game through big picture mode and not moving the mouse immeaditly. The cursor works in the menu of the game, but after loading into a game the crosshair only moves like 1-2 pixel to a side and then moves back again for some reason. I have to relaunch big picture mode in order to fix it. The issue does not occur without big picture mode.

schneider-technology avatar Dec 31 '25 09:12 schneider-technology

I'm running very similar hardware and also cs2 with a stretched resolution. For me, this problem never happens while shift-tabbing out of the game - only when I open the game through big picture mode and not moving the mouse immeaditly. The cursor works in the menu of the game, but after loading into a game the crosshair only moves like 1-2 pixel to a side and then moves back again for some reason. I have to relaunch big picture mode in order to fix it. The issue does not occur without big picture mode.

Yes the issue is in direct relation when big picture is used. If you close the big picture overlay and are jiggling/moving your mouse while closing you can gain full input to the game back.. Without big picture of course this is a non-issue.

dillacorn avatar Jan 02 '26 04:01 dillacorn

If you close the big picture overlay and are jiggling/moving your mouse while closing you can gain full input to the game back

doesn't work for me, but anyways I just stopped using BPM for now

schneider-technology avatar Jan 07 '26 21:01 schneider-technology

doesn't work for me, but anyways I just stopped using BPM for now

You're using the latest commit version?

dillacorn avatar Jan 07 '26 21:01 dillacorn