xf86-video-intel: 2 commits - src/sna/sna_display.c src/sna/sna_dri2.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Nov 10 03:30:34 PST 2015


 src/sna/sna_display.c |    8 +++++---
 src/sna/sna_dri2.c    |    6 +++---
 2 files changed, 8 insertions(+), 6 deletions(-)

New commits:
commit 97786e99fbfb8f8ea3931c305f31e993de378fb2
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Nov 10 11:29:17 2015 +0000

    sna: Fix Zaphod interaction with DP-MST
    
    When constructing the new DP-MST output name, we only want to reject the
    non-matching ZaphodHead if and only if ZaphodHeads are enabled.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index c2cbf43..be7dfa5 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -4591,7 +4591,7 @@ sna_output_add(struct sna *sna, unsigned id, unsigned serial)
 		if (!sna_zaphod_match(sna, name)) {
 			DBG(("%s: zaphod mismatch, want %s, have %s\n",
 			     __FUNCTION__,
-			     xf86GetOptValString(sna->Options, OPTION_ZAPHOD),
+			     xf86GetOptValString(sna->Options, OPTION_ZAPHOD) ?: "???",
 			     name));
 			return 0;
 		}
@@ -4650,10 +4650,10 @@ sna_output_add(struct sna *sna, unsigned id, unsigned serial)
 			goto skip;
 		}
 
-		if (!sna_zaphod_match(sna, name)) {
+		if (is_zaphod(scrn) && !sna_zaphod_match(sna, name)) {
 			DBG(("%s: zaphod mismatch, want %s, have %s\n",
 			     __FUNCTION__,
-			     xf86GetOptValString(sna->Options, OPTION_ZAPHOD),
+			     xf86GetOptValString(sna->Options, OPTION_ZAPHOD) ?: "???",
 			     name));
 			len = 0;
 			goto skip;
commit 5a18f1fc7e90484729c8e3bb8224658a585998ae
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Nov 10 11:27:55 2015 +0000

    sna/dri2: Flip logic for shadow_wait
    
    Simply sedding the name over to the new variable was insufficient as it
    is now the logical opposite. Fixes
    
    commit 64dbcdd4de1fe1941196265d054272d7d93e5d59
    Author: Chris Wilson <chris at chris-wilson.co.uk>
    Date:   Tue Nov 10 09:56:07 2015 +0000
    
        sna/dri2: Add a specific recursion indicator for TearFree/DRI2
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index a7dcb6b..c2cbf43 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1537,6 +1537,8 @@ done:
 	priv->move_to_gpu_data = NULL;
 	priv->move_to_gpu = NULL;
 
+	assert(!sna->mode.shadow_wait);
+
 	return ret;
 }
 
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index e9d9159..6f5e9f7 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -2464,7 +2464,7 @@ static void chain_swap(struct sna_dri2_event *chain)
 	switch (chain->type) {
 	case SWAP_COMPLETE:
 		DBG(("%s: emitting chained vsync'ed blit\n", __FUNCTION__));
-		if (chain->sna->mode.shadow && !chain->sna->mode.shadow_wait) {
+		if (chain->sna->mode.shadow && chain->sna->mode.shadow_wait) {
 			/* recursed from wait_for_shadow(), simply requeue */
 			DBG(("%s -- recursed from wait_for_shadow(), requeuing\n", __FUNCTION__));
 			if (sna_next_vblank(chain))
@@ -2561,7 +2561,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_wait) {
+		if (sna->mode.shadow && sna->mode.shadow_wait) {
 			/* 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)) {
@@ -2599,7 +2599,7 @@ void sna_dri2_vblank_handler(struct drm_event_vblank *event)
 		}
 
 		if (info->pending.bo) {
-			if (sna->mode.shadow && !sna->mode.shadow_wait) {
+			if (sna->mode.shadow && sna->mode.shadow_wait) {
 				/* recursed from wait_for_shadow(), simply requeue */
 				DBG(("%s -- recursed from wait_for_shadow(), requeuing\n", __FUNCTION__));
 				if (sna_next_vblank(info))


More information about the xorg-commit mailing list