protonscr

Squad locks at exactly 10 FPS under gamescope while the window stays focused

protonclosed appid 393380
ValveSoftware/Proton#10286 · opened 2026-10-18 by veelo · updated 2026-10-18 · 1 comments · github · game page · search this game
Vveelo 2026-10-18 github

Compatibility Report

  • Name of the game with compatibility issues: Squad
  • Steam AppID of the game: 393380

System Information

  • GPU: NVIDIA GeForce RTX 5080
  • Video driver version: 610.57.04
  • Kernel version: 7.2.5-3-omarchy
  • Desktop: Hyprland 0.56.2 (Wayland), Omarchy
  • Proton version: 10.0-4b (wine-10.0)
  • gamescope: 3.16.28
  • Steam Linux Runtime: sniper

Launch options:

gamemoderun gamescope -f -w 3840 -h 1600 -W 3840 -H 1600 -r 144 --force-grab-cursor -- %command%

PROTON_ENABLE_WAYLAND is not set. The game is borderless 3840x1600 on a 3840x1600@144 display, vsync off.

I confirm:

  • [x] that I haven't found an existing compatibility report for this bug.
  • [x] that I have checked whether there are updates for my system available.

Related reports that are a different bug:

  • #8676 was games that would not release focus. Closed as fixed in May 2025.
  • #9779 / gamescope#9780 is a Proton 11 regression: after the Steam overlay the game loses focus until it is clicked. This report is on Proton 10.0-4b, and clicking the window does not restore the frame rate.

Symptoms

Mid-match the game thread locks at exactly 10 FPS. A frame is about 1 ms of work padded out to about 100 ms. The RTX 5080 drops to about 45 W.

While this is happening, Hyprland and gamescope both still report the gamescope window as focused. Clicking the window again does not clear it. gamescopectl debug_set_fps_limit 144 does not clear it either. Only restarting the game does, and it can lock again later in the same way.

Cause

Squad is Unreal Engine 5.7.4 (shipping build 691446.3180.//Squad/v10.6.2). The engine console variable t.IdleWhenNotForeground calls FPlatformProcess::Sleep(0.1f) from ShouldUseIdleMode() when the Windows foreground-window check is false. That sleep is 100 ms, so the thread lands on exactly 10 FPS and the GPU goes idle.

The compositor focus state is still true when the sleep starts. Wine's foreground-window state is the value that stays false. The same lock still happened after removing PROTON_ENABLE_WAYLAND and pinning gamescope -W 3840 -H 1600 -r 144.

Reproduction

  1. Launch Squad with the gamescope options above, Proton 10.0-4b, on Hyprland.
  2. Join a match, or return from a match to the menu.
  3. Wait until the game thread settles at exactly 10 FPS with the GPU idle. This can take about an hour or more.
  4. Confirm the gamescope window is still the focused window in the compositor, then click it again.

It does not happen on every launch. When it does, it stays until the process exits.

Workaround

In the Proton prefix, compatdata/393380/pfx/drive_c/users/steamuser/AppData/Local/SquadGame/Saved/Config/Windows/Engine.ini:

[ConsoleVariables]
t.IdleWhenNotForeground=0

This is read on the next launch. The EAC launcher (squad_launcher.exe / start_protected_game.exe) starts SquadGame-Win64-Shipping.exe with an empty command line, so -ExecCmds does not reach the game. Squad also rewrites Engine.ini when it updates and can drop this key.

Kkisak-valve maintainer 2026-10-18 github

Hello @veelo, we're using one issue report per unofficially supported game title, so I've gone ahead and transferred this issue report to https://github.com/ValveSoftware/Proton/issues/938#issuecomment-6254892832.

Related threads