[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