Skip to content

Gamescope selects 120Hz mode but uses 60Hz timing (HDMI 2.0 TV) #2059

Description

@jsnyder

Checklist

  • I have searched the existing issues
  • The issue occurs on upstream gamescope without any modifications

(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

  1. Connect AMD GPU to TCL 65R635 (HDMI 2.0 TV) via HDMI
  2. Boot into gamescope-session (Steam Gaming Mode)
  3. Go to Steam Settings → Display
  4. Select 2560x1440 resolution and 120Hz refresh rate
  5. 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

  • DRM (default for embedded gamescope, i.e. gamescope-session)

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions