diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c index 6459f11..632e5fa 100644 --- a/hw/xfree86/dri2/dri2.c +++ b/hw/xfree86/dri2/dri2.c @@ -927,10 +927,23 @@ DRI2CanFlip(DrawablePtr pDraw) pWin = (WindowPtr) pDraw; pWinPixmap = pScreen->GetWindowPixmap(pWin); - if (pRootPixmap != pWinPixmap) + if (pRootPixmap != pWinPixmap) { + ErrorF("%s: Window pixmap != screen pixmap\n", __func__); return FALSE; - if (!RegionEqual(&pWin->clipList, &pRoot->winSize)) + } + if (!RegionEqual(&pWin->clipList, &pRoot->winSize)) { + BoxPtr extents; + + ErrorF("%s: Window clipList doesn't match root window dimensions:\n", + __func__); + extents = RegionExtents(&pWin->clipList); + ErrorF("Window clipList extents: (%d, %d)-(%d, %d)\n", + extents->x1, extents->y1, extents->x2, extents->y2); + extents = RegionExtents(&pRoot->winSize); + ErrorF("Root window extents: (%d, %d)-(%d, %d)\n", + extents->x1, extents->y1, extents->x2, extents->y2); return FALSE; + } /* Does the window match the pixmap exactly? */ if (pDraw->x != 0 || pDraw->y != 0 || @@ -938,8 +951,11 @@ DRI2CanFlip(DrawablePtr pDraw) pDraw->x != pWinPixmap->screen_x || pDraw->y != pWinPixmap->screen_y || #endif pDraw->width != pWinPixmap->drawable.width || - pDraw->height != pWinPixmap->drawable.height) + pDraw->height != pWinPixmap->drawable.height) { + ErrorF("%s: Window pixmap dimensions don't match window dimensions\n", + __func__); return FALSE; + } return TRUE; }