render improvements
Lars Knoll
lars at trolltech.com
Fri Apr 15 07:10:27 PDT 2005
Hi,
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:
http://trolls.troll.no/lars/render/render_xserver.diff
http://trolls.troll.no/lars/render/render_xorg.diff
The main change is in fbcompose.c, which you can find separately here:
http://trolls.troll.no/lars/render/fbcompose.c
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:
http://trolls.troll.no/lars/render/render_old.txt
http://trolls.troll.no/lars/render/render_new.txt
render_old gives the old timing results, render_new the timings with our
changes. The benchmark program we used is at
http://trolls.troll.no/lars/render/render_bench_ops.tar.bz2 (requires a
recent Qt4 snapshot to build).
The speedup using a recent x.org 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
memory.
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?
Cheers,
Lars & Zack
More information about the xorg
mailing list