As with xf86SwitchMode(), if the driver modifies the Screen pixmap header in the course of resizing the framebuffer, this change needs to be propagated to the ScrnInfo->pixmapPrivate or else the pixmap header will be overwritten by xf86EnableDisableFBAccess().
Signed-off-by: Chris Wilson <[email protected]> Cc: Julien Cristau <[email protected]> Cc: Andrew Guertin <[email protected]> Tested-by: Julien Cristau <[email protected]> Cc: Keith Packard <[email protected]> --- hw/xfree86/modes/xf86RandR12.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index c17b5fa..b334b3c 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -728,6 +728,13 @@ xf86RandR12ScreenSetSize (ScreenPtr pScreen, } pScrnPix = (*pScreen->GetScreenPixmap)(pScreen); + /* + * Get the new Screen pixmap ptr as resize() might have called + * ModifyPixmapHeader and xf86EnableDisableFBAccess will put it back... + * Unfortunately. + */ + if (pScrnPix->devPrivate.ptr) + pScrn->pixmapPrivate = pScrnPix->devPrivate; pScreen->width = pScrnPix->drawable.width = width; pScreen->height = pScrnPix->drawable.height = height; randrp->mmWidth = pScreen->mmWidth = mmWidth; -- 1.7.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
