On Tue, Feb 12, 2002 at 10:17:55AM -0700, Kevin Geiss wrote: > It's an LCD microdisplay, about 2 inches tall and 3 inches wide. it has > a resolution of 800x600 and 8-bit color. it's meant to be held up to your > eye for viewing. the optics are quite nice, you don't have to squint or > anything to see it. It's called the 'Optiscape II' and it was made by > Inviso who is now owned by Three Five Systems. [snip] > The microdisplay is a bit wierd in its mode of operation. When you want to > write a pixel value to it, you have to write 32 pixels at a time, on a > 32-pixel boundary! (8 32-bit words at a time, on an 8 32-bit word boundary). > Also, the memory you write the pixels into is a bit slow; if you write at > full speed it kinda causes problems. in my frame buffer i delay for one > microsecond between each write on a 450 MHz AMD K6-2 system. [snip] > So, what i need to do is figure out how to intercept accesses to the > frame buffer memory to enforce the memory write speed limit and the > 32-pixel-at-a-time rule.
Implement a driver using the ShadowFB layer; your RefreshArea routine will just have to do the write slow enough to keep the hardware happy. (Hmm, I wonder if there's any way to "schedule" those writes so that the X server doesn't have to sit there waiting for the memory to catch up after every screen modification... well, 32 bytes per microsecond is 30 MB / second, so it shouldn't be so slow as to be unusable -- just about 3 times slower than a standard PCI framebuffer.) Look at the various drivers in xc/programs/Xserver/hw/xfree86/drivers/* to see how ShadowFB is used. The MGA is sorta the original standard... -andy _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert