Comparing EXA to NoAccel
Carl Worth
cworth at cworth.org
Thu Apr 26 10:08:45 PDT 2007
On Wed, 25 Apr 2007 12:38:56 -0700, Carl Worth wrote:
> One of the obvious things to look at first is where is EXA actually
> slower than the NoAccel case.
Dave Airlie and Eric Anholt were kind enough to look over my xorg.conf
and Xorg.2.log files to see if I had something obviously broken in my
setup. They noticed that I didn't have direct rendering enabled, and
they helped me to get that working.
So I've now made a new exa-dri.perf file along with the other files I
showed before (xorg.conf and Xorg.2.log are here as well):
http://cairographics.org/~cworth/cairo-exa-vs-xaa/
Adding DRI definitely did help---most things run about 2-3x faster
than they did before, (though that's not enough to overcome all the
slowdowns compare to the NoAccel case).
Here are the EXA (without DRI) vs. NoAccel results I posted before,
followed by the new EXA with DRI vs. NoAccel results. The more complete
report is available from:
http://cairographics.org/~cworth/cairo-exa-vs-xaa/exa-dri-vs-noaccel.txt
> old: noaccel
> new: exa
> Speedups
> ========
> xlib-rgb paint_solid_rgba_over-512 386.65 -> 5.92: 72.76x speedup
███████████████████████████████████▉
> xlib-rgb paint_similar_rgba_over-512 454.93 -> 12.84: 35.90x speedup
█████████████████▌
> xlib-rgb paint_image_rgba_over-512 462.79 -> 22.28: 20.72x speedup
█████████▉
> xlib-rgb text_solid_rgba_source-256 235.04 -> 14.26: 17.29x speedup
████████▏
> xlib-rgb text_solid_rgb_source-256 235.09 -> 14.53: 17.00x speedup
████████
> xlib-rgb text_similar_rgb_source-128 58.50 -> 3.76: 16.49x speedup
███████▊
> xlib-rgb text_similar_rgba_source-128 58.47 -> 3.77: 16.44x
> speedup
old: noaccel
new: exa-dri
Speedups
========
xlib-rgb paint_solid_rgba_over-512 386.65 -> 3.31: 116.60x speedup
█████████████████████████████████████████████████████████▊
xlib-rgb paint_similar_rgba_over-512 454.93 -> 4.96: 94.32x speedup
██████████████████████████████████████████████▋
xlib-rgb paint_image_rgba_over-512 462.79 -> 8.46: 55.67x speedup
███████████████████████████▍
xlib-rgb fill_solid_rgb_source-256 104.74 -> 3.47: 30.14x speedup
██████████████▋
xlib-rgb fill_solid_rgba_source-256 104.92 -> 3.50: 30.11x speedup
██████████████▌
xlib-rgb fill_similar_rgba_source-256 105.74 -> 3.73: 28.22x speedup
█████████████▋
xlib-rgb fill_similar_rgb_source-256 105.31 -> 3.74: 28.07x speedup
█████████████▌
xlib-rgb stroke_solid_rgb_source-256 173.47 -> 6.61: 27.12x speedup
█████████████
xlib-rgb text_solid_rgba_source-256 235.04 -> 9.08: 26.22x speedup
████████████▋
xlib-rgb stroke_solid_rgba_source-256 174.05 -> 6.62: 26.17x speedup
████████████▋
xlib-rgb text_similar_rgba_source-256 235.10 -> 9.12: 26.15x speedup
████████████▋
xlib-rgb text_solid_rgb_source-256 235.09 -> 9.05: 26.08x speedup
████████████▌
...
xlib-rgb text_similar_rgba_source-128 58.47 -> 2.93: 19.81x speedup
█████████▍
xlib-rgb text_similar_rgb_source-128 58.50 -> 2.93: 19.77x speedup
█████████▍
So that much looks good. Things that were fast before are now even
faster with DRI enabled, (and these fill and stroke results didn't even
make it into the top of the report before, but do now).
> Slowdowns
> =========
> xlib-rgba rectangles-512 5.70 -> 79.14: 14.01x slowdown
██████▌
> xlib-rgba paint_similar_rgba_source-256 0.15 -> 1.61: 11.09x slowdown
█████
> xlib-rgba paint_solid_rgba_source-256 0.09 -> 0.77: 8.57x slowdown
███▊
> xlib-rgba paint_solid_rgb_source-256 0.09 -> 0.77: 8.54x slowdown
███▊
> xlib-rgba paint_solid_rgb_over-256 0.09 -> 0.77: 8.53x slowdown
███▊
> xlib-rgba fill_solid_rgb_over-256 2.06 -> 8.16: 3.99x slowdown
█▌
Slowdowns
=========
xlib-rgba rectangles-512 5.70 -> 45.38: 8.03x slowdown
███▌
xlib-rgba paint_similar_rgba_source-256 0.15 -> 0.73: 5.03x slowdown
██
xlib-rgba paint_solid_rgba_source-256 0.09 -> 0.37: 4.11x slowdown
█▌
xlib-rgba paint_solid_rgb_over-256 0.09 -> 0.37: 4.09x slowdown
█▌
xlib-rgba paint_solid_rgb_source-256 0.09 -> 0.36: 4.08x slowdown
█▌
...
xlib-rgba fill_solid_rgb_over-256 2.06 -> 2.43: 1.19x slowdown
▏
And those are all a nice improvement as well, (but still slower than
the NoAccel case).
> There are many other similar slowdowns, but here's one I'll point out
> from later on in the list:
>
> xlib-rgb fill_solid_rgb_over-256 3.71 -> 7.98: 2.16x slowdown
▋
xlib-rgba fill_solid_rgb_over-128 0.92 -> 0.78: 1.18x speedup
▏
Note that with DRI this one actually flipped from a 2x slowdown to a
1.2x speedup.
So, clearly DRI is helping here.
Next I'll pick a top slowdown, (the rectangles case say), and do some
protocol tracing to see what the X server is specifically being asked
to do in this case.
-Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20070426/b6e3626f/attachment.pgp>
More information about the xorg
mailing list