[cairo] [PATCH] SSE2 patch for pixman

Soeren Sandmann sandmann at daimi.au.dk
Tue Apr 8 08:33:43 PDT 2008


"André Tupinambá" <andrelrt at gmail.com> writes:

> Hum... I will recheck the fbCompositeSrc_8888RevNPx8888sse2 and
> fbCompositeSrc_8888RevNPx0565sse2 functions. How do you make this
> check? Do Install the pixman in the /usr/lib and restart? Could I ran
> this test with Xephyr too?

Yes, Xephyr would likely work for this too. Just run any random GNOME
program in it, and you will be able to tell if the icons are messed
up. Instailling pixman in /usr/lib and restarting should be
sufficient.

You will need a Xephyr that actually uses pixman. The first version to
do so was 1.4, but no major distributions have shipped it yet, so you
may have to compile it yourself.

> >  but in fact, pa == 0 only means that all the alpha values were
> >  *different from 0xFF*, not that they were 0. This may explain some of
> >  the rendering problems. (Unfortunately, it may also explain some of
> >  the speedups).
> 
> Oh... hum... oh my god, a bug!
> 
> In fact pa never will be 0 because I'm using the 8-bits comparison
> (instead of 32-bits one). If Alpha was different from 0xFF the other
> bytes will be always equal (0x## 00 00 00 cmp 0xff 00 00 00 == 0x## ff
> ff ff) and pa will be 0x7777, in worst case. Really this can explain
> the rendering problems, but the speedups are ok :)

You are right about it never being 0, but doesn't this also mean that
it shouldn't cause any rendering problems? The "if (pa)" will always
be true, so the computation is carried out.


Soren


More information about the cairo mailing list