protocol: add linux_dmabuf extension (v3)

Graphics / Wayland / Weston - Pekka Paalanen [collabora.co.uk] - 14 August 2015 07:49 UTC

An experimental (hence the 'z' prefix) linux_dmabuf Wayland protocol extension for creating dmabuf-based wl_buffers in a generic manner.

This does not include proper dmabuf metadata negotiation because there is no way to communicate all dmabuf constraints from the compositor to a client before-hand. The client has to create a wl_buffer wrapping one or more dmabuf buffers and then listen at the feedback object returned to know if the operation was successful.

RFCv1 changes (after a first draft without code):- some renames of interfaces and argument, no semantic changes- added destructor protocol to dmabuf_batch- added feedback interface for buffer creation

v2 changes:- use drm_fourcc.h as authoritative source for format codes- add support for the 64-bit layout qualifier and y-inverted dmabufs- simplify the 'add' request (no need to preserve fd numerical id)- add explicit plane index in the 'add' request- integrate the 'feedback' object events to the batch interface- rename 'create_buffer' to 'create' and move it into the batch interface- add requirements needed from the graphics stack and clients- improve existing errors and add batch error codes- removed error codes from the global interface
- improve documentation for arguments, enums, etc.- rename dmabuf_batch to zlinux_buffer_params
- The y-inverted property makes more sense as a whole buffer property. Y-flipping individual planes of the same buffer object is hardly useful. The y-invert is also converted into a flag, so we may add more flags later.- add flags for interlaced buffer content

v3 changes:
- Apply Daniel Vetter's comments about wording on coherency.

23ab715 protocol: add linux_dmabuf extension (v3)
Makefile.am | 7 +-
protocol/linux-dmabuf.xml | 274 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 279 insertions(+), 2 deletions(-)

Upstream: cgit.freedesktop.org


  • Share