From bc21fcdffa623bb8e7150e1da69aeaed6cd7c5d2 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 1 Oct 2024 17:23:44 +0200 Subject: [PATCH] use dixDestroyPixmap() instead of direct driver call Direct calls to ScreenRec->DestroyPixmap() blocks cleaning up the wrapping jungle, so use the proper dix function instead. See: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1754 Signed-off-by: Enrico Weigelt, metux IT consult Part-of: --- src/r128_exa.c | 4 ++-- src/r128_exa_render.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/r128_exa.c b/src/r128_exa.c index cf9b74f..e0d474d 100644 --- a/src/r128_exa.c +++ b/src/r128_exa.c @@ -324,11 +324,11 @@ R128Done(PixmapPtr pPixmap) info->state_2d.in_use = FALSE; #if defined(R128DRI) && defined(RENDER) if (info->state_2d.src_pix) { - pScreen->DestroyPixmap(info->state_2d.src_pix); + dixDestroyPixmap(info->state_2d.src_pix, 0); info->state_2d.src_pix = NULL; } if (info->state_2d.msk_pix) { - pScreen->DestroyPixmap(info->state_2d.msk_pix); + dixDestroyPixmap(info->state_2d.msk_pix, 0); info->state_2d.msk_pix = NULL; } #endif diff --git a/src/r128_exa_render.c b/src/r128_exa_render.c index 0d81a09..3e3ba2a 100644 --- a/src/r128_exa_render.c +++ b/src/r128_exa_render.c @@ -108,7 +108,7 @@ R128SolidPixmap(ScreenPtr pScreen, uint32_t solid) exaMoveInPixmap(pPix); if (!exaDrawableIsOffscreen(&pPix->drawable)) { - pScreen->DestroyPixmap(pPix); + dixDestroyPixmap(pPix, 0); return NULL; } info->ExaDriver->WaitMarker(pScreen, 0); @@ -459,7 +459,7 @@ R128CCEPrepareComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, pMask = R128SolidPixmap(pScreen, cpu_to_le32(pMaskPicture->pSourcePict->solidFill.color)); if (!pMask) { if (!pSrcPicture->pDrawable) - pScreen->DestroyPixmap(pSrc); + dixDestroyPixmap(pSrc, 0); info->state_2d.has_mask = FALSE; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Failed to create "