diff --git a/xgl/xglpict.c b/xgl/xglpict.c index 0eeef641c..c120bb63b 100644 --- a/xgl/xglpict.c +++ b/xgl/xglpict.c @@ -234,8 +234,11 @@ xglChangePictureFilter (PicturePtr pPicture, static void xglDestroyDevicePicture (PicturePtr pPicture) { - if (pPicture->pSourcePict->source.devPrivate.ptr) + if (pPicture->pSourcePict->source.devPrivate.ptr) { + xglLeaveServer(pPicture->pDrawable->pScreen); glitz_surface_destroy (pPicture->pSourcePict->source.devPrivate.ptr); + xglEnterServer(pPicture->pDrawable->pScreen); + } } PicturePtr @@ -270,6 +273,8 @@ xglUpdatePicture (PicturePtr pPicture) surface = pPixmapPriv->surface; + xglLeaveServer(pPicture->pDrawable->pScreen); + if (pPixmapPriv->pictureMask & xglPCFillMask) { glitz_surface_set_fill (surface, fillMode[pPicture->repeatType]); @@ -312,6 +317,8 @@ xglUpdatePicture (PicturePtr pPicture) glitz_surface_set_dither (surface, pPicture->dither); } + xglEnterServer(pPicture->pDrawable->pScreen); + pPixmapPriv->pictureMask &= ~XGL_PICTURE_CHANGES (~0); } @@ -405,6 +412,8 @@ xglSyncPicture (ScreenPtr pScreen, pixel = (CARD32 *) (param + nParam + nStop * 3); + xglLeaveServer(pScreen); + buffer = glitz_buffer_create_for_data (pixel); if (!buffer) { @@ -467,6 +476,8 @@ xglSyncPicture (ScreenPtr pScreen, glitz_surface_set_transform (surface, (glitz_transform_t *) pPicture->transform); + xglEnterServer(pScreen); + pPicture->pSourcePict->gradient.devPrivate.ptr = surface; pPicture->pSourcePict->gradient.Destroy = xglDestroyDevicePicture; @@ -806,7 +817,7 @@ xglCreateSolidAlphaPicture (ScreenPtr pScreen) if (!pGC) return; - pPixmap = (*pScreen->CreatePixmap) (pScreen, 1, 1, pFormat->depth); + pPixmap = (*pScreen->CreatePixmap) (pScreen, 1, 1, pFormat->depth, 0); if (!pPixmap) return; diff --git a/xgl/xglxv.c b/xgl/xglxv.c index 336cb2722..eaec59a21 100644 --- a/xgl/xglxv.c +++ b/xgl/xglxv.c @@ -410,7 +410,7 @@ xglXvPutImage (ClientPtr client, pPixmap = (*pScreen->CreatePixmap) (pScreen, srcWidth, srcHeight, - pDrawable->depth); + pDrawable->depth, 0); if (!pPixmap) { xglXvFreePort (pPort);