On 03/01/2016 01:41 PM, Marek Olšák wrote: > From: Axel Davy <axel.d...@ens.fr> > > This will be used by the next commit. > --- > include/GL/internal/dri_interface.h | 1 + > src/egl/drivers/dri2/platform_wayland.c | 8 +++++--- > src/loader/loader_dri3_helper.c | 6 ++++-- > 3 files changed, 10 insertions(+), 5 deletions(-) > > diff --git a/include/GL/internal/dri_interface.h > b/include/GL/internal/dri_interface.h > index 6bbd3fa..9ff4e4b 100644 > --- a/include/GL/internal/dri_interface.h > +++ b/include/GL/internal/dri_interface.h > @@ -1100,6 +1100,7 @@ struct __DRIdri2ExtensionRec { > #define __DRI_IMAGE_USE_SCANOUT 0x0002 > #define __DRI_IMAGE_USE_CURSOR 0x0004 /* Depricated */ > #define __DRI_IMAGE_USE_LINEAR 0x0008 > +#define __DRI_IMAGE_USE_BACKBUFFER 0x0010 > > > /** > diff --git a/src/egl/drivers/dri2/platform_wayland.c > b/src/egl/drivers/dri2/platform_wayland.c > index 341acb7..ff0d5c8 100644 > --- a/src/egl/drivers/dri2/platform_wayland.c > +++ b/src/egl/drivers/dri2/platform_wayland.c > @@ -305,7 +305,7 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) > { > struct dri2_egl_display *dri2_dpy = > dri2_egl_display(dri2_surf->base.Resource.Display); > - int i; > + int i, use_flags; > unsigned int dri_image_format; > > /* currently supports three WL DRM formats, > @@ -352,6 +352,8 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) > if (dri2_surf->back == NULL) > return -1; > > + use_flags = __DRI_IMAGE_USE_SHARE | __DRI_IMAGE_USE_BACKBUFFER; > +
I think this needs some versioning, but I'm not that familiar with these flags. What happens when you use this with a *_dri.so that doesn't know what __DRI_IMAGE_USE_BACKBUFFER is? > if (dri2_dpy->is_different_gpu && > dri2_surf->back->linear_copy == NULL) { > dri2_surf->back->linear_copy = > @@ -359,7 +361,7 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) > dri2_surf->base.Width, > dri2_surf->base.Height, > dri_image_format, > - __DRI_IMAGE_USE_SHARE | > + use_flags | > __DRI_IMAGE_USE_LINEAR, > NULL); > if (dri2_surf->back->linear_copy == NULL) > @@ -373,7 +375,7 @@ get_back_bo(struct dri2_egl_surface *dri2_surf) > dri2_surf->base.Height, > dri_image_format, > dri2_dpy->is_different_gpu ? > - 0 : __DRI_IMAGE_USE_SHARE, > + 0 : use_flags, > NULL); > dri2_surf->back->age = 0; > } > diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c > index 62bfe84..896f225 100644 > --- a/src/loader/loader_dri3_helper.c > +++ b/src/loader/loader_dri3_helper.c > @@ -858,7 +858,8 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable > *draw, unsigned int format, > width, height, > format, > __DRI_IMAGE_USE_SHARE | > - > __DRI_IMAGE_USE_SCANOUT, > + > __DRI_IMAGE_USE_SCANOUT | > + > __DRI_IMAGE_USE_BACKBUFFER, > buffer); > pixmap_buffer = buffer->image; > > @@ -878,7 +879,8 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable > *draw, unsigned int format, > (draw->ext->image->createImage)(draw->dri_screen, > width, height, format, > __DRI_IMAGE_USE_SHARE | > - __DRI_IMAGE_USE_LINEAR, > + __DRI_IMAGE_USE_LINEAR | > + __DRI_IMAGE_USE_BACKBUFFER, > buffer); > pixmap_buffer = buffer->linear_buffer; > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev