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