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

Chris Wilson ickle at kemper.freedesktop.org
Thu Nov 5 08:56:20 PST 2015


 src/sna/sna_dri2.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit af680486608686ade375f5737bff556343366230
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Nov 5 16:54:36 2015 +0000

    sna/dri2: Update TearFree recursion prevention
    
    Some time past, we switched to a seperate boolean to mark when the
    shadow is no longer accessible due to recursion - but I missed an
    important check inside the vblank handler.
    
    Reported-by: Joe Peterson <joe at wildlava.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92751#c5
    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 bff6516..1fad39f 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -2465,7 +2465,7 @@ static void chain_swap(struct sna_dri2_event *chain)
 	case SWAP_COMPLETE:
 		DBG(("%s: emitting chained vsync'ed blit\n", __FUNCTION__));
 		if (chain->sna->mode.shadow &&
-		    !chain->sna->mode.shadow_damage) {
+		    !chain->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(chain))
@@ -2562,7 +2562,7 @@ void sna_dri2_vblank_handler(struct drm_event_vblank *event)
 		/* else fall through to blit */
 	case SWAP:
 		assert(info->signal);
-		if (sna->mode.shadow && !sna->mode.shadow_damage) {
+		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__));
 		} else if (can_xchg(info->sna, draw, info->front, info->back)) {


More information about the xorg-commit mailing list