summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/savage_dri.c14
-rw-r--r--src/savage_driver.c9
-rw-r--r--src/savage_driver.h2
3 files changed, 16 insertions, 9 deletions
diff --git a/src/savage_dri.c b/src/savage_dri.c
index e0b9f86..70e50cb 100644
--- a/src/savage_dri.c
+++ b/src/savage_dri.c
@@ -1078,7 +1078,7 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen )
return TRUE;
}
-void SAVAGEDRISetupTiledSurfaceRegs( SavagePtr psav )
+static void SAVAGEDRISetupTiledSurfaceRegs( SavagePtr psav )
{
SAVAGEDRIPtr pSAVAGEDRI = (SAVAGEDRIPtr)psav->pDRIInfo->devPrivate;
unsigned int value = 0;
@@ -1287,6 +1287,18 @@ Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen )
return TRUE;
}
+void SAVAGEDRIResume(ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ SavagePtr psav = SAVPTR(pScrn);
+ SAVAGESAREAPrivPtr pSAREAPriv =
+ (SAVAGESAREAPrivPtr)DRIGetSAREAPrivate(pScreen);
+
+ SAVAGEDRISetupTiledSurfaceRegs(psav);
+ /* Assume that 3D state was clobbered, invalidate it by
+ * changing ctxOwner in the sarea. */
+ pSAREAPriv->ctxOwner = DRIGetContext(pScreen);
+}
void SAVAGEDRICloseScreen( ScreenPtr pScreen )
{
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 2aa50f4..6eb7dda 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -2200,9 +2200,8 @@ static Bool SavageEnterVT(int scrnIndex, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
#ifdef XF86DRI
- SavagePtr psav= SAVPTR(pScrn);
+ SavagePtr psav = SAVPTR(pScrn);
ScreenPtr pScreen;
- SAVAGESAREAPrivPtr pSAREAPriv;
#endif
TRACE(("SavageEnterVT(%d)\n", flags));
@@ -2213,13 +2212,9 @@ 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);
+ SAVAGEDRIResume(pScreen);
DRIUnlock(pScreen);
psav->LockHeld = 0;
- SAVAGEDRISetupTiledSurfaceRegs ( psav );
}
#endif
if (!SAVPTR(pScrn)->IsSecondary)
diff --git a/src/savage_driver.h b/src/savage_driver.h
index 64587fc..fde47ff 100644
--- a/src/savage_driver.h
+++ b/src/savage_driver.h
@@ -559,7 +559,7 @@ Bool SAVAGEDRIScreenInit( ScreenPtr pScreen );
Bool SAVAGEInitMC(ScreenPtr pScreen);
void SAVAGEDRICloseScreen( ScreenPtr pScreen );
Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen );
-void SAVAGEDRISetupTiledSurfaceRegs ( SavagePtr psav );
+void SAVAGEDRIResume( ScreenPtr pScreen );
Bool SAVAGELockUpdate( ScrnInfoPtr pScrn, drmLockFlags flags );