I finally determined why it is that the XFree Rage128 driver always gets the wrong framebuffer row width. In XFree 4.1.0's source, in xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c, lines 1105 to 1118 call XF86ValidateModes with a minPitch of 8 * 64 (512) and a max pitch of 8 * 1024 (8192). The default pitch increment value is 64 * pScrn->bitsPerPixel, such that the row width is ALWAYS a multiple of 64. However, on the Rage M3 that laptops with an 800x600 LCD panel, like the original iBook and iBookSE (and the FireWire versions) are outfitted with, the 800-pixel row width is NOT, EVER, a multiple of 64. I tried changing the pitch increment to 16 * pScrn->bitsPerPixel, and the X server then correctly determined the real row width (of 800 pixels) by itself, with no forcing and no other help. Please correct this before 4.2.0's release - the CVS HEAD version has the same (too large) pitch increment, and should be corrected.
Also, sorry about the crosspost to three lists, but I believe that this is relevant to all these lists. If you reply to this message, please remove references to the other mailing lists. Derrik Pates | Sysadmin, Douglas School | #linuxOS on EFnet [EMAIL PROTECTED] | District (dsdk12.net) | #linuxOS on OPN