protonscr

[GamepadUI/Gamescope] - VRR frame limiter should not share non-VRR framerate slider values defined in gamescope lua configs

steamclosed Feature RequestSteam clientDistro Family: SteamOS
ValveSoftware/steam-for-linux#11924 · opened 2025-04-22 by matte-schwartz · updated 2025-08-29 · 1 comments · github
Mmatte-schwartz 2025-04-22 github

Your system information

  • Steam client version (build number or date): 1745269938
  • Distribution (e.g. Ubuntu): SteamOS
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes
  • Steam Logs: go-s-config-logs.tar.gz
  • GPU: AMD Z2 Go [Rembrandt APU]

Please describe your issue in as much detail as possible:

On SteamOS Preview and SteamOS Main, we now have the ability to use the frame limiter on VRR enabled displays. With the backend logic currently in the Steam client, any valid refresh rates defined in a gamescope .lua config file apply to both the non-VRR limiter and the VRR limiter.

However, this presents a problem on devices like the Legion Go S, which are capable of a wider range of frame limiting while VRR is enabled compared to while VRR is disabled. For the Go S specifically, the non-VRR range covered in https://github.com/ValveSoftware/gamescope/pull/1801 is much tighter than the 48-120Hz afforded to you in the EDID when using VRR:

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.4
  Vendor & Product Identification:
    Manufacturer: CSW
    Model: 2048
    Made in: 2024
  Basic Display Parameters & Features:
    Digital display
    Bits per primary color channel: 8
    DisplayPort interface
    Maximum image size: 17 cm x 11 cm
    Gamma: 2.20
    Supported color formats: RGB 4:4:4
    First detailed timing includes the native pixel format and preferred refresh rate
    Display supports continuous frequencies
  Color Characteristics:
    Red  : 0.6464, 0.3310
    Green: 0.2968, 0.6191
    Blue : 0.1416, 0.0507
    White: 0.3046, 0.3251
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  1920x1200  120.002130 Hz  16:10   151.683 kHz    315.500000 MHz (172 mm x 107 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol N
                 Vfront   54 Vsync   6 Vback    4 Vpol N
    DTD 2:  1920x1200   60.001065 Hz  16:10    75.841 kHz    157.750000 MHz (172 mm x 107 mm)
                 Hfront   48 Hsync  32 Hback   80 Hpol N
                 Vfront   54 Vsync   6 Vback    4 Vpol N
    Display Range Limits:
      Monitor ranges (Range Limits Only): 48-120 Hz V, 152-152 kHz H, max dotclock 320 MHz
    Display Product Name: 'PN8007QB1-1'
Checksum: 0xf1

but there isn't a way to access that full VRR frame limiting range without compromising the non-VRR slider values in the gamescope config.

Mmatte-schwartz 2025-08-29 github

this is fixed on the Deck Beta client as of 1756242410. the limiter with VRR disabled is now decoupled from the limiter with VRR enabled.

Upstream links