I think I've found what was wrong with XFree86 DGA on the iBook2, and by
extension, on everything that used the r128 driver with fbdev. The
attached patch fixes things for me, apart from a slight keyboard input
glitch when exiting xmame. I'm blaming that on Sawfish, as it clears up
after I press alt-tab.
--
Adrian Cox http://www.humboldt.co.uk/
--- xfree86/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dga.c Tue Nov
21 23:10:33 2000
+++ r128_dga.c Fri Oct 26 17:58:22 2001
@@ -233,8 +233,8 @@
pScrn->currentMode = info->CurrentLayout.mode;
- R128SwitchMode(indx, pScrn->currentMode, 0);
- R128AdjustFrame(indx, 0, 0, 0);
+ (*pScrn->SwitchMode)(indx, pScrn->currentMode, 0);
+ (*pScrn->AdjustFrame)(indx, 0, 0, 0);
info->DGAactive = FALSE;
} else {
if(!info->DGAactive) { /* save the old parameters */
@@ -252,7 +252,7 @@
: pMode->depth);
/* R128ModeInit() will set the mode field */
- R128SwitchMode(indx, pMode->mode, 0);
+ (*pScrn->SwitchMode)(indx, pMode->mode, 0);
}
return TRUE;
@@ -278,7 +278,7 @@
){
R128InfoPtr info = R128PTR(pScrn);
- R128AdjustFrame(pScrn->pScreen->myNum, x, y, flags);
+ (*pScrn->AdjustFrame)(pScrn->pScreen->myNum, x, y, flags);
info->DGAViewportStatus = 0; /* FIXME */
}