On Mon, Dec 13, 2010 at 8:15 AM, Ville Syrjälä <[email protected]> wrote: > On Fri, Dec 03, 2010 at 08:23:16PM +0200, [email protected] wrote: >> From: Ville Syrjälä <[email protected]> >> >> If the drawable size doesn't match the pixmap size page flipping should >> not be allowed. >> >> If the window is larger than the pixmap, page flipping might need to >> reposition the CRTC somewhere in the middle of the pixmap. I didn't >> spot any code that would handle that at least in the intel driver. >> >> Also the root pixmap could then move to some negative screen >> coordinates. Not sure if all bits of code could handle that. Perhaps >> when composite is enabled screen_x/y would make it work, but without >> composite there's no way that it would work AFAICS. > > Ping. Any comments on this?
Looks reasonable to me. Reviewed-by: Alex Deucher <[email protected]> > >> >> Signed-off-by: Ville Syrjälä <[email protected]> >> --- >> hw/xfree86/dri2/dri2.c | 11 +++++++++++ >> 1 files changed, 11 insertions(+), 0 deletions(-) >> >> diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c >> index 7bcd788..1622f69 100644 >> --- a/hw/xfree86/dri2/dri2.c >> +++ b/hw/xfree86/dri2/dri2.c >> @@ -699,6 +699,17 @@ DRI2CanFlip(DrawablePtr pDraw) >> if (!RegionEqual(&pWin->clipList, &pRoot->winSize)) >> return FALSE; >> >> + /* Does the window match the pixmap exactly? */ >> + if (pDraw->x != 0 || >> + pDraw->y != 0 || >> +#ifdef COMPOSITE >> + pDraw->x != pWinPixmap->screen_x || >> + pDraw->y != pWinPixmap->screen_y || >> +#endif >> + pDraw->width != pWinPixmap->drawable.width || >> + pDraw->height != pWinPixmap->drawable.height) >> + return FALSE; >> + >> return TRUE; >> } >> >> -- >> 1.7.2.2 >> > > -- > Ville Syrjälä > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel > _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
