diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c index dc15b0fcc..1e1791122 100644 --- a/GL/glx/glxdri.c +++ b/GL/glx/glxdri.c @@ -704,7 +704,7 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen, (driScreen->driScreen.createNewDrawable)(&driScreen->driScreen, modes, &private->driDrawable, - hwDrawable, 0, NULL); + hwDrawable, 0, 0, NULL); if (private->driDrawable.private == NULL) { __glXenterServer(GL_FALSE); diff --git a/GL/glx/glxdri2.c b/GL/glx/glxdri2.c index 27257d3e0..fbc018caf 100644 --- a/GL/glx/glxdri2.c +++ b/GL/glx/glxdri2.c @@ -341,6 +341,7 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen, __GLXDRIdrawable *private; GLboolean retval; drm_drawable_t hwDrawable; + unsigned int head; private = xalloc(sizeof *private); if (private == NULL) @@ -359,13 +360,14 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen, private->base.swapBuffers = __glXDRIdrawableSwapBuffers; private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer; - retval = DRI2CreateDrawable(screen->pScreen, pDraw, &hwDrawable); + retval = DRI2CreateDrawable(screen->pScreen, pDraw, + &hwDrawable, &head); private->driDrawable.private = (driScreen->driScreen.createNewDrawable)(&driScreen->driScreen, modes, &private->driDrawable, - hwDrawable, 0, NULL); + hwDrawable, head, 0, NULL); return &private->base; } diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c index 9b4c18c61..d2664b1cb 100644 --- a/hw/xfree86/dri2/dri2.c +++ b/hw/xfree86/dri2/dri2.c @@ -262,8 +262,8 @@ DRI2CloseScreen(ScreenPtr pScreen) } Bool -DRI2CreateDrawable(ScreenPtr pScreen, - DrawablePtr pDraw, drm_drawable_t *pDrmDrawable) +DRI2CreateDrawable(ScreenPtr pScreen, DrawablePtr pDraw, + drm_drawable_t *pDrmDrawable, unsigned int *head) { DRI2ScreenPtr ds = DRI2GetScreen(pScreen); WindowPtr pWin; @@ -293,6 +293,7 @@ DRI2CreateDrawable(ScreenPtr pScreen, *pDrmDrawable = pPriv->drawable; + *head = ds->buffer->head; DRI2PostDrawableConfig(pDraw); DRI2PostBufferAttach(pDraw); DRI2ScreenCommitEvents(ds); diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h index c8482477e..a31908508 100644 --- a/hw/xfree86/dri2/dri2.h +++ b/hw/xfree86/dri2/dri2.h @@ -66,7 +66,8 @@ void DRI2Unlock(ScreenPtr pScreen); Bool DRI2CreateDrawable(ScreenPtr pScreen, DrawablePtr pDraw, - drm_drawable_t *pDrmDrawable); + drm_drawable_t *pDrmDrawable, + unsigned int *head); void DRI2DestroyDrawable(ScreenPtr pScreen, DrawablePtr pDraw);