[cairo] Improving Cairo performance on the N800

Daniel Amelang daniel.amelang at gmail.com
Mon Jan 15 21:48:35 PST 2007


(Double posting here, apologies for any overlap)

Now that Cairo on the 770 is performing pretty well, I hope the way is
cleared for Maemo to switch over to Cairo (and a more recent GTK).
Several of us have put a lot of effort into speeding it up, so it
would be nice to see the fruits of our labors on the Nokia devices. If
there are any more outstanding performance issues, let us know on the
Cairo list. FYI, Carl has projected that Cairo 1.4 (the first stable
release with the new optimizations) will be out in the next month or
so.

Now, the recently announced Nokia N800 is different from the 770 in
various ways that are interesting for Cairo performance. I've got my
eye on the ARMv6 SIMD instructions and the PowerVR MBX accelerator.

In other news, I'm looking for a class project for an embedded
software course I'm taking, so I'm thinking I can kill two birds with
one stone if I can turn some Cairo on OMAP 2420 optimizations into
something my professor will give me a grade for. So, I'm looking for
some feedback on the following ideas:

- Write some ARMv6 SIMD assembly for Cairo's image backend (pixman).
If this turns out to be feasible and advantageous, the resulting code
could also be incorporated into the fb part of the X server.

- Write a new Cairo backend that targets OpenVG, since the PowerVR MBX
has fully-accelerated OpenVG rendering. I haven't found anything about
OpenVG + Maemo 3.0, so maybe the software infrastructure isn't there
yet to do this.

- Something involving the OpenGL capabilities of the MBX. It doesn't
support shaders, so it would be pretty limited. It does support
multitexturing, so maybe a poor man's glitz is feasible.

Any ideas?

Dan Amelang


More information about the cairo mailing list