FB-access-wrapper?
Keith Packard
keithp at keithp.com
Thu Jan 13 20:43:07 PST 2005
Around 4 o'clock on Jan 14, Thomas Winischhofer wrote:
> Is there any - reasonable (I don't intend to rewrite half of the XAA
> code) - way to wrap ALL server functions that directly access video RAM
> (apart from using the dead-slow shadow framebuffer)?
Not really; the frame buffer code assumes a linear mmaped screen and
doesn't like it if that isn't available.
It seems like what you want is to mirror all of the graphics on both sides
of the link; draw twice for acceleratable functions and draw client-side
only for pure software functions, with sync operations pushing bits across
as needed.
So, accelerated rendering functions would look like:
usbPolyFillRect (DrawablePtr d, GCPtr g, int n, xRectangle *r) {
for (int i = 0; i < n; i++)
usbFillOneRect (r[i]);
fbPolyFillRect (d, g, n, r);
}
Make the screen point at the shadow frame buffer so that 'unknown'
operations would hit that (and damage it).
I've done this in the past with really slow (10Mb) links between the
window system and the graphics device and it works fairly well.
-keith
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20050113/51d8d2c0/attachment.pgp>
More information about the xorg
mailing list