gamescope: drop the -r 1200 vblank grid

Merged
UT
10d ago
+0-12

Description

Removes the fixed -r 1200 vblank grid from the gamescope launch command. gamescope then takes its tick rate from the mode the daemon advertises, which is the panel's active refresh (the daemon learns it from nativeSetPanelRefreshHz and measures the real latch grid itself).

-r 1200 existed so the old wakeup-counting FPS limiter could hit arbitrary caps on a fine grid. A52 (gamescope #22, merged) moved the limiter to a time grid, so the fine grid is no longer needed, and it cost about 1500 steamcompmgr wakeups a second for the whole session.

Measured (Retroid Pocket 6, 120 Hz, Dave the Diver, cap 60, same scene)

-r 1200 (shipped A52)no -r (A52, mode 120 Hz)
gamescope wakeups/s~1720~620-850 (depends on the game's own commit rate)
gamescope CPU8.1 %6-7 %
fpsunchanged by this PR (the 47 -> 60 fix is gamenative-drm #37, merged)

Type of change

  • Performance / stability improvement

Checklist

  • Device tested (RP6: gamescope logs selecting mode 1280x720@120Hz, vblank: Using timerfd, caps 60 and 30 exact with #37)

Supersedes #2298, which bundled this with an unproven daemon change.


Summary by cubic

Removes the fixed -r 1200 vblank grid from the gamescope launch command; gamescope now ticks at the refresh rate the daemon advertises (the panel's active refresh) instead of a fixed 1200 Hz grid.

The grid was only needed for the old wakeup-counting FPS limiter; A52 moved the limiter to a time grid, so it no longer serves any purpose and cost about 1500 steamcompmgr wakeups per second. Measured on a Retroid Pocket 6 at 120 Hz, session wakeups drop from ~1720/s to ~620-850/s and gamescope CPU from 8.1% to 6-7%, with no change in frame rate.

Summary by CodeRabbit

  • Changes
    • Gamescope sessions no longer use a fixed refresh-rate grid. Existing scaling and display mode settings remain unchanged. This may affect how refresh rates are selected during gameplay.