gecko/gfx/cairo/fix-unnecessary-fallback.patch

23 lines
880 B
Diff

diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index 353cbcd..1a053d0 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -1804,7 +1804,6 @@ _recategorize_composite_operation (cairo_xlib_surface_t *dst,
{
/* Can we use the core protocol? */
if (! have_mask &&
- src->owns_pixmap &&
src->depth == dst->depth &&
_cairo_matrix_is_integer_translation (&src_attr->matrix, NULL, NULL) &&
! _operator_needs_alpha_composite (op,
@@ -1818,7 +1817,8 @@ _recategorize_composite_operation (cairo_xlib_surface_t *dst,
return DO_XTILE;
}
- if (dst->buggy_repeat && src_attr->extend == CAIRO_EXTEND_REPEAT)
+ if (dst->buggy_repeat && src_attr->extend == CAIRO_EXTEND_REPEAT &&
+ (src->width != 1 || src->height != 1))
return DO_UNSUPPORTED;
if (! CAIRO_SURFACE_RENDER_HAS_COMPOSITE (src))