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

Reply via email to