diff options
authorMart Raudsepp <>2010-06-14 02:34:20 +0300
committerMart Raudsepp <>2010-06-17 13:47:49 +0300
commit42481a36f92cf79c76fea229b5143c4fbdea444a (patch)
parentb46d4ff787bce43409d59837d736af0be2b0dda5 (diff)
lx_exa: fallback in case of server-side gradients and solid fill
RENDER extension version 0.10 added support for doing server-side gradients and solid fills, which we were not handling at all. cairo-1.9 started making use of server-side gradients, and we are crashing on those, as the source pixmap (pxSrc in lx_prepare_composite) doesn't have a drawable in this case, and we were not expecting such a possibility. So, as the first measure, fallback (three years late) all server-side gradients and solid fills instead of crashing, until we have no code that tries to accelerate cases of these or aren't sure if we even can accelerate any cases. pSourcePict member was added to xserver in 2005, so no compatibility wrapping needed. Signed-off-by: Mart Raudsepp <> Acked-by: Otavio Salvador <>
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lx_exa.c b/src/lx_exa.c
index 4af71f2..14980ae 100644
--- a/src/lx_exa.c
+++ b/src/lx_exa.c
@@ -571,6 +571,10 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst)
if (pMsk && pMsk->transform)
return FALSE;
+ /* XXX - don't know if we can do any hwaccel on solid fills or gradient types */
+ if (pSrc->pSourcePict || (pMsk && pMsk->pSourcePict))
+ return FALSE;
/* Keep an eye out for source rotation transforms - those we can
* do something about */