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 Hellstrm)
This commit is contained in:
Thomas Hellström 2004-12-15 21:17:51 +00:00
parent a47c4c37ce
commit de541439d3

View file

@ -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;