ValveSoftware / ValveSoftware/SteamOS
Steam UI web views render black after HDMI link drop; steamwebhelper process stays alive
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 2.6k
- Forks
- 83
- Avg merge
- 4m
- Merged PRs (30d)
- 3
Description
System information
- Device: Steam Machine
- SteamOS version: 3.8.16 (VERSION_CODENAME=holo)
- Kernel: linux-neptune-616
- GPU: amdgpu 0000:03:00.0, [1002:7481], Display Core v3.2.334 on DCN 3.2.1
- Steam client CEF: Chrome 126.0.6478.183
- Opted into SteamOS beta: No
- Opted into Steam client beta: No
- Display: Samsung QM65H commercial signage panel over HDMI-A-1
(reported by gamescope as "SAM - SyncMaster"). This panel drops the
HDMI link for a few seconds when it powers its backlight down.
Current behavior
When the display drops and restores the HDMI link, gamescope
reconfigures the output, and afterwards all CEF-rendered surfaces in the
Steam UI are solid black: library, store, and settings.
The native gamepad UI overlay (Steam button menu, power menu) renders and
responds normally, so the compositor and the client process are alive.
Whether games can be launched or rendered in this state was not tested,
since with the library black there is no way to start one from the UI.
steamwebhelper does not crash. The PID that started at boot is still
running while the panels are black. pkill -f steamwebhelper makes Steam
respawn it and fully restores the UI within seconds. So this is loss of
the rendering surface inside a live CEF process, not a process crash and
not a client hang.
In practice the machine is unusable for its purpose until it is fixed
from another device over SSH, or rebooted. Without SSH configured, the
only reachable function is the power menu.
Expected behavior
CEF surfaces should be recreated after output reconfiguration, or
steamwebhelper should detect the invalid surface and recover, without a
manual kill or a reboot.
Steps to reproduce
- Boot into Game Mode on a display that drops the HDMI link when idle.
- Let the display power down and come back (no system suspend involved).
- Library, store, and settings render black. The native menu still works.
Logs: confirmed trigger
Connector drop and restore events on the affected boot:
Aug 16 12:18:22 gamescope-session[2181]: drm: current connector 'HDMI-A-1' disconnected
Aug 16 12:18:22 gamescope-session[2181]: drm: cannot find any connected connector!
Aug 16 12:18:24 gamescope-session[2181]: drm: Connector HDMI-A-1 -> SAM - SyncMaster
Aug 16 12:18:24 gamescope-session[2181]: drm: selecting connector HDMI-A-1
Aug 16 12:18:24 gamescope-session[2181]: edid: Wrote new edid to: /home/deck/.config/gamescope/edid.bin
Aug 16 17:51:10 gamescope-session[2181]: drm: current connector 'HDMI-A-1' disconnected
Aug 16 17:51:13 gamescope-session[2181]: drm: selecting connector HDMI-A-1
Aug 17 11:20:47 gamescope-session[2181]: drm: current connector 'HDMI-A-1' disconnected
Aug 17 11:20:50 gamescope-session[2181]: drm: selecting connector HDMI-A-1
The last cef_log.txt entry from the affected steamwebhelper process is at
11:21:09, immediately after the 11:20:50 reconnect. No new browser
process appears in cef_log.txt after that, confirming the process
survived while rendering nothing.
What was ruled out
- Not suspend/resume.
journalctl -b | grep -iE "suspend|resume"
returns nothing across the entire boot. - Not a GPU hang or reset. No amdgpu errors, ring timeouts, or resets
in the kernel log. - Not OOM. earlyoom reports 8.8 GiB of 13.5 GiB available, swap 100%
free; nothing killed. - Not a webhelper crash. No new browser process in cef_log.txt
between boot and the manual kill. - Not third-party packages. tailscale and samba installed via pacman
with no dependency upgrades (pacman.log shows only those two, nothing
in mesa/nss/icu/glibc). steamos-readonly is enabled.
Secondary issue: session fails to start if the display is slow to present
On the same boot, the first two gamescope sessions died because the panel
had not yet come up, and sddm restarted the session twice before the
third attempt succeeded:
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the gamescope-session connector events alongside the affected steamwebhelper process and its cef_log.txt around the HDMI disconnect and reconnect. Determine where the live CEF rendering surface fails to recover after output reconfiguration; done means the Steam UI surfaces return without manually killing steamwebhelper or rebooting.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux
- Domain
- desktop-dev, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100