[cairo] Cairo performance comparison, 770 / N800 / PXA-320

Daniel Amelang daniel.amelang at gmail.com
Mon Jan 15 17:53:10 PST 2007


On 1/13/07, Kalle Vahlman <kalle.vahlman at gmail.com> wrote:
> Hi!
>
> We have all sorts of funny hardware at the office, so I thought I'd
> make a quick run of cairo-perf with the Cairo 1.3.10 snapshot and see
> how they relate to each other.
> ...
> N800 is naturally faster than 770, but I didn't expect the xlib
> backend to have so big differences between the two.

Yea, if it were just hardware, I would think that our image surface
would be getting about the same boost as the X side. Clearly it's not.

So, the X versions are clearly different. Hmmm....6.6.3 vs. 1.1.99.3 I
can't find much info about what that 6.6.3 version is all about. Plus,
who knows what xserver-xomap specific optimizations Nokia has been up
to. You know, the OMAP 2420 has ARM v6 SIMD and a PowerVR (!), so
maybe the xomap on the N800 takes advantage of some of that extra
power. If not, I may have found my future class project for my
embedded software class :)

>
> For the cairo audience there's the question of the tessellation
> process, can it really be so fast on the PXA-320 or is there a bug
> somewhere that twists the results? What could be so good in PXA-320
> (or not-good on the other devices) that the results are so drastic?

If I remember correctly, the tessellator performs a lot of integer
div/mod, which is dreadfully slow on OMAP ARM due to lack of hardware
support. Plus, much of the arithmetic is performed on 64-bit integers,
which is also much slower than 32-bit on OMAP IIRC.

So, if the PXA-320 ARM doesn't have either of the two limitations (I
have no idea, but it is a very different ARM implementation), you
should expect to see a healthy speedup. Although 80x is pretty
drastic.

Side note: the N800 has VFP, so we should have seen a large
performance improvement for FP-heavy cairo perf tests, like the radial
stuff. But I'm only seeing ~2x improvement. Anyone know what's going
here?

Another side note: did you run cairo-test on these platforms? I've
been uneasy about cairo on ARM since that fellow last month reported
the strange diagonal line problem that we never resolved.

Dan


More information about the cairo mailing list