commit 68a5ad497b557ab9e8bff301098ea78c84d385a2 Author: Chris Wilson Date: Wed Aug 25 14:59:04 2010 +0100 uxa: Fallback if faced with large A1 glyphs. Rather than assert, we should fixup the use of large A1 glyphs. However, the simplest approach is to simply fallback to s/w. Fixes: Bug 29430 - [UXA] Crash due assert (uxa_pixmap_is_offscreen(src_pixmap)); https://bugs.freedesktop.org/show_bug.cgi?id=29430 Signed-off-by: Chris Wilson diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c index 68d1c22..8c00e90 100644 --- a/uxa/uxa-glyphs.c +++ b/uxa/uxa-glyphs.c @@ -780,9 +780,8 @@ uxa_glyphs_to_dst(CARD8 op, mask_pixmap = uxa_get_drawable_pixmap(this_atlas->pDrawable); - assert (uxa_pixmap_is_offscreen(mask_pixmap)); - - if (!uxa_screen->info->prepare_composite(op, + if (!uxa_pixmap_is_offscreen(mask_pixmap) || + !uxa_screen->info->prepare_composite(op, localSrc, this_atlas, pDst, src_pixmap, mask_pixmap, dst_pixmap)) return -1; @@ -983,9 +982,8 @@ uxa_glyphs_via_mask(CARD8 op, src_pixmap = uxa_get_drawable_pixmap(this_atlas->pDrawable); - assert (uxa_pixmap_is_offscreen(src_pixmap)); - - if (!uxa_screen->info->prepare_composite(PictOpAdd, + if (!uxa_pixmap_is_offscreen(src_pixmap) || + !uxa_screen->info->prepare_composite(PictOpAdd, this_atlas, NULL, mask, src_pixmap, NULL, pixmap)) return -1;