Hi,
the chips driver does the initialisation of the acceleration functions
before the initialisation of the frame buffer manager. So the
accelerating functions don't use off screen memory.
I changed the initialisation order in ct_driver.c (diff against the actual
cvs revision see below). Now off screen will be used (copying an off
screen pixmap to the screen is about twice as fast now).
Does this harm anything else?
Regards,
Corvin
Index: ct_driver.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c,v
retrieving revision 1.119
diff -U6 -r1.119 ct_driver.c
--- ct_driver.c 2002/04/04 14:05:42 1.119
+++ ct_driver.c 2002/06/14 13:59:51
@@ -4157,12 +4157,28 @@
xf86DrvMsg(scrnIndex, X_ERROR,
"Too little space for H/W cursor.\n");
}
cAcl->CacheEnd = currentaddr;
+ /* CZ 14.6.2002: InitFBManager moved here, because AccelInit needs
+ to know, whether offscreen memory is available */
+ {
+ BoxRec AvailFBArea;
+ AvailFBArea.x1 = 0;
+ AvailFBArea.y1 = 0;
+ AvailFBArea.x2 = pScrn->displayWidth;
+ AvailFBArea.y2 = cAcl->CacheEnd /
+ (pScrn->displayWidth * (pScrn->bitsPerPixel >> 3));
+
+ if (!(cPtr->Flags & ChipsOverlay8plus16)) {
+ xf86InitFBManager(pScreen, &AvailFBArea);
+ }
+ }
+ /* end CZ */
+
/* Setup the acceleration primitives */
if (cPtr->Flags & ChipsAccelSupport) {
/*
* A scratch area is now allocated in the video ram. This is used
* at 8 and 16 bpp to simulate a planemask with a complex ROP, and
* at 24 and 32 bpp to aid in accelerating solid fills
@@ -4232,24 +4248,28 @@
CHIPSMMIOAccelInit(pScreen);
} else {
CHIPSAccelInit(pScreen);
}
}
+ /* CZ 14.6.2002: InitFBManager moved before AccelInit */
+#if 0
{
BoxRec AvailFBArea;
AvailFBArea.x1 = 0;
AvailFBArea.y1 = 0;
AvailFBArea.x2 = pScrn->displayWidth;
AvailFBArea.y2 = cAcl->CacheEnd /
(pScrn->displayWidth * (pScrn->bitsPerPixel >> 3));
if (!(cPtr->Flags & ChipsOverlay8plus16)) {
xf86InitFBManager(pScreen, &AvailFBArea);
}
}
+#endif
+ /* end CZ */
miInitializeBackingStore(pScreen);
xf86SetBackingStore(pScreen);
#ifdef ENABLE_SILKEN_MOUSE
xf86SetSilkenMouse(pScreen);
#endif
--
Corvin Zahn <[EMAIL PROTECTED]>
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert