From ad3bc0158d37e98fcbbe6a8e31413c142a260424 Mon Sep 17 00:00:00 2001 From: Zhenyu Wang Date: Wed, 14 Nov 2007 22:46:46 +0800 Subject: [PATCH] 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. --- src/i830.h | 5 +++++ src/i830_driver.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) 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)) {