diff options
author | Jakob Bornecrantz <[email protected]> | 2010-01-25 20:07:43 +0100 |
---|---|---|
committer | Jakob Bornecrantz <[email protected]> | 2010-01-25 20:12:59 +0100 |
commit | 6749310d3f60df70ad8f82db986871ab9496793b (patch) | |
tree | a43884f4551717991f50e72019a03f7a07534702 | |
parent | 0d051af6127d206d165a1034ca0795ce8fdcd389 (diff) |
st/xorg: Fix crash on resize with libkms
-rw-r--r-- | src/gallium/state_trackers/xorg/xorg_driver.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c index 0ff6c529157..e4ad789e9bc 100644 --- a/src/gallium/state_trackers/xorg/xorg_driver.c +++ b/src/gallium/state_trackers/xorg/xorg_driver.c @@ -1066,12 +1066,22 @@ drv_bind_front_buffer_kms(ScrnInfoPtr pScrn) goto err_destroy; pScreen->ModifyPixmapHeader(rootPixmap, - pScreen->width, - pScreen->height, + pScrn->virtualX, + pScrn->virtualY, pScreen->rootDepth, pScrn->bitsPerPixel, stride, ptr); + + /* This a hack to work around EnableDisableFBAccess setting the pointer + * the real fix would be to replace pScrn->EnableDisableFBAccess hook + * and set the rootPixmap->devPrivate.ptr to something valid before that. + * + * But in its infinit visdome something uses either this some times before + * that, so our hook doesn't get called before the crash happens. + */ + pScrn->pixmapPrivate.ptr = ptr; + return TRUE; err_destroy: |