Comparing EXA to NoAccel
cworth at cworth.org
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
Size: 189 bytes
Desc: not available
More information about the xorg