Hi, I'm working on icon rendering perf (well, since yesterday as I had no free time the latest weeks) and have some interesting results inspired by benzea's suggestion of using server side surfaces for cairo. (see http://dev.laptop.org/attachment/ticket/8000/serverside-pixmap.patch http://dev.laptop.org/attachment/ticket/8000/serverside-pixmap.2.patch)
The following results are timings for a simple python script drawing lots of GtkImage widget's on a full-screen window on the xo. (like in http://dev.laptop.org/~rlucchese/test_rendering/test_gtkimage.png) * build 703, xorg driver = amd, redraws = 200 - pixbuf: 98.63s 96.96s 96.58s 97.14s 99.21s - cairo image surface: 49.68s 48.87s 48.79s 49.83s 49.41s - cairo xlib surface: 18.46s 18.05s 17.84s 17.84s 18.15s * build 703, xorg driver = fbdev, redraws = 200 - pixbuf: 55.81s 55.40s 55.22s 55.50s 55.63s * build 2489, xorg driver = amd, redraws = 200 - pixbuf: 84.21s 84.81s 81.94s 81.79s 85.29s - cairo image surface: 62.40s 61.56s 61.15s 61.71s 61.55s - cairo xlib surface: 20.02s 20.30s 19.92s 20.79s 20.05s * build 2489, xorg driver = fbdev, redraws = 200 - pixbuf: 62.83s 62.81s 62.81s 62.66s 63.14s - joyride regressed sensibly at rendering with cairo since 703 - rendering pixbufs is extremely slow on the xo - server side surfaces are awesome ;) Besides this, I think the icon caching mechanism should be reworked: right now every icon has its own surfaces-cache and its svgloader. So that, if I'm not wrong, two icons showing the same svg (with same size, colors etc..) cache two distinct but identical surfaces in their _iconbuffer and cache two times the raw svg file contents in their svgloader. I guess best would be switching to have only one global cache (or not ? ;); perhaps a global cache clashes with using server side surfaces ? (see benzea's patches) riccardo _______________________________________________ Sugar mailing list [email protected] http://lists.laptop.org/listinfo/sugar

