[Xorg] Using transformations in the render extension
Lars Knoll
lars at trolltech.com
Mon Aug 16 02:16:42 PDT 2004
Hi,
we did some experimenting trying to use transformations provided by the render
extension on pixmaps. What we found is that they currently are about a factor
of 5 slower than sending the data over to the client, doing the
transformation there and sending it back (for the "nearest" neighbor filter).
I digged a bit through the XServer code, and it seems that we take the worst
possible code path whenever a transformation is involved (going into
fbCompositeGeneral, and using function pointers for all operations).
The other thing I noticed while looking through the code is that PictOpSrc
always seems to go through the fbComposeGeneral method (even without
transformations).
Wouldn't it be worth optimising PictOpSrc without transformations, and both
PictOpOver and PictOpSrc for affine transformations (or at least scaling
operations)?
I know that it would be best if the drivers started supporting these in
hardware, but as it currently looks to me most of them do not have the
support yet, and it would be great if the software fallback would not be
slower than what one can achieve on the client.
Cheers,
Lars
More information about the xorg
mailing list