Skip to content

backend-pipewire: add support for rendering to DmaBufs

Add support to the PipeWire backend to directly render into DmaBufs and pass the DmaBufs via PipeWire to other applications.

The use case is to pass rendered output buffers to a video encoder without an additional copy. The video encoder may be part of another application that records or streams the PipeWire output of Weston.

The merge request consist of three major changes:

  1. Flip the images when rendering to FBOs regarding y-coordinates, and remove the flip in ReadPixels for FBOs.
  2. Add a new API to the GL renderer to allocate and import DmaBufs as render targets.
  3. Change the PipeWire-backend to allocate MemFds or DmaBufs depending on the requested buffer type, and use them for rendering.

Merge request reports