Applications using trapezoids a lot show a significant performance degradation on my system. E.g. QGears archives 80fps on EXA (with intel-2.2.1 / xorg-1.3), however with UXA I only get ~7-10fps. FireFox-3.1-beta3 renders the SVG (zoomed to fit in the window) in 50ms on XAA, however it takes 500ms on UXA: http://upload.wikimedia.org/wikipedia/commons/6/63/Periodic_table_%28german%29_4.svg Oprofile shows that most time is spent inside pixman_rasterize_edge, however that code hasn't changed. I suspect some kind of suboptimal cache-setting to be the root of the slowdown. My system is: - Fedora Rawhide - intel-2.7 - kernel-2.6.29.1 - xorg-1.6.1 - intel-945gm
Hi Clemens, I made a performance improvement for trapezoids that made it into 2.7.99.901, (see below). Could you test this and let me know if the performance improvement is sufficient for you? Thanks, -Carl commit accdbd23676d812d2345f86d8e3ee62f108841ff Author: Carl Worth <cworth@cworth.org> Date: Fri May 29 15:34:20 2009 -0700 UXA: Rasterize trapezoids to system memory, not a pixmap Since we're only doing software rasterization right now, anyway, it makes more sense to just rasterize to system memory and then upload to a pixmap once complete. This avoids expensive read-modify-write cycles. This results in a 2.4x speedup for a real-world test case that's heavy on trapezoids, which is swfdec running on the following file: http://michalevy.com/wp-content/uploads/Giant%20Steps%202007.swf Many thanks to Chris Wilson for his cairo-traces repository and cairo-perf-trace tool which makes it so easy to measure things like this.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.