[PATCH] dmabuf: get supported dmabuf formats from compositor backend

Bryce Harrington bryce at osg.samsung.com
Fri Oct 30 15:06:05 PDT 2015


On Fri, Oct 30, 2015 at 09:49:20AM +0200, Giulio Camuffo wrote:
> 2015-10-30 2:27 GMT+02:00 Bryce Harrington <bryce at osg.samsung.com>:
> > On Tue, Oct 20, 2015 at 08:45:50AM -0700, Bryce Harrington wrote:
> >> On Tue, Oct 20, 2015 at 04:54:30PM +0200, Fabien Dessenne wrote:
> >> > Add the possibility for the compositor backend to provide with the list
> >> > of supported pixel formats for dmabuf-based buffers.
> >> > This information is used by linux_dmabuf to inform clients when binding.
> >> >
> >> > Signed-off-by: Fabien Dessenne <fabien.dessenne at st.com>
> >>
> >> Reviewed-by <bryce at osg.samsung.com>
> >>
> >> There's not a way to verify the list is getting sent across to the
> >> client is there?
> 
> I'm not sure i understand this question.

I just mean, how would one verify the function is working correctly and
returning the expected set of results.

But given daniels' NAK, sounds like he wants to see this done
differently anyway.

Bryce

> > Also, patch no longer applies since e3c0d8af.
> >
> > I'd like to better understand what this is going to be used for, before
> > landing it.  Another R-b on this would be nice as well; Giulio perhaps
> > you could give this patch a review?
> 
> Well, it doesn't apply because we now have a new vfunc in
> weston_backend, but rebasing it should be trivial.
> 
> >
> > Bryce
> >
> >> Bryce
> >>
> >> > ---
> >> >  src/compositor.h   |  2 ++
> >> >  src/linux-dmabuf.c | 16 +++++++++++++---
> >> >  2 files changed, 15 insertions(+), 3 deletions(-)
> >> >
> >> > diff --git a/src/compositor.h b/src/compositor.h
> >> > index 2e2a185..f58e0cc 100644
> >> > --- a/src/compositor.h
> >> > +++ b/src/compositor.h
> >> > @@ -613,6 +613,8 @@ enum weston_capability {
> >> >  struct weston_backend {
> >> >     void (*destroy)(struct weston_compositor *ec);
> >> >     void (*restore)(struct weston_compositor *ec);
> >> > +   void (*get_dmabuf_formats)(struct weston_compositor *ec,
> >> > +                              struct wl_array *formats);
> >> >  };
> >> >
> >> >  struct weston_compositor {
> >> > diff --git a/src/linux-dmabuf.c b/src/linux-dmabuf.c
> >> > index 90c9757..ee02ea4 100644
> >> > --- a/src/linux-dmabuf.c
> >> > +++ b/src/linux-dmabuf.c
> >> > @@ -433,9 +433,19 @@ bind_linux_dmabuf(struct wl_client *client,
> >> >     wl_resource_set_implementation(resource, &linux_dmabuf_implementation,
> >> >                                    compositor, NULL);
> >> >
> >> > -   /* EGL_EXT_image_dma_buf_import does not provide a way to query the
> >> > -    * supported pixel formats. */
> >> > -   /* XXX: send formats */
> >> > +   if (compositor->backend->get_dmabuf_formats) {
> 
> Can the formats change in the compositor lifetime? If not, it may be
> better to ask for them once and store the result instead of asking for
> each new client.
> 
> >> > +           struct wl_array dmabuf_formats;
> >> > +           uint32_t *p;
> >> > +
> >> > +           wl_array_init(&dmabuf_formats);
> >> > +
> >> > +           compositor->backend->get_dmabuf_formats(compositor,
> >> > +                                                   &dmabuf_formats);
> >> > +           wl_array_for_each(p, &dmabuf_formats)
> >> > +                   zlinux_dmabuf_send_format(resource, *p);
> >> > +
> >> > +           wl_array_release(&dmabuf_formats);
> >> > +   }
> >> >  }
> >> >
> >> >  /** Advertise linux_dmabuf support
> >> > --
> >> > 1.9.1
> >> >
> >> > _______________________________________________
> >> > wayland-devel mailing list
> >> > wayland-devel at lists.freedesktop.org
> >> > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> >> _______________________________________________
> >> wayland-devel mailing list
> >> wayland-devel at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list