diff --git a/exa/exa_render.c b/exa/exa_render.c index 172e2b5..0463b3f 100644 --- a/exa/exa_render.c +++ b/exa/exa_render.c @@ -878,8 +878,9 @@ exaComposite(CARD8 op, Bool saveMaskRepeat = pMask ? pMask->repeat : 0; RegionRec region; - if (pExaScr->swappedOut) - goto fallback; + if (pExaScr->swappedOut || pSrc->pDrawable == NULL || + (pMask != NULL && pMask->pDrawable == NULL)) + goto fallback; /* Remove repeat in source if useless */ if (pSrc->pDrawable && pSrc->repeat && !pSrc->transform && xSrc >= 0 &&