summaryrefslogtreecommitdiff
path: root/src/i830_dri.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2006-10-26 15:47:49 -0700
committerEric Anholt <eric@anholt.net>2006-10-26 15:47:49 -0700
commit25e6e497824a23eb231fc6fd6e483f601d612cee (patch)
tree85f317aff96c3ac817932fc70313c1c8ac01f4ce /src/i830_dri.c
parent0bdcce2e4541c6e441c44aad49254ad3093cedb2 (diff)
Major cleanup of 3D invariant state, fixing hangs with rotation and render.exa
Now, the generic invariant state is always set while the X Server is active, and happens automatically when the X Server grabs the DRI lock. More 3D state is moved to the generic code. Then, the 3D consumers (video, rotation, render) set last_3d to their enum entry, and can update their own invariant state when another consumer was active.
Diffstat (limited to 'src/i830_dri.c')
-rw-r--r--src/i830_dri.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/i830_dri.c b/src/i830_dri.c
index 8a52750f..b844d334 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -1000,6 +1000,8 @@ I830DRISwapContext(ScreenPtr pScreen, DRISyncType syncType,
if (I810_DEBUG & DEBUG_VERBOSE_DRI)
ErrorF("i830DRISwapContext (in)\n");
+ pI830->last_3d = LAST_3D_OTHER;
+
if (!pScrn->vtSema)
return;
pI830->LockHeld = 1;