Commit graph

6 commits

Author SHA1 Message Date
Jonas Ådahl
f2c4452e8d stream: Make capability device IDs an JSON object
Also change the encoding of the byte array to use hexadecimal encoding,
i.e. the byte array [100, 200] in becomes "64c8".
2026-01-22 16:08:19 +00:00
Jonas Ådahl
8600721de0 stream: Change PW_CAPABILITY_DEVICE_ID_NEGOTIATION to a version number
This allows easier evolvement of the negotiation protocol.
2026-01-22 16:08:19 +00:00
Jonas Ådahl
58b958860e stream: Add DRM device negotiation
A DMA buffer from a DRM device are typically accessed using API related
to a DRM device, e.g. Vulkan or EGL. To create such a context for using
with a PipeWire stream that passed DRM device DMA buffers applications
have so far usually guessed or made use of the same context as the
stream content will be presented. This has mostly been the Wayland
EGL/Vulkan context, and while this has most of the time worked, it's
somewhat by accident, and for reliable operation, PipeWire must be aware
of what DRM device a DMA buffer should be accessed using.

To address this, introduce device ID negotation, allowing sources and
sinks to negotiate what DRM device is supported, and what formats and
modifiers are supported by them.

This will allow applications to stop relying on luck or the windowing
system to figure out how to access the DMA buffers. It also paves the
way for being able to use multiple GPUs for different video streams,
depending on what the sources and sinks support.
2026-01-14 08:15:43 +00:00
Wim Taymans
5170724be4 docs: document negotiation of explicit sync 2024-08-28 11:43:38 +02:00
Wim Taymans
8edb6fc8b2 doc: add some small docs updates
Note that the sync_timeline metadata might add 2 fds, which are then not
part of the dma-buf planes.
2024-08-21 11:01:54 +02:00
Pauli Virtanen
77fad4ee13 doc: reorganize files
Separate various autogen files from the documentation .dox files.
Rename .dox files to match the intended tree structure.
2023-11-19 16:39:15 +00:00
Renamed from doc/dma-buf.dox (Browse further)