Update: Ok, as usual a paper brown bug in the first release. gtk2-10cairopatch was actually using the pangoxft GTK+ instead of stock. Now I’m using the stock version, and sadly the double to fixed patch looks slightly less impressive… anyway, we still need more like that! π
As part of the ongoing work at Nokia to make GTK+ perform decently on ARM I’ve done a series of performance tests using several different versions of GTK+.
I’ve used the excelent GTK+ Theme Torturer and a home grown PyCairo plotter (which is more or less my second ever python program: comments, fixes and rewrites warmly welcome) based on the ones made by Federico.
First, the graphics:
The other widgets are GtkCheckButton, GtkEntry, GtkFrame, GtkHScale, GtkNotebook,GtkProgressBar,
GtkScrolledWindow,
GtkVScale.
Now the boring details:
- gtk2-6 is the heavily patched GTK+ 2.6 currently used in the Maemo platform. It’s here.
- gtk2-10xft is stock GTK+ 2.10.6 with this patch applied. It basically replaces pangocairo with pangoxft for text rendering. Everywhere else, it still uses Cairo (1.2.4).
- gtk2-10cairo is GTK+ 2.10.6 stock using Cairo 1.2.4.
- gtk2-10cairopatch is the same as gtk2-10cairo but cairo has this patch applied. It applies heavy wizardry (and I mean heavy) to optimize the hell out the double to fixed conversion.
All the tests were made on ARM, using the Raleigh theme.
The big empty space is the Expose-Resize test from gtk-theme-torturer. I’ve omitted it because we were getting random (as in, each time you run the tests you get completely different numbers while all the other tests appear exactly the same as before). We are trying to track this down but if anyone has any wild guess about it comments are welcome. Of course, this could also mean all my numbers are pure crap, so thake this graphs with a grain of salt.
As you can see cairo is still some way away from the 2.6 performance levels (especially on some widgets, *ahem*GtkRadioButton*ahem*), but with patches like this one it shouldn’t be too difficult to reach reasonable performance numbers. Keep up the good work!
P.S: I’ll try to make periodical updates to track the ongoing performance effort in Cairo/GTK+.
P.P.S: Thanks to fer for the top-notch hosting! π