Mark Vojkovich
mvojk****@XFree*****
2003年 8月 15日 (金) 08:17:41 JST
On Thu, 14 Aug 2003, David Dawes wrote: > > > > XAACacheTile() should have never been called if no slots existed. > >MaxCacheableTileWidth and MaxCacheableTileHeight should have been > >consulted at some point. > > OK, we need to see what those values are at this point. XAAPaintWindow(), > where the crash is apparently happening, does have a test for them, so > maybe there's getting set incorrectly somewhere. > > if(infoRec->UsingPixmapCache && > infoRec->FillCacheBltRects && !NoCache && > ((what == PW_BORDER) || > (pPix->drawable.height != pWin->drawable.height) || > (pPix->drawable.width != pWin->drawable.width)) && > (pPix->drawable.height <= infoRec->MaxCacheableTileHeight) && > (pPix->drawable.width <= infoRec->MaxCacheableTileWidth)) { > > XAACacheInfoPtr pCache = > (*infoRec->CacheTile)(infoRec->pScrn, pPix); > (*infoRec->FillCacheBltRects)(infoRec->pScrn, GXcopy, ~0, > nBox, pBox, xorg, yorg, pCache); > return; > } > > This check assumes that if there are no 256x256 slots there won't > be any 512x512 slots. I'm not 100% sure if it can ever happen that > there are 512x512 slots but no 256x256 slots. If the debugging > could be extended to print both infoRec->MaxCacheableTileHeight > and Num512, it should clarify if this is the problem or not. It's expected that if there are 512x512 slots there will be smaller slots. The logic that sets up the slots in XAAInitPixmapCache is supposed to ensure that. Mark.