Intel 845 ReadPixmap hw acceleration

Austin Yuan yuanshengquan at gmail.com
Sat Apr 30 00:42:06 PDT 2005


In order to do some performance improvement for XGetImage, I attempt
to implement hardware acceleration for ReadPixmap for the integrated
graphics device on Intel845GVSH desktop board.  ReadPixmap is a bitblt
from framebuffer to system memory. The register specification says
that the BLT Engine  can be used to transfer data from cacheable
memory to graphics memory and vice versa using the BLT
instructions,and all surface address programmed in these instructions
must be mapped through the GTT.  In my opinion, I must program GTT to
map system memory in user space as graphics memory("AGP" memory), then
use BLT engine to bitblt from frame buffer to it. Now I have patched
agpgart driver to support user space memory mapping(using
get_use_pages for 2.6 kernel). For every ReadPixmap, I call agpgart
driver to map and bind the user space pages and then do the bitblt,and
then unbind,free those pages.

My question is:
Is my idea right?and  how to keep cache coherency after bitblt?  I
fill the user space memory with a solid color using blt engine, but I
get a wrong color by reading from it.



More information about the xorg mailing list