diff --git a/include/kopper_interface.h b/include/kopper_interface.h index 4c8dcc9b51a..2088098f6cf 100644 --- a/include/kopper_interface.h +++ b/include/kopper_interface.h @@ -50,6 +50,7 @@ typedef struct __DRIkopperDrawableInfoRec __DRIkopperDrawableInfo; #define __DRI_KOPPER_VERSION 1 struct __DRIkopperDrawableInfoRec { + bool multiplanes_available; int is_pixmap; }; diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 56680bd5d48..f60b9f9b744 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1596,6 +1596,9 @@ dri2_create_drawable(struct dri2_egl_display *dri2_dpy, dri2_surf->dri_drawable = dri2_dpy->kopper->createNewDrawable( dri2_dpy->dri_screen_render_gpu, config, loaderPrivate, &(__DRIkopperDrawableInfo){ +#ifdef HAVE_X11_PLATFORM + .multiplanes_available = dri2_dpy->multibuffers_available, +#endif .is_pixmap = dri2_surf->base.Type == EGL_PBUFFER_BIT || dri2_surf->base.Type == EGL_PIXMAP_BIT, }); diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index f399d7779dd..3263034d558 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -729,6 +729,7 @@ driswCreateDrawable(struct glx_screen *base, XID xDrawable, pdp->driDrawable = kopper->createNewDrawable(psc->driScreen, config->driConfig, pdp, &(__DRIkopperDrawableInfo){ + .multiplanes_available = psc->has_multibuffer, .is_pixmap = !(type & GLX_WINDOW_BIT), });