[cairo] [PATCH, pixman] Eliminate fast path flags

Siarhei Siamashka siarhei.siamashka at gmail.com
Wed Nov 18 06:20:20 PST 2009


On Tuesday 17 November 2009, Soeren Sandmann wrote:
> Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:
> > > Reviews appreciated. I'd also appreciate if people can test that it
> > > still compiles and works on ARM as I had to make some changes blindly
> > > there.
> >
> > It compiles fine, but requires a minor fix for ARM NEON. These two lines
> > need a 'PIXMAN_a8' -> 'PIXMAN_solid' change:
> >
> > +    { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_a8,       PIXMAN_a8r8g8b8,
> > neon_composite_over_8888_n_8888, 0 },
> > +    { PIXMAN_OP_OVER, PIXMAN_a8r8g8b8, PIXMAN_a8,       PIXMAN_x8r8g8b8,
> > neon_composite_over_8888_n_8888, 0 },
> >
> > This was spotted by just patch review.
>
> Thanks - I have fixed this and pushed the patch.

Great!

> > But it's also worth mentioning that
> > using 'blitters-test', the problem gets only detected on 3280827th
> > iteration. And the test is currently set to run 2000000 iterations by
> > default. Just the probability of getting right operation and right
> > formats for source, mask and destination all at the same time is a bit
> > too low.
> >
> > Tweaking probabilities for more uniform coverage may help a bit.
> > Increasing the number of iterations that are run by default may also be
> > useful. But still, an overnight run makes sense to spot some of the more
> > rare problems.
>
> Yeah, we should probably at have at least two CRC32 values, one for
> the 2 million case, and one for a 100 million case that could run
> overnight.
>
> It might also be interesting to have many more than two values, and
> store them in a table where each row would contain both CRC and seed
> for 2 million iterations, for 4 million, for 6 million and so on.
>
> The test could then pick a range to run at random, which would
> substantially increase the coverage.

The problem is that performance of different systems may vary a lot, so 100
millions may be fine for one system, but too much for the other. I'm currently
using a variation of the attached script to test pixman fast path functions.
The longer it runs, more chances that it will spot problems (if they exist).

For modern systems it probably also makes sense to add multithreading
support to the test so that it can utilize all the available CPU cores.

-- 
Best regards,
Siarhei Siamashka
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-pixman-fast-paths.sh
Type: application/x-shellscript
Size: 402 bytes
Desc: not available
Url : http://lists.cairographics.org/archives/cairo/attachments/20091118/88519288/attachment-0001.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://lists.cairographics.org/archives/cairo/attachments/20091118/88519288/attachment-0001.pgp 


More information about the cairo mailing list