Commit 0dede200 authored by Keith Packard's avatar Keith Packard
Browse files

Merge remote branch 'vsyrjala/misc_fixes'

parents 7714357f 2e781457
......@@ -640,6 +640,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;
}
......
......@@ -355,15 +355,32 @@ xf86ValidateModesSize(ScrnInfoPtr pScrn, DisplayModePtr modeList,
{
DisplayModePtr mode;
for (mode = modeList; mode != NULL; mode = mode->next) {
if (maxPitch > 0 && mode->HDisplay > maxPitch)
mode->status = MODE_BAD_WIDTH;
if (maxX > 0 && mode->HDisplay > maxX)
mode->status = MODE_VIRTUAL_X;
if (maxPitch <= 0)
maxPitch = MAXINT;
if (maxX <= 0)
maxX = MAXINT;
if (maxY <= 0)
maxY = MAXINT;
if (maxY > 0 && mode->VDisplay > maxY)
mode->status = MODE_VIRTUAL_Y;
for (mode = modeList; mode != NULL; mode = mode->next) {
if ((xf86ModeWidth(mode, RR_Rotate_0) > maxPitch ||
xf86ModeWidth(mode, RR_Rotate_0) > maxX ||
xf86ModeHeight(mode, RR_Rotate_0) > maxY) &&
(xf86ModeWidth(mode, RR_Rotate_90) > maxPitch ||
xf86ModeWidth(mode, RR_Rotate_90) > maxX ||
xf86ModeHeight(mode, RR_Rotate_90) > maxY)) {
if (xf86ModeWidth(mode, RR_Rotate_0) > maxPitch ||
xf86ModeWidth(mode, RR_Rotate_90) > maxPitch)
mode->status = MODE_BAD_WIDTH;
if (xf86ModeWidth(mode, RR_Rotate_0) > maxX ||
xf86ModeWidth(mode, RR_Rotate_90) > maxX)
mode->status = MODE_VIRTUAL_X;
if (xf86ModeHeight(mode, RR_Rotate_0) > maxY ||
xf86ModeHeight(mode, RR_Rotate_90) > maxY)
mode->status = MODE_VIRTUAL_Y;
}
if (mode->next == modeList)
break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment