summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-06-07 13:35:48 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2013-06-07 13:35:30 +0100
commite85271e516f811c60f440de61995cc5baf469a47 (patch)
tree9af95fc1ce129f79a37ad5ca74d10874f1e5cbb7
parentab47433b20a623bf790acfbf2005a8782d177f64 (diff)
sna/dri: Do not decouple the flip after chaining up a blit
Fixes regression from previous patch. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_dri.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index b737151c..8b055e6f 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -998,6 +998,7 @@ sna_dri_copy_region(DrawablePtr draw,
static inline int sna_wait_vblank(struct sna *sna, drmVBlank *vbl)
{
+ DBG(("%s\n", __FUNCTION__));
return drmIoctl(sna->kgem.fd, DRM_IOCTL_WAIT_VBLANK, vbl);
}
@@ -1516,8 +1517,9 @@ sna_dri_immediate_blit(struct sna *sna,
if (sna->flags & SNA_NO_WAIT)
sync = false;
- DBG(("%s: emitting immediate blit, throttling client, synced? %d, chained? %d\n",
- __FUNCTION__, sync, sna_dri_window_get_chain((WindowPtr)draw) == info));
+ DBG(("%s: emitting immediate blit, throttling client, synced? %d, chained? %d, send-event? %d\n",
+ __FUNCTION__, sync, sna_dri_window_get_chain((WindowPtr)draw) == info,
+ event));
if (sync) {
info->type = DRI2_SWAP_THROTTLE;
@@ -1547,7 +1549,8 @@ sna_dri_immediate_blit(struct sna *sna,
vbl.request.signal = (unsigned long)info;
ret = !sna_wait_vblank(sna, &vbl);
}
- }
+ } else
+ ret = true;
} else {
info->bo = sna_dri_copy_to_front(sna, draw, NULL,
get_private(info->front)->bo,
@@ -1562,6 +1565,7 @@ out:
}
}
+ DBG(("%s: continue? %d\n", __FUNCTION__, ret));
return ret;
}