<div><div dir="auto">Hi,</div><div dir="auto">Apologies if the mobile client mangles formatting. I've heard this new version is better, so let's see if it's really true.</div><br><div class="gmail_quote"><div dir="auto">On Thu, 13 Jul 2017 at 5:20 pm, Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On July 13, 2017 4:13:53 AM Daniel Stone <<a href="mailto:daniels@collabora.com" target="_blank">daniels@collabora.com</a>> wrote:<br>
> @@ -650,21 +650,23 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy,<br>
>     dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FOURCC, &fourcc);<br>
><br>
>     if (dri2_dpy->capabilities & WL_DRM_CAPABILITY_PRIME) {<br>
> +      struct wl_drm *wl_drm =<br>
> +         dri2_surf ? dri2_surf->wl_drm_wrapper : dri2_dpy->wl_drm;<br>
<br>
If the previous patch had dropped the dri2_surf parameter in favor of<br>
wl_drm, this wouldn't be needed.  Let's do that.</blockquote><div dir="auto"><br></div><div dir="auto">Except that the final patch uses zwp_linux_dmabuf_v1 instead of wl_drm. As we don't need a proxy wrapper for dmabuf (since the intermediate 'params' builder object can have a proxy set on it without being prone to races), we really do need the surface: for wl_drm this selects between proxy objects, and for dmabuf it selects between event queues. Maybe a lookup helper function is in order? Dunno.</div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> @@ -820,70 +822,19 @@ dri2_wl_create_wayland_buffer_from_image(_EGLDriver *drv,<br>
>     struct dri2_egl_image *dri2_img = dri2_egl_image(img);<br>
>     __DRIimage *image = dri2_img->dri_image;<br>
>     struct wl_buffer *buffer;<br>
> -   int width, height, format, pitch;<br>
> -   enum wl_drm_format wl_format;<br>
><br>
> -   dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FORMAT, &format);<br>
> -<br>
> -   switch (format) {<br>
> -   case __DRI_IMAGE_FORMAT_ARGB8888:<br>
> -      if (!(dri2_dpy->formats & HAS_ARGB8888))<br>
> -         goto bad_format;<br>
<br>
These checks suddenly go away.  Is that intended?  Given that this entry<br>
point exists to let the user move a client wl_buffer to a different server,<br>
I think we want some checks here.</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote><div dir="auto"><br></div><div dir="auto">Good catch! Will do in v3, thanks.</div><div dir="auto"><br></div><div dir="auto">Cheers,</div><div dir="auto">Daniel</div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote></div></div>