summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri
diff options
context:
space:
mode:
authorThomas Hellström <[email protected]>2004-12-15 21:17:51 +0000
committerThomas Hellström <[email protected]>2004-12-15 21:17:51 +0000
commitde541439d31415a4cd7393e3507e980d2ab1fc19 (patch)
treea127e8ada9fb7814b9ad5903fa178919b30e0920 /src/mesa/drivers/dri
parenta47c4c37ce7ca45974b10f2bbb49bc88fad64a54 (diff)
Unichrome DRI:
Fixed an apparent race condition during locking and drawable info updating, the result of which was the DRI client leaving traces on the screen rendering where the drawable previously had been. If the driver hangs X for a second or so and then restarts, this is probably the place to look. (Thomas Hellstr�m)
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r--src/mesa/drivers/dri/unichrome/via_context.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/unichrome/via_context.c b/src/mesa/drivers/dri/unichrome/via_context.c
index 562538abbf9..62f4a5fc3a4 100644
--- a/src/mesa/drivers/dri/unichrome/via_context.c
+++ b/src/mesa/drivers/dri/unichrome/via_context.c
@@ -986,15 +986,7 @@ void viaGetLock(viaContextPtr vmesa, GLuint flags)
#endif
drmGetLock(vmesa->driFd, vmesa->hHWContext, flags);
- do {
- DRM_UNLOCK(psp->fd, &psp->pSAREA->lock,
- pdp->driContextPriv->hHWContext);
- DRM_SPINLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
- __driUtilUpdateDrawableInfo(dPriv);
- DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
- DRM_LIGHT_LOCK(psp->fd, &psp->pSAREA->lock,
- pdp->driContextPriv->hHWContext);
- } while (0);
+ DRI_VALIDATE_DRAWABLE_INFO( sPriv, dPriv );
if (sarea->ctxOwner != me) {
vmesa->uploadCliprects = GL_TRUE;