Looking for API to possibly implement "mastered image transfer" for xf86-video-savage

Alex Villací­s Lasso a_villacis at palosanto.com
Mon Nov 10 10:37:56 PST 2008

In the reference documents for the savage video card, there is an 
operation called a "mastered image transfer", which looks like an 
accelerated pixmap upload into the framebuffer. This operation 
references registers with bit flags to select between "framebuffer 
memory" and "system memory". However, there are restrictions on the kind 
of "system memory" that is suitable for the transfer. The chipset can 
only use either:

1) PCI memory ("physically contiguous and page-locked")
2) AGP memory

I understand "PCI memory" to mean the garden-variety userspace memory, 
which is paginated, and might be swapped out to disk (therefore the 

The question is: is there any xserver support that might enable a driver 
to get pixmap data into either kind of situation? Either get the pixmap 
into physically contiguous pages and obtain the physical address of the 
start of data, or pre-copy the pixmap data into AGP memory (allocated by 
the driver on startup, if necessary) so that the driver does not need to 
copy it into AGP memory every single time. If either one exists, this 
might be useful to get a better implementation of EXAUploadToScreen, as 
well as a faster XVideo (which can also use system memory, according to 
the docs).

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

More information about the xorg mailing list