render improvements

Lars Knoll lars at
Fri Apr 15 07:10:27 PDT 2005


Zack and myself have in the last two weeks worked on improving performance the 
general composition path in the render extenstion (the code in fbcompose.c). 

You can find patches for xserver and xorg at:

The main change is in fbcompose.c, which you can find separately here:

We've done some performance measurements using Xephyr, which shows an overall 
speedup of 3-4 times when not using transformations, and about a factor of 8 
for bilinear transformations.

You can find a more detailed list of results on:

render_old gives the old timing results, render_new the timings with our 
changes. The benchmark program we used is at (requires a 
recent Qt4 snapshot to build).

The speedup using a recent server is less, we currently suspect that 
framebuffer reads are the limiting factor now. We're not sure why they are so 
slow, but I'm hope on the list can enlighten us. My current suspicion is that 
they are not cached in the CPU at all and always go directly to graphics 

We can try to reduce framebuffer reads to speed this up (I have some ideas how 
to do this), but we wonder if there are ways to speed up the reads from the 
framebuffer, at least from offscreen memory?

Lars & Zack

More information about the xorg mailing list