summaryrefslogtreecommitdiff
path: root/src/smi_driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/smi_driver.c')
-rw-r--r--src/smi_driver.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/smi_driver.c b/src/smi_driver.c
index b23b291..a3b0589 100644
--- a/src/smi_driver.c
+++ b/src/smi_driver.c
@@ -1016,7 +1016,10 @@ SMI_EnterVT(int scrnIndex, int flags)
pSmi->Save(pScrn);
/* FBBase may have changed after remapping the memory */
+ pScrn->pScreen->ModifyPixmapHeader(pScrn->pScreen->GetScreenPixmap(pScrn->pScreen),
+ -1,-1,-1,-1,-1, pSmi->FBBase + pSmi->FBOffset);
pScrn->pixmapPrivate.ptr=pSmi->FBBase + pSmi->FBOffset;
+
if(pSmi->useEXA)
pSmi->EXADriverPtr->memoryBase=pSmi->FBBase;
@@ -1060,6 +1063,11 @@ SMI_LeaveVT(int scrnIndex, int flags)
unmapped. */
xf86RotateCloseScreen(pScrn->pScreen);
+ /* Pixmaps that by chance get allocated near the former aperture
+ address shouldn't be considered offscreen. */
+ if(pSmi->useEXA)
+ pSmi->EXADriverPtr->memoryBase=NULL;
+
/* Clear frame buffer */
memset(pSmi->FBBase, 0, pSmi->videoRAMBytes);