Checklist
(Note: Using Bazzite which ships upstream gamescope 3.16.1)
Current Behavior
Gamescope selects 2560x1440@120Hz but uses 60Hz timing internally. The Vblank is 16393ns (60Hz) instead of ~8333ns (120Hz). After a few seconds, it falls back to 59Hz. The same display works at 120Hz in KDE Plasma desktop mode with the correct 497.75 MHz pixel clock.
Steps To Reproduce
- Connect AMD GPU to TCL 65R635 (HDMI 2.0 TV) via HDMI
- Boot into gamescope-session (Steam Gaming Mode)
- Go to Steam Settings → Display
- Select 2560x1440 resolution and 120Hz refresh rate
- Observe TV shows 60Hz, then falls back to 59Hz after ~5 seconds
Hardware Information
- Distro: Bazzite 42 (Fedora 42-based immutable)
- CPU: Intel Core i5-12600K
- GPU: AMD Radeon RX 7900 XT (Navi 31)
- Driver Version: Mesa 25.1.0, kernel 6.14.4-104.bazzite.fc42.x86_64
- Display: TCL 65R635 (HDMI 2.0 TV, 2560x1440@120Hz capable)
Software Information
- Desktop environment: KDE Plasma (for comparison testing)
- Session type: gamescope-session (DRM backend)
- Gamescope version: 3.16.1-4-gf873ec7+
- Gamescope launch command(s):
/usr/bin/gamescope -W 2560 -H 1440 --generate-drm-mode cvt --custom-refresh-rates 120 --prefer-output '*,eDP-1' --xwayland-count 2 --default-touch-mode 4 --hide-cursor-delay 3000 --fade-out-duration 200 --steam
Backend
Logging and Analysis
Key Evidence
Desktop mode (working) - kernel DRM state:
mode: "2560x1440": 120 497750 2560 2608 2640 2720 1440 1443 1448 1525 0x40 0x9
Pixel clock: 497.75 MHz ✓
Gamescope (broken) - selects mode with wrong timing:
mode: "2560x1440": 60 241500 2560 2608 2640 2720 1440 1443 1448 1481 0x20 0x9
Pixel clock: 241.5 MHz (half of correct value)
Gamescope Logs
[gamescope] [Info] drm: selecting mode 2560x1440@120Hz
[gamescope] [Info] drm: Vblank ns: 16393 ← This is 60Hz timing!
[gamescope] [Info] wlserver: Updating mode for xwayland server #0: 2560x1440@120
[gamescope] [Info] drm: selecting mode 2560x1440@59Hz
[gamescope] [Info] drm: Vblank ns: 34333
The EDID contains a valid 1440p@120Hz detailed timing at offset 0x48 with 497.75 MHz pixel clock. Gamescope saves this to ~/.config/gamescope/modes.cfg:
Technical Concepts Ltd 65R635:2560x1440@120
Troubleshooting Attempted
| Setting |
Result |
DRM_MODE=fixed |
Falls back to 4K@60 |
DRM_MODE=cvt |
Same wrong Vblank, falls to 59Hz |
ENABLE_GAMESCOPE_HDR=0 |
No change |
| Removed adaptive sync |
No change |
EDID (Base64)
AP///////wBQbAAAhScTJBoeAQOAkFF4Cu/RrU5FqCcMUFStzwBxT4FAgYCBAJUAswDRwIHACOgA
MPJwWoCwWIoAIMIxAAAeb8IAoKCgVVAwIDUAVlAhAAAaAAAA/AA2NVI2MzUKICAgICAgAAAA/QAX
eA+3PAAKICAgICAgAXsCA2hxUmFfXWZkYhAiIAUEPjwCAQYvPywJBwcVB1BXBwFnBAODAQAA4gDP
4wXAAG0DDABAALg8IBBgAQMEa9hdxAF4gAMCMAAA4wYNAesBRtAAREuKhFR3feIPCeYRRtAAcADk
IAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArA==
Analysis
Gamescope selects a mode labeled "120Hz" but with 60Hz timing parameters (241.5 MHz instead of 497.75 MHz). The EDID contains correct timings and KDE uses them successfully. The issue appears to be in gamescope's mode selection or timing generation for this HDMI 2.0 display.
Checklist
(Note: Using Bazzite which ships upstream gamescope 3.16.1)
Current Behavior
Gamescope selects 2560x1440@120Hz but uses 60Hz timing internally. The Vblank is 16393ns (60Hz) instead of ~8333ns (120Hz). After a few seconds, it falls back to 59Hz. The same display works at 120Hz in KDE Plasma desktop mode with the correct 497.75 MHz pixel clock.
Steps To Reproduce
Hardware Information
Software Information
/usr/bin/gamescope -W 2560 -H 1440 --generate-drm-mode cvt --custom-refresh-rates 120 --prefer-output '*,eDP-1' --xwayland-count 2 --default-touch-mode 4 --hide-cursor-delay 3000 --fade-out-duration 200 --steamBackend
Logging and Analysis
Key Evidence
Desktop mode (working) - kernel DRM state:
Pixel clock: 497.75 MHz ✓
Gamescope (broken) - selects mode with wrong timing:
Pixel clock: 241.5 MHz (half of correct value)
Gamescope Logs
The EDID contains a valid 1440p@120Hz detailed timing at offset 0x48 with 497.75 MHz pixel clock. Gamescope saves this to
~/.config/gamescope/modes.cfg:Troubleshooting Attempted
DRM_MODE=fixedDRM_MODE=cvtENABLE_GAMESCOPE_HDR=0EDID (Base64)
Analysis
Gamescope selects a mode labeled "120Hz" but with 60Hz timing parameters (241.5 MHz instead of 497.75 MHz). The EDID contains correct timings and KDE uses them successfully. The issue appears to be in gamescope's mode selection or timing generation for this HDMI 2.0 display.