protonscr

Streaming flat games to Steam Frame from KDE Wayland + NVIDIA: game capture never engages ("foreground failed"), desktop fallback fails EGL (0x3001) and copies frames on CPU

steamclosed
ValveSoftware/steam-for-linux#13650 · opened 2026-09-26 by TehGingerDev · updated 2026-09-26 · 2 comments · github
TTehGingerDev 2026-09-26 github

Your system information

  • Steam client version (build number or date): 1790121765 (publicbeta), launched with -pipewire
  • Distribution (e.g. Ubuntu): Arch Linux, kernel 7.2.2, KDE Plasma 6.7.4 Wayland session (Steam under XWayland), xdg-desktop-portal-kde
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes
  • Steam Logs: available on request (anonymized)
  • GPU: Nvidia (RTX 3090, nvidia-open 610.57.04, lib32-nvidia-utils 610.57.04)
  • Streaming client: Steam Frame (theater / flat mode), over the Steam Frame Wireless Adapter

Please describe your issue in as much detail as possible:

Streaming a flat (non-VR) game from this host to a Steam Frame has very high latency. The game is never captured directly; Steam always falls back to whole-desktop capture, and that fallback copies every frame through the CPU on NVIDIA.

Reproduced with Easy Red 2 (1324780) as the native Linux build (OpenGL), and under Proton with both the DirectX 11 and Vulkan launch options. Same result every time.

1. Game capture never engages; Steam cannot find/focus the game window on KDE Wayland

Every launch from the headset logs:

Bringing streamed game to foreground - failed
>>> Starting desktop stream

Steam then streams the whole primary monitor through the xdg-desktop-portal PipeWire screencast instead of hooking the game. Same symptom as #12057 (NVIDIA, X11/i3), here on KDE Plasma Wayland.

2. The desktop-capture fallback cannot use dmabuf on NVIDIA and copies frames on the CPU

CDesktopCapturePipeWire: Opening DRM render node /dev/dri/renderD128
CDesktopCapturePipeWire: Couldn't initialize EGL: 0x3001
CDesktopCapturePipeWire: PipeWire stream format changed (size: 1920x1080, format 8, stride 7680, size 8294400, dmabuf: 0)
>>> Capture method set to Desktop PipeWire NV12 + NVENC H264 [CPU]

0x3001 is EGL_NOT_INITIALIZED, reported by the 32-bit Steam client, so the PipeWire stream is negotiated without dmabuf and each frame goes through system memory. On this host, desktop streams show 11–17 ms in the capture stage alone (Setting target framerate: ... capture 16.67, ...), before encode, network and decode.

3. The theater path through SteamVR fails on the client

One attempt went through SteamVR instead (Capture method set to VR OpenGL NV12 + NVENC H264 [CPU], capture size 1080x1920), and the Frame's decoder immediately rejected it:

CLIENT: CV4L2Accel: Resetting because decoded frame ID has failed
CLIENT: CV4L2Accel -> F Couldn't queue capture buffer 1 -> 0/0 / FD:120: Invalid argument

Expected: game capture hooks the game window, or the desktop-capture fallback imports the PipeWire buffers as dmabuf on NVIDIA as well, so flat streaming to the Frame has normal Remote Play latency.

Contrast: the same host streams a Proton title with DXVK at ~0 ms capture (Capture method set to Game Vulkan NV12 + NVENC H264) when game capture does engage.

Steps for reproducing this issue:

  1. KDE Plasma Wayland session, NVIDIA GPU, Steam started with -pipewire.
  2. From a Steam Frame (theater mode), launch a flat game on the host (reproduced with Easy Red 2, native and Proton).
  3. streaming_log.txt shows Bringing streamed game to foreground - failed, Starting desktop stream, Couldn't initialize EGL: 0x3001 and dmabuf: 0. Input-to-photon latency in the headset is very high.

Related: ValveSoftware/steam-for-linux#13643, ValveSoftware/SteamVR-for-Linux#962 / #963 (same host).

TTehGingerDev 2026-09-26 github

Two follow-ups:

  • Headset power mode: the Steam Frame was set to its power-saver mode during these attempts. That may have added client-side decode/display latency, and could be related to the client decoder errors in the theater-path attempt (CV4L2Accel: Resetting because decoded frame ID has failed). It does not explain the host-side findings: Bringing streamed game to foreground - failed, Couldn't initialize EGL: 0x3001, dmabuf: 0 and the 11-17 ms capture stage are all logged on the host. I'll retest with the headset in its normal power mode.
  • AMD retest: an AMD Radeon RX 9070 XT is being installed in this PC in the next few days. I'll repeat the same test on it and post the results here. That should show whether the EGL/dmabuf failure is NVIDIA-specific and whether the game-capture/foreground failure is Wayland-wide.
Kkisak-valve maintainer 2026-09-26 github

Hello @TehGingerDev, there's no value in fragmenting the discussion of an issue across multiple issue reports.

Closing as a duplicate of #12057.

Nothing extracted yet.