Am Freitag, den 16.06.2017, 18:14 +0100 schrieb Daniel Stone: > Signed-off-by: Daniel Stone <dani...@collabora.com> > --- > src/egl/drivers/dri2/platform_wayland.c | 32 ++++++++++++++------------------ > 1 file changed, 14 insertions(+), 18 deletions(-) > > diff --git a/src/egl/drivers/dri2/platform_wayland.c > b/src/egl/drivers/dri2/platform_wayland.c > index 7a85cb1073..b7197d0a75 100644 > --- a/src/egl/drivers/dri2/platform_wayland.c > +++ b/src/egl/drivers/dri2/platform_wayland.c > @@ -648,31 +648,28 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy, > __DRIimage *image) > { > struct wl_buffer *ret; > - int fd, stride, name; > + int width, height, fourcc; > + > + dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_WIDTH, &width); > + dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_HEIGHT, &height); > + dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FOURCC, &fourcc); > > if (dri2_dpy->capabilities & WL_DRM_CAPABILITY_PRIME) { > - dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FD, &fd); > - dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride); > + int stride, fd; > > + dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride); > + dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FD, &fd); > ret = wl_drm_create_prime_buffer(dri2_surf->wl_drm_wrapper, > - fd, > - dri2_surf->base.Width, > - dri2_surf->base.Height, > - dri2_surf->format, > - 0, stride, > - 0, 0, > - 0, 0); > + fd, width, height, fourcc, 0, stride, > + 0, 0, 0, 0); > close(fd); > } else { > - dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_NAME, &name); > - dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride); > + int stride, name; > > + dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride); > + dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_NAME, &name); > ret = wl_drm_create_buffer(dri2_surf->wl_drm_wrapper, > - name, > - dri2_surf->base.Width, > - dri2_surf->base.Height, > - stride, > - dri2_surf->format); > + name, width, height, stride, fourcc); > } > > return ret; > @@ -738,7 +735,6 @@ dri2_wl_swap_buffers_with_damage(_EGLDriver *drv, > > dri2_surf->back->age = 1; > dri2_surf->current = dri2_surf->back; > - dri2_surf->back = NULL;
This hunk is wrong, as it causes get_back_bo() to not return the current front buffer, causing rendering corruptions. Regards, Lucas _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev