[PATCH 0/7] Generic dmabuf protocol RFCv1
Louis-Francis Ratté-Boulianne
lfrb at collabora.com
Fri Dec 12 13:51:01 PST 2014
This serie of patches by Pekka and George contains an experimental
implementation of "zlinux_dmabuf" protocol.
See these links for more information about the design and failed previous
attempts:
http://lists.freedesktop.org/archives/wayland-devel/2014-June/015362.html
https://bugs.freedesktop.org/show_bug.cgi?id=83881
This protocol allows clients to wrap a dmabuf into a wl_buffer, and push that
into the compositor for display. The compositor then uses GBM to import that
wl_buffer as a bo for compositing with GL (via EGLImage) or direct scanout as a
DRM FB object.
Note that a round-trip is needed when creating the buffer because there is no
way to communicate all dmabuf constraints from the compositor to a client
before-hand. They are simply too complicated and changing to be described in
a Wayland protocol extension. In fact, there are existing APIs like EGL (the
dmabuf import extension) that are based on trial-and-error rather than knowing
the constraints before-hand.
However, the protocol design is far far away from complete. Even the kernel
developers are still discussing, how cross-device support for dmabufs should
work, and what is the proper information split between the kernel and the user
space. How do you communicate, or even describe, things like tiling formats.
But, we should start from somewhere, and this patch is pushing the user space
part forward a bit.
The extension is especially useful for video players and this pipeline has been
demonstrated to work with GStreamer:
http://cgit.collabora.com/git/user/gkiagia/gst-plugins-bad.git/commit/?h=inteldmabufupload&id=727732c6de87949278cd53436ba2c430956cd8f9
George Kiagiadakis (1):
clients: add simple-dmabuf client
Pekka Paalanen (6):
protocol: add linux_dmabuf extension RFCv1
dmabuf: implement linux_dmabuf extension
gl-renderer: add dmabuf import
compositor-x11: init linux_dmabuf support
compositor-drm: init linux_dmabuf support
compositor-drm: dmabuf GBM import
.gitignore | 1 +
Makefile.am | 24 +-
clients/simple-dmabuf.c | 578 ++++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 9 +
protocol/linux-dmabuf.xml | 224 ++++++++++++++++++
src/compositor-drm.c | 31 ++-
src/compositor-x11.c | 5 +
src/gl-renderer.c | 103 +++++++++
src/linux-dmabuf.c | 322 ++++++++++++++++++++++++++
src/linux-dmabuf.h | 45 ++++
10 files changed, 1336 insertions(+), 6 deletions(-)
create mode 100644 clients/simple-dmabuf.c
create mode 100644 protocol/linux-dmabuf.xml
create mode 100644 src/linux-dmabuf.c
create mode 100644 src/linux-dmabuf.h
--
2.1.0
More information about the wayland-devel
mailing list