Problem implementing UploadToScreen in kdrive due to unavailability of physical address of pixmap
abhinavduggal at gmail.com
Wed Jul 11 23:37:18 PDT 2007
I am facing a strange problem with in implementing kaaMoveInPixmap's
UploadToScreen function to use acceleration for copying the src pixmap.In my
scenario I am using a graphics card which uses buffers for copying.
My SGA(smart graphics accelerator) card has input buffer and output
buffer.These buffers have to be given the physical address of the buffer to
copy from src(input buffer) to dst(output buffer).
My output buffer is offscreen buffer which I have allocated in the kernel
and passed the physical address to the kdrive driver.And then I can copy it
onto onscreen using SGA.So first I have to bring the pixmap to offscreen
area for copy operation to take place.But in case of kaaMoveInPixmap which
moves the pixmap to offscreen if it is not offscreen I cannot copy using
SGA.This is because the src pixmap address is a user space address for which
I cannot obtain the corresponding physical address to give it to the SGA
though I have the dst physical address i.e. framebuffer physical
address.Thus I have to fallback to default memcpy.This will really degrade
performance in case of Xvideo interface which I have to provide so that I
can render using SGA since I have to call kaaMoveInPixmap to get the src
pixmap to offscreen and even in implementing copy operation of kdrive. Is
there a workaround to this?Can I somehow obtain the physical address
corresponding to the non offscreen pixmap.Maybe by hacking X server code and
allocating memory through kernel and passing on the physical address to user
space.But I am not sure.Please Help.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the xorg