[cairo] Pixman ARM Performance
Soeren Sandmann
sandmann at daimi.au.dk
Tue Jul 28 00:34:45 PDT 2009
Jacob Bramley <Jacob.Bramley at arm.com> writes:
> Yep, I mean 0.15.2, as that appeared to be a release shortly before the
> refactoring work started and I initially suspected that the refactoring
> had caused the slow-down. I have also tried the latest tip, which is
> labelled "0.15.19", and I get similar results here, so the refactoring
> does not appear to be the problem.
>
> I should also point out that I'm not entirely sure if I'm building it
> properly. Adding "--disable-debug" to the configure command sped things
> up considerably for some reason, though I couldn't find mention of that
> anywhere in "configure --help".
>
> There could well be other switches that
> I should apply. I'm currently using something like this:
>
> CFLAGS="-mcpu=cortex-a8 -mfloat-abi=softfp" ../trunk/configure
> --(dis|en)able-arm-neon --(dis|en)able-arm-simd --disable-debug
> --prefix=`pwd`/inst.<build_tag>
>
> Interestingly, building this natively on another board causes configure
> to complain that "--disable-debug" isn't recognized, though it certainly
> makes a difference when I cross-compile.
Well, there is no such option; if you add "--disable-debug" to
configure, it will just be ignored. What I think may be going on is
that "make perf" in cairo's perf directory runs at too few iterations
by default, so there can be substantial inaccuracy in the results it
provides.
Generally, what I have done is run "make perf" and then for those
cases where it produces a large difference, I have rerun the test with
a higher number of iterations by using something like
cairo-perf -i 500 name-of-test
cairo-trace may produce more useful test cases.
> > If you mean 0.15.12, then I would not be too surprised if there are a
> > couple of performance regressions. Some have been fixed in 0.15.18;
> > there are a couple of remaining ones on the map for 0.16.0.
> >
> > As Chris said, if you can post the output of cairo-perf-diff for the
> > versions in question, that would be helpful. If there are large
> > performance regressions compared to 0.12.0, we'll want to look at that
> > before 0.16.0.
>
> I cannot trivially run cairo-perf-diff-files. It's possible that I'm
> just not using the tool properly. If I run it on my build machine, it
> complains because it can't find some Scratchbox* file. If I run it
> inside Scratchbox, it can't see libcairo. Running it on-target works
> better, but then dumps junk on my terminal until I kill it.
cairo-perf doesn't build for me out of the box:
cairo-perf-report.c:54: error: static declaration of ‘getline’ follows non-static declaration
/usr/include/stdio.h:653: note: previous declaration of ‘getline’ was here
cairo-perf-report.c:57: error: static declaration of ‘strndup’ follows non-static declaration
make: *** [cairo-perf-report.lo] Error 1
After commenting those out, cairo-perf-diff-files crashes when given
your files. It probably shouldn't, although with lines like these:
[ 4] image-rgba paint_image_rgb_over-256 890 0.890 18446744073709552.000 62.36% 100
with a clearly bogus value for the median, something is broken in the
output too.
Soren
More information about the cairo
mailing list