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