[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