Screen sharing fails on Niri/NVIDIA when using PipeWire DMA-BUF

(#4089) Bug Open: Needs triage desktop dms self-hosting video

Reproduction steps

  1. Run Fedora 44 with Niri on Wayland and an NVIDIA GPU (4070 Ti in my case)
  2. Launch the Fluxer desktop Flatpak
  3. Join a voice channel
  4. Click the screen-sharing button, select a screen in the picker and start the stream
Select a monitor in the system's screen-sharing picker (2560×1440 in my case). Confirm the selection and wait.

Expected behaviour

Screenshare should start

Actual behaviour

After "starting" the stream the PipeWire capture session closes and Fluxer continues to wait for about 30 seconds before reporting that screen capture failed in stdout The logs show that PipeWire negotiates a BGRx 2560x1440 format with DMA-BUF modifier 72057594037927935, followed almost immediately by the capture session closing. Niri 26.04 additionally logged wrong modifier choice type. A confirmed workaround intniri's config with dev build 45739bc0 (this optionn didn't exist in the earlier version):
debug {
    disable-pipewire-dmabuf
}

Build information

Stable Desktop 2026.1015.145325, Web 2026.1016.10911, Linux 7.2.10-200.fc44.x86_64 (x64), Electron 44.4.1, Chrome 152.0.7977.78, Node 24.21.0, Locale en-US

Platform

Linux, Self-hosting

Evidence

PipeWire stream state: paused
PipeWire stream format changed:
    Format: 8 (Spa:Enum:VideoFormat:BGRx)
    Modifier: 72057594037927935
    Size: 2560 x 1440
    Framerate: 0/1
Received closed signal from session.
PipeWire stream state: unconnected
28 seconds later:
[ScreenShareStartFlow] [Warn] Wayland screen share portal capture failed to start
Possibly related Niri issue: https://github.com/niri-wm/niri/issues/3700 Successful log stdout: fluxer-dmabuf-test.log Failing log: fluxer-dmabuf-enabled-test.log

Comments

Sign in with Fluxer to comment and vote.

No comments yet.