Distro!

svu: same situation here. This latest ESR chapter is the last nail in the coffin for me though (“ha ha only serious”), I’m now all set to install Fedora 7 on my powerbook when it’s released. I actually considered moving to Fedora 5 one year ago, but the default install was so broken (X hangs, the updater going totally bonkers eating all my RAM, etc) that I went back crying to Ubuntu. This time I think I’ll stick to it and report all the problems I have like a good boy.

When I started using Linux 9 years ago, I think I basically thought ESR was a pretty cool guy. I wonder if the radically different opinion I have of him now means that he has changed a lot, that I’ve changed a lot, or actually both.

PS: gotta love the midget sex spam I get on the blog since I’m syndicated on the planet.

Posted in General | 6 Comments

Hello Planet!

Hi there, this should be my first post in Planet GNOME.

My name is Xan LΓ³pez and I’m a spanish/galician hacker. Last september I joined Nokia/OSSO to help overloaded tommi with all-things GTK+ inside Maemo. These days I’m mostly trying to get to know the inner workings of GTK+ and trying to send some useful contributions to the Epiphany project again. Speaking of which…

This morning I spent some more time working on the infamous (at least for Ephy users) bug 318459, which prevented GtkEntryCompletion users from editing in-place the matches in the popup. I finished some remaining bits and hacked the ephy part of the equation here. Mixing everything together should give a much more pleasant Epiphany for everyone. Here’s a small demo of the thing working.

Thanks to Fer I got an amazing plane ticket offer and I will fly with my girlfriend to Japan in September. Any Japanese GNOME hacker wants to have a nice meeting somewhere in the country? I’ll exchange unsubstantial geeky chit-chat for first-hand info on the best places to visit πŸ™‚
ζ—₯ζœ¬γΈθ‘ŒγγΎγ—γ‚‡γ†!

Posted in General | 70 Comments

Performance Measurement (IV)

In the past couple of weeks the pango/cairo performance world domination has proceeded as planned. Cutting down the glyph extents computation per expose, less floating point “burning” in cairo, optimizing the xrender usage for glyph rendering, further tesselator improvements (yet to be commited), etc. Special mention goes to the heroic Behdad, who is rocking so hard someone should send him a 770 or something. Wait, we already did. Ok, then someone should offer to have his babies. Wait! Someone already did!. Well, if he ever decides to run for Benevolent Dictator of the World, you already know the person to vote for.

The latest torturer results:

gtk2-6 is GTK+ 2.6.10, gtk2-10xft is GTK+ 2.10.6 with an ugly patch to use libXft for font rendering. cairo124 is GTK+ 2.10.6 with cairo 1.2.4 (no, really) and pango 1.14. “oldglyph” is using cairo 1.3.6 and pango HEAD, and “newglyph” is cairo 1.3.6 + behdad’s glyph optimization patch and pango HEAD. The GtkLabel column is especially relevant for us because we can finally forget about using the ugly xft+gtk2.10 patch. I have some numbers from timetext in a mail to the cairo list.

That’s all for now, further updates as we receive them.

Posted in General | 4 Comments

Performance Measurement (III)

Cairo 1.3.4 is out. It includes the new tesselator and a load of floating point improvements by Daniel Armelang as stellar additions. A couple of graphs:

As you can see, the new tesselator is already kicking some ass in the GtkRadioButton case. My torturer suddenly crashes with GTK+ 2.6, so I couldn’t repeat the tests with GtkTextView for all the environments πŸ™

I’ve also run jorn’s GtkLabel test with Cairo 1.3.2 and 1.3.4 (both using GTK+ 2.10.6, Pango 1.14.5):

  • Cairo 1.3.2 : Drawn label 2692 times. Average time spent drawing (in seconds): 0.002095
  • Cairo 1.3.4: Drawn label 2733 times. Average time spent drawing (in seconds): 0.001801

Right now I’m in the process of setting up oprofile in my hardware to get an updated status on the cairo hotspots. Hopefully that will give “slightly” more useful data πŸ™‚

P.S: Fer and me had this sudden urge to port Sysprof to ARM. I wonder if everybody who interacts with oprofile experiences the same feeling πŸ™‚

Posted in General | Comments Off on Performance Measurement (III)

Performance Measurement (II)

Finally the first snapshot in the Cairo 1.3 series was released, and so a bit of torturing was due:

The good news is that it keeps improving. The awesome news is that there’s still a lot more coming. Hopefully I’ll start to provide useful ARM profiles soon to complement the awesome work done by Jorn on that area.

Posted in General | Comments Off on Performance Measurement (II)

plot-torturer on garage

As promised, here is the code: https://garage.maemo.org/svn/plot-torturer

Btw, I tried to get the new-tesselator branch of cairo following the instructions from the mail list but got stuck in a “EOF: unexpected end of file”. Is it just me? Does anyone have a tarball of the code?

Posted in General | 1 Comment

Performance Measurement (I)

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! πŸ˜‰

Posted in General | 10 Comments