Skip to content

[Linux/AMD] wlr-screencopy dmabuf capture fails on v2026.906 (regression from v2026.516): "Failed to create buffer from params" + EGL_NOT_INITIALIZED (0x3001) on AMD Renoir / Hyprland #5671

Description

@JunYang-tes

Summary

After updating Sunshine from 2026.516.143833 to 2026.906.222525, Wayland
(wlr-screencopy) capture fails on an AMD Renoir APU under Hyprland. No stream
ever starts, so Moonlight clients fail to connect. Downgrading to
2026.516.143833 restores full functionality, so this is a regression in the
new Wayland/DMA-BUF capture path.

Is there an existing issue for this?

Searched. Found related-but-distinct wlr/dmabuf capture reports, all Intel or
different EGL codes: #5571 (Intel Yf-tiled stride), #5663 (Intel CCS multi-plane,
EGL_BAD_MATCH 0x3009), #5258 (sway corrupted image), #5474 (Mesa 26.1.6 init).
This report is AMD Renoir with EGL_NOT_INITIALIZED (0x3001). Also possibly
related to #4197 (Hyprland virtual display), since the capture target here is a
Hyprland headless output.

Environment

  • Sunshine: 2026.906.222525-1 (sunshine-bin, prebuilt; links system libs only)
  • Last known-good: 2026.516.143833-4
  • OS: Arch Linux, kernel 6.18.44-1-lts
  • GPU: AMD Cezanne / Renoir [1002:1638] (Radeon Vega, integrated)
  • Mesa: 26.1.7-1 (radeonsi)
  • libva: 2.24.1-1
  • Compositor: Hyprland 0.56.2 (wlroots-based; zwlr_screencopy_manager_v1 v3,
    zwp_linux_dmabuf_v1 v5)
  • Capture: Wayland wlr-screencopy (auto)
  • Encoder: hevc_vaapi (auto)

Steps to reproduce

  1. Hyprland session on AMD Renoir.
  2. Sunshine 2026.906 with a minimal config (locale, output_name, stream_audio).
    Target output is a Hyprland headless output (hyprctl output create headless ipad-as-monitor).
  3. Connect from Moonlight and start a stream (or observe the startup encoder
    probe).

Expected behavior

Stream starts and is captured, as it did on 2026.516.

Actual behavior

Every encoder probe / stream start fails. Moonlight cannot connect. Key errors,
repeated continuously (~971x "Failed to create buffer from params",
~989x "Selected monitor [] for streaming" in one log):

Info : Screencasting with Wayland's protocol
Info : [wlgrab] Selected monitor [] for streaming
Info : Creating encoder [hevc_vaapi]
Error: [wayland] Failed to create buffer from params
Info : vaapi vendor: Mesa Gallium driver 26.1.7-arch1.1 for AMD Radeon Graphics (radeonsi, renoir, ACO, DRM 3.64, 6.18.44-1-lts)
Error: Couldn't export va surface handle: [1]: invalid VASurfaceID
...
Error: Couldn't initialize EGL display: [00003001]

Notes

  • [wlgrab] Selected monitor [] for streaming logs an empty monitor name,
    even though enumeration lists the target output correctly:
    [wayland] Name: ipad-as-monitor Offset: 1440x0 Logical size: 1024x768.
    Unsure whether the empty-name selection is cosmetic or part of the failure.
  • VAAPI/Mesa initialize fine (encoder side); the failure is on the capture /
    dmabuf import / EGL side.
  • Reverting to 2026.516.143833 fully fixes it with the same system libs, so the
    regression is in Sunshine's code, not the system Mesa/EGL stack.

Additional context

Full startup capture sequence and rotating logs available on request.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    aiPR has signs of heavy ai usage (either indicated by user or assumed)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions