Don't enable fbc with XAA or tiling is off.

This slightly reworks my last fbc patch. We don't
support tiled front buffer with XAA now, so also
disable fbc on it. If tiled alloc failed, disable
fbc too.
This commit is contained in:
Zhenyu Wang 2007-11-14 22:46:46 +08:00
parent 26194e19e1
commit ad3bc0158d
2 changed files with 10 additions and 3 deletions

View File

@ -805,6 +805,11 @@ static inline int i830_fb_compression_supported(I830Ptr pI830)
return FALSE;
if (IS_I810(pI830) || IS_I815(pI830) || IS_I830(pI830))
return FALSE;
/* fbc depends on tiled surface. And we don't support tiled
* front buffer with XAA now.
*/
if (!pI830->tiling || (IS_I965G(pI830) && !pI830->useEXA))
return FALSE;
return TRUE;
}

View File

@ -2554,15 +2554,17 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
"Couldn't allocate tiled memory, page flipping "
"disabled\n");
pI830->allowPageFlip = FALSE;
if (pI830->fb_compression)
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"Couldn't allocate tiled memory, fb compression "
"disabled\n");
pI830->fb_compression = FALSE;
}
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Attempting memory allocation with %s buffers.\n",
(i & 1) ? "untiled" : "tiled");
if (!pI830->tiling && pI830->fb_compression)
pI830->fb_compression = FALSE;
if (i830_allocate_2d_memory(pScrn) &&
i830_allocate_3d_memory(pScrn))
{