|Summary:||[UXA] Trapezoid performance regression|
|Product:||xorg||Reporter:||Clemens Eisserer <linuxhippy>|
|Component:||Driver/intel||Assignee:||Carl Worth <cworth>|
|Status:||RESOLVED FIXED||QA Contact:||Xorg Project Team <xorg-team>|
|i915 platform:||i915 features:|
Description Clemens Eisserer 2009-04-24 04:54:55 UTC
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-126.96.36.199 - xorg-1.6.1 - intel-945gm
Comment 1 Carl Worth 2009-06-22 11:17:15 UTC
Hi Clemens, I made a performance improvement for trapezoids that made it into 188.8.131.521, (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 <firstname.lastname@example.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.