[PATCH xserver] Xephyr: Handle source-only pictures in ephyrPrepare/DoneComposite

Michel Dänzer michel at daenzer.net
Thu Mar 23 03:42:37 UTC 2017


From: Michel Dänzer <michel.daenzer at amd.com>

There is no pixmap associated with source-only pictures.

Fixes Xephyr -fakexa crashing on startup.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 hw/kdrive/ephyr/ephyr_draw.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/hw/kdrive/ephyr/ephyr_draw.c b/hw/kdrive/ephyr/ephyr_draw.c
index 5b8a1d504..66371334a 100644
--- a/hw/kdrive/ephyr/ephyr_draw.c
+++ b/hw/kdrive/ephyr/ephyr_draw.c
@@ -254,7 +254,8 @@ ephyrPrepareComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,
     EphyrFakexaPriv *fakexa = scrpriv->fakexa;
 
     ephyrPreparePipelinedAccess(pDst, EXA_PREPARE_DEST);
-    ephyrPreparePipelinedAccess(pSrc, EXA_PREPARE_SRC);
+    if (pSrc != NULL)
+        ephyrPreparePipelinedAccess(pSrc, EXA_PREPARE_SRC);
     if (pMask != NULL)
         ephyrPreparePipelinedAccess(pMask, EXA_PREPARE_MASK);
 
@@ -298,7 +299,8 @@ ephyrDoneComposite(PixmapPtr pDst)
 
     if (fakexa->pMask != NULL)
         ephyrFinishPipelinedAccess(fakexa->pMask, EXA_PREPARE_MASK);
-    ephyrFinishPipelinedAccess(fakexa->pSrc, EXA_PREPARE_SRC);
+    if (fakexa->pSrc != NULL)
+        ephyrFinishPipelinedAccess(fakexa->pSrc, EXA_PREPARE_SRC);
     ephyrFinishPipelinedAccess(fakexa->pDst, EXA_PREPARE_DEST);
 }
 
-- 
2.11.0



More information about the xorg-devel mailing list