[sugar] rendering test

Riccardo Lucchese riccardo.lucchese
Sun Sep 28 06:43:36 EDT 2008


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




More information about the Sugar-devel mailing list