diff options
Diffstat (limited to 'src/savage_driver.c')
-rw-r--r-- | src/savage_driver.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/savage_driver.c b/src/savage_driver.c index 5b7704e..977ebc3 100644 --- a/src/savage_driver.c +++ b/src/savage_driver.c @@ -31,6 +31,7 @@ #ifdef XF86DRI #define _XF86DRI_SERVER_ #include "savage_dri.h" +#include "savage_sarea.h" #endif @@ -2025,6 +2026,7 @@ static Bool SavageEnterVT(int scrnIndex, int flags) #ifdef XF86DRI SavagePtr psav= SAVPTR(pScrn); ScreenPtr pScreen; + SAVAGESAREAPrivPtr pSAREAPriv; #endif TRACE(("SavageEnterVT(%d)\n", flags)); @@ -2035,6 +2037,10 @@ static Bool SavageEnterVT(int scrnIndex, int flags) #ifdef XF86DRI if (psav->directRenderingEnabled) { pScreen = screenInfo.screens[scrnIndex]; + pSAREAPriv = (SAVAGESAREAPrivPtr)DRIGetSAREAPrivate(pScreen); + /* Assume that 3D state was clobbered, invalidate it by + * changing ctxOwner in the sarea. */ + pSAREAPriv->ctxOwner = DRIGetContext(pScreen); DRIUnlock(pScreen); psav->LockHeld = 0; } |