diff --git a/src/i830.h b/src/i830.h index 17d2fe2b..3abc8006 100644 --- a/src/i830.h +++ b/src/i830.h @@ -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; } diff --git a/src/i830_driver.c b/src/i830_driver.c index 8d58a086..e000d921 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -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)) {