Questions about possible EXA Composite acceleration for savage

Alex Villací­s Lasso a_villacis at
Mon Apr 14 11:56:38 PDT 2008

I am currently studying the feasibility of implementing Composite 
acceleration for the savage driver. The 3D hardware available has two 
texture units, which require power-of-two dimensions to work (both width 
and height). From what I could see, setting the POT flag only sets up a 
POT source pitch, but does nothing for the height. What could happen if 
I use the next bigger power-of-two height as the texture height? Does 
EXA guarantee that I will not overrun into the next stored texture, or not?

Another question: apparently the POT flag has effect on the reported 
texture pitch, not on the actual image width 
(PixmapPtr->drawable->width). What is stored on the right of the true 
width? Is it garbage, or does EXA guarantee it to be some constant 
value, or that it will always be covered by the mask texture or source 
alpha channel? How should this be handled if the driver needs to repeat 
the source texture, as apparently required by a source texture of 1x1 
and a destination coordinate of, say 28, 15? Note that, even though 1 is 
a power of two, EXA still honors the pitch alignment of 128 bytes (one 
tile pitch).

This might be easier to answer for me if I could examine existing source 
code for some other driver that has both EXA Composite acceleration and 
the POT requirement. Do you know whether any of the existing drivers 
meet both requirements?

perl -e '$x=2.4;print sprintf("%.0f + %.0f = %.0f\n",$x,$x,$x+$x);'

More information about the xorg mailing list