xserver: Branch 'master'
Adam Jackson
ajax at kemper.freedesktop.org
Tue Feb 9 03:47:42 CET 2016
hw/xfree86/dri2/dri2.c | 3 +++
1 file changed, 3 insertions(+)
New commits:
commit e43abdce964f5ed9689cf908af8c305b39a5dd36
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Feb 3 09:54:46 2016 +0000
dri2: Unblock Clients on Drawable release
If the Window is destroyed by another client, such as the window
manager, the original client may be blocked by DRI2 awaiting a vblank
event. When this happens, DRI2DrawableGone forgets to unblock that
client and so the wait never completes.
Note Present/xshmfence is also suspectible to this race.
Testcase: dri2-race/manager
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index bbff11c..dfc2f49 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -413,6 +413,9 @@ DRI2DrawableGone(void *p, XID id)
(*pDraw->pScreen->DestroyPixmap)(pPriv->redirectpixmap);
}
+ if (pPriv->blockedClient)
+ AttendClient(pPriv->blockedClient);
+
free(pPriv);
return Success;
More information about the xorg-commit
mailing list