weston/protocol
Pekka Paalanen 23ab7159d2 protocol: add linux_dmabuf extension (v3)
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.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-08-14 15:49:53 +03:00
..
desktop-shell.xml Documentation for the prepare_lock_surface event description, is incorrect 2015-07-14 01:23:28 -07:00
fullscreen-shell.xml Spellcheck fixes 2015-03-19 17:02:08 +02:00
input-method.xml protocol: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
ivi-application.xml protocol: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
ivi-hmi-controller.xml protocol: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
linux-dmabuf.xml protocol: add linux_dmabuf extension (v3) 2015-08-14 15:49:53 +03:00
presentation_timing.xml protocol: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
scaler.xml protocol: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
screenshooter.xml screenshooter: Grab pixel data directly before buffer swap 2012-04-20 16:13:27 -04:00
text-cursor-position.xml Convert text cursor position protocol to use fixed types. 2012-06-04 11:07:50 -04:00
text.xml protocol/text: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 15:27:27 -07:00
weston-test.xml protocol: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
workspaces.xml shell: Introduce workspace manager interface 2012-08-31 19:51:49 -04:00
xdg-shell.xml xdg-shell: Further clarify xdg_surface.resize semantics 2015-06-26 17:23:15 +08:00