Intel 845 ReadPixmap hw acceleration

Austin Yuan yuanshengquan at
Sat Apr 30 01:07:00 PDT 2005

On 4/30/05, Austin Yuan <yuanshengquan at> wrote:
> 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.
Befor filling the solid color,I memset the system memory into zero,
and after hw bitblt,I read it from it. Now sometimes I can get the
correct color, but sometime I still get zero.  I think my idea is
right, but I don't know if I need to care about the cache.

More information about the xorg mailing list