Comparing EXA to NoAccel

Carl Worth cworth at
Wed May 23 10:17:37 PDT 2007

On Thu, 26 Apr 2007 10:08:45 -0700, Carl Worth wrote:
> 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.

I've done that now, and written up a bunch of what I found. I'm
experimenting with putting new information up as blog entries rather
than email, so you can see the long rambling thing, (with a couple of
charts as well), here:

I won't repeat everything here, but I'll summarize some important

* It might very well help to have something besides a 1x1 XGetImage
  for waiting for the X server to finish rendering, (in the meantime
  I'll keep cranking up iteration counts until weird effects go away).

* XRenderFillRectangles doesn't batch like XFillRectangles does. In a
  cairo land I'm not yet sure where to put that batching.

* If a user tries to do application-level batching above cairo with
  many calls to cairo_rectangle and then a single call to cairo_fill,
  this currently triggers a bad performance bug in cairo, (but it should
  be easy to fix).

* EXA rectangles scale extremely well for large sizes, (beating
  NoAccel by ever wider margins for rectangles larger than 60x60).

* EXA rectangles are up to 3x or 4x slower than NoAccel rectangles for
  sizes less than 50x50, (at least with my r100 and the video and
  system memory I have in my machine).

* It would really help to be able to gather useful X server
  statistics, (which drawing operations are called, with what sizes, and
  what patterns), for real-world loads in order to know that we're
  optimizing for the right things.


PS. There, that should be a lot less tedious to read than that
rambling blog entry.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <>

More information about the xorg mailing list