xf86-video-intel: src/sna/sna_dri2.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Nov 6 12:42:14 PST 2015


 src/sna/sna_dri2.c |    7 +++++++
 1 file changed, 7 insertions(+)

New commits:
commit b1015d4de0cb040dc47ebfbef1114b65269f6f36
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Nov 6 20:41:03 2015 +0000

    sna/dri2: Protect against a new possible recursion during TearFree
    
    With the introduction of a new SwapEvent that may trigger a copy, we
    need to add another check for recursion from a TearFree flip event.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=92751#c14
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index 1fad39f..dae1e77 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -2600,6 +2600,13 @@ void sna_dri2_vblank_handler(struct drm_event_vblank *event)
 		}
 
 		if (info->pending.bo) {
+			if (sna->mode.shadow && !sna->mode.shadow_enabled) {
+				/* recursed from wait_for_shadow(), simply requeue */
+				DBG(("%s -- recursed from wait_for_shadow(), requeuing\n", __FUNCTION__));
+				if (sna_next_vblank(info))
+					return;
+			}
+
 			assert(info->pending.bo->active_scanout > 0);
 			info->pending.bo->active_scanout--;
 


More information about the xorg-commit mailing list