Native Go Live is extremely slow / ~1 FPS on SteamOS Gaming Mode
Environment
- OS: SteamOS 3.8.16 (stable)
- Build: 20260716.1
- Kernel: 6.16.12-valve24.5-1-neptune-616-gb2f7cfe85e45
- Hardware: Steam Machine, AMD GPU
- Mode: Gaming Mode
- Steamcord: 1.37
- Vesktop: 1.6.7
- Vesktop installation: Flatpak
- Resolution: 2560×1440
Problem
Native Go Live / screen sharing in Gaming Mode does not work correctly.
The stream starts, but the video is essentially unusable: the viewer receives approximately 1 frame every 5 seconds.
Steamcord appears to successfully find and route the Gamescope stream. For example:
[golive] piste stream 651 → steamcord_share (ok)
The Gamescope PipeWire node is also successfully detected by the Steamcord portal shim:
[portal] INFO portalshim: Start → node 83 size=(2560, 1440)
[portal] INFO portalshim: OpenPipeWireRemote → fd pipewire
However, immediately after starting the native screen share, Vesktop/Chromium reports:
[ERROR] third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc:446
Failed to initialize EGL display: EGL_NOT_INITIALIZED
[ERROR] third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc:832
Failed to create default device for wayland platform
The errors occur when the native Gamescope screen-sharing session is started.
Diagnostics
Gamescope exposes the screen as a PipeWire video source:
media.class = "Video/Source"
media.name = "gamescope"
resolution = 2560x1440
format = BGRx
modifier = 0
max framerate = 60 FPS
The Vesktop video input also supports:
BGRx
2560x1440
modifier = 0
max framerate = 60 FPS
The Vesktop Flatpak has access to:
sockets=wayland;pulseaudio;fallback-x11;
devices=all;
xdg-run/pipewire-0
Steamcord launches Vesktop with:
--ozone-platform=x11
--disable-accelerated-video-decode
--disable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL
Relevant journal output
Sep 24 09:45:10 steamdeck PluginLoader[2071]: Starting Steamcord backend
Sep 24 09:46:54 steamdeck PluginLoader[2071]: [golive] piste stream 310 → steamcord_share (ok)
Sep 24 10:00:16 steamdeck PluginLoader[2071]: [golive] piste stream 651 → steamcord_share (ok)
Sep 24 10:00:24 steamdeck PluginLoader[2071]: [golive] piste stream 651 → steamcord_share (ok)
The Steamcord backend itself appears to be able to find the Gamescope stream successfully.
Question
Could this be a compatibility issue between SteamOS 3.8.16 / Gamescope / PipeWire / Chromium WebRTC EGL-DMABUF capture?
Is there a recommended workaround or Chromium/Vesktop configuration for this specific SteamOS Gaming Mode setup?
I can provide additional pw-dump, pw-cli, PipeWire and Steamcord logs if needed.
Native Go Live is extremely slow / ~1 FPS on SteamOS Gaming Mode
Environment
Problem
Native Go Live / screen sharing in Gaming Mode does not work correctly.
The stream starts, but the video is essentially unusable: the viewer receives approximately 1 frame every 5 seconds.
Steamcord appears to successfully find and route the Gamescope stream. For example:
[golive] piste stream 651 → steamcord_share (ok)
The Gamescope PipeWire node is also successfully detected by the Steamcord portal shim:
[portal] INFO portalshim: Start → node 83 size=(2560, 1440)
[portal] INFO portalshim: OpenPipeWireRemote → fd pipewire
However, immediately after starting the native screen share, Vesktop/Chromium reports:
[ERROR] third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc:446
Failed to initialize EGL display: EGL_NOT_INITIALIZED
[ERROR] third_party/webrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc:832
Failed to create default device for wayland platform
The errors occur when the native Gamescope screen-sharing session is started.
Diagnostics
Gamescope exposes the screen as a PipeWire video source:
media.class = "Video/Source"
media.name = "gamescope"
resolution = 2560x1440
format = BGRx
modifier = 0
max framerate = 60 FPS
The Vesktop video input also supports:
BGRx
2560x1440
modifier = 0
max framerate = 60 FPS
The Vesktop Flatpak has access to:
sockets=wayland;pulseaudio;fallback-x11;
devices=all;
xdg-run/pipewire-0
Steamcord launches Vesktop with:
--ozone-platform=x11
--disable-accelerated-video-decode
--disable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL
Relevant journal output
Sep 24 09:45:10 steamdeck PluginLoader[2071]: Starting Steamcord backend
Sep 24 09:46:54 steamdeck PluginLoader[2071]: [golive] piste stream 310 → steamcord_share (ok)
Sep 24 10:00:16 steamdeck PluginLoader[2071]: [golive] piste stream 651 → steamcord_share (ok)
Sep 24 10:00:24 steamdeck PluginLoader[2071]: [golive] piste stream 651 → steamcord_share (ok)
The Steamcord backend itself appears to be able to find the Gamescope stream successfully.
Question
Could this be a compatibility issue between SteamOS 3.8.16 / Gamescope / PipeWire / Chromium WebRTC EGL-DMABUF capture?
Is there a recommended workaround or Chromium/Vesktop configuration for this specific SteamOS Gaming Mode setup?
I can provide additional
pw-dump,pw-cli, PipeWire and Steamcord logs if needed.