On Nov 27, 2013 10:53 AM, "Benjamin Gaignard" <benjamin.gaignard@linaro.org> wrote:
>
> Hi all,
>
> I'm working for Linaro on enabling a zero copy path in GStreamer by
> using dmabuf.
> To make this possible I have patched gst wayland sink to use wayland
> drm protocol: https://bugzilla.gnome.org/show_bug.cgi?id=711155
>
> Today wayland drm protocol is limited to Mesa so I have decided to
> move it into wayland-core.
> My hardware doesn't have gpu support yet so I have patched weston
> (pixman) to allow usage of wl_drm buffers.
> With this I able to share/use a buffer allocated by DRM in gstreamer
> pipeline even if I don't have gpu and EGL.
>
> What do you think about make wayland drm protocol available like this ?

Benjamin,

The problem here is that wl_drm is really a mesa extension.  Well, more of an open-source linux graphics stack extension.  The point is that there are other graphics stacks: Rhaspberry Pi, libhybris, other proprietary stacks, etc.  and each of these graphics stacks has its own extension for passing hardware buffers around.  This means that if you want your GStreamer sink to work on these other stacks with zero-copy, you will have to talk their protocols.  Because wl_drm isn't global to all of wayland, it probably shouldn't go into the wayland core.

This does not mean, however, that wl_drm can't be exposed in a more sensible way.  As of 1.3, we are now exporting wayland.xml to /usr/share/wayland and we can put other extensions there as well.  We could have, for instance, a /usr/share/mesa.xml file that provides the mesa extensions.  Then projects wanting to talk directly to mesa can generate the header and C files from the system-installed xml file.  This would solve the problem of keeping everything in sync.

One last note (this one's been bugging me for a while).  If we are going to export wl_drm in some way, we should probably rename it to something like mesa_drm.  We really need to get out of the habit of using the wl_ namespace for everything that talks the wayland protocol.  If we don't alter the details of wl_drm in the rename, it shouldn't be too hard to move everyone over from wl_drm to mesa_drm.

Hope that's sensible/helpful.
--Jason Ekstrand