[cairo] Possible A8 Compositing Bug

Soeren Sandmann sandmann at daimi.au.dk
Wed Sep 29 04:59:05 PDT 2010


Jeremy Moles <jeremy at emperorlinux.com> writes:

> On Fri, 2010-09-17 at 13:38 -0400, Jeremy Moles wrote:
> > I have attached a very small C application (~15 lines of code)
> > demonstrating what I believe to be a bug in CAIRO_FORMAT_A8 when using
> > the CLEAR operator. It only appears to be clearing those areas in DEST
> > where SRC's alpha isn't full intensity (if that terminology makes any
> > sense :)).
> > 
> > The bug exists in 1.10 at least, but NOT in the versions of cairo
> > provided by Ubuntu 10.04 and Fedora 13 by default.
> > 
> > 
> > --
> > cairo mailing list
> > cairo at cairographics.org
> > http://lists.cairographics.org/mailman/listinfo/cairo
> 
> Has anyone had a chance to look at this? Or alternatively, if anyone can
> tell me whereabouts in the code I should start looking, I'd be glad to
> have a shot at fixing it myself.

I bisected it down to the commit below, but I'm afraid that's not too
helpful:

dhcp-100-3-184:~/vertigo/cairo% git show b9407af6a4bc792c1bcb52c90aa8a618627bb618  | diffstat
 src/cairo-image-surface.c                 | 3987 +++++++++++++++++++++++++-----
 src/cairo-mutex-list-private.h            |    2 
 src/cairo-xcb-surface.c                   |   10 
 src/cairoint.h                            |   21 
 test/clip-fill-unbounded.argb32.ref.png   |binary
 test/clip-fill-unbounded.rgb24.ref.png    |binary
 test/clip-stroke-unbounded.argb32.ref.png |binary
 test/clip-stroke-unbounded.rgb24.ref.png  |binary
 test/clip-stroke.ref.png                  |binary
 test/clipped-group.ref.png                |binary
 test/leaky-dashed-rectangle.ref.png       |binary
 test/scale-offset-image.xfail.png         |binary
 test/scale-offset-similar.xfail.png       |binary
 test/self-intersecting.ref.png            |binary
 14 files changed, 3342 insertions(+), 678 deletions(-)

b9407af6a4bc792c1bcb52c90aa8a618627bb618 is the first bad commit
commit b9407af6a4bc792c1bcb52c90aa8a618627bb618
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jan 22 17:57:41 2010 +0000

    image: Implement high level interface.
    
    Write a dedicated compositor for pixman so that we avoid the
    middle-layer syndrome of surface-fallback. The major upshot of
    this rewrite is that the image surface is now several times
    quicker for glyph compositing, which dramatically improves
    performance for text rendering by firefox and friends. It also
    uses a couple of the new scan convertors, such as the rectangular
    scan converter for rectilinear paths.
    


Soren


More information about the cairo mailing list