diff options
Diffstat (limited to 'src/smi_driver.c')
-rw-r--r-- | src/smi_driver.c | 8 |
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); |