I'm investigating a problem I have been seeing with the tdfx driver. Two
questions:
1. Poking around in tdfx_driver.c I spotted this function:
void TDFXAdjustFrame(int scrnIndex, int x, int y, int flags) {
ScrnInfoPtr pScrn;
TDFXPtr pTDFX;
TDFXRegPtr tdfxReg;
TDFXTRACE("TDFXAdjustFrame start\n");
pScrn = xf86Screens[scrnIndex];
pTDFX = TDFXPTR(pScrn);
/* What exactly is happening here? */
if (pTDFX->ShowCache && y && pScrn->vtSema)
y += pScrn->virtualY - 1;
tdfxReg = &pTDFX->ModeReg;
if(pTDFX->ShowCache && y && pScrn->vtSema)
y += pScrn->virtualY - 1;
/* End */
tdfxReg->startaddr = pTDFX->fbOffset+y*pTDFX->stride+(x*pTDFX->cpp);
TDFXTRACE("TDFXAdjustFrame to x=%d y=%d offset=%d\n", x, y,
tdfxReg->startaddr);
pTDFX->writeLong(pTDFX, VIDDESKTOPSTARTADDR, tdfxReg->startaddr);
}
I was wondering if anyone could clear up for me what is going on in the
marked section? I think I am missing something quite fundamental here.
2. The problem I have is that when switching resolutions sometimes the
colours get "messed up"(R). Switching VTs restores the colours. I am curently
looking at the functions in tdfx_driver.c TDFXEnterVT and TDFXSwitchMode. Am
I probably in the right place or is there something else I should be looking
at?
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert