Package: xserver-xorg-video-savage Version: 1:2.1.2+git20070512-0.2debug Followup-For: Bug #423485
The attached patch fixes (or works around) the problem by setting currentMode to the new mode as soon as the mode switching has occured, and before SavageAdjustFrame is called. There are probably better ways to fix this. It seems like the pScrn->frameX? adjustment is done in xf86SwitchMode as well, so maybe it could be taken out from SavageDoAdjustFrame which then would not need the currentMode.
Index: xserver-xorg-video-savage-2.1.2+git20070512/src/savage_driver.c =================================================================== --- xserver-xorg-video-savage-2.1.2+git20070512.orig/src/savage_driver.c 2007-05-13 00:58:41.000000000 +0200 +++ xserver-xorg-video-savage-2.1.2+git20070512/src/savage_driver.c 2007-05-13 01:16:25.000000000 +0200 @@ -3547,6 +3547,7 @@ /* do it! */ SavageWriteMode(pScrn, vganew, new, TRUE); + pScrn->currentMode = mode; if (psav->FBStart2nd) { SavageStreamsOn(pScrn); @@ -3809,6 +3810,7 @@ /* do it! */ SavageWriteMode(pScrn, vganew, new, TRUE); + pScrn->currentMode = mode; if (psav->FBStart2nd) { SavageStreamsOn(pScrn);