summaryrefslogtreecommitdiff
path: root/src/sna
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-05-22 18:31:50 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2016-05-22 18:32:54 +0100
commit46ffdf295d161a70459508ef0643d70af66ed990 (patch)
tree2ae0dac0697189971856e40185afbabc474bf6a6 /src/sna
parent2205da072943664ba0685630436cb57fc6342b44 (diff)
sna/dri2: Avoid chaining swaps across a mode change
If the pixmap on a drawable changes between swap events, just queue a normal vblank event rather than chaining up. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna')
-rw-r--r--src/sna/sna_dri2.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index 59877e92..dd4598c2 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -2792,9 +2792,8 @@ sna_dri2_immediate_blit(struct sna *sna,
get_private(chain->front)->bo->handle, chain->front->name, get_private(chain->front)->bo->active_scanout,
get_private(chain->back)->bo->handle, chain->back->name, get_private(chain->back)->bo->active_scanout));
- if (chain->type == SWAP_COMPLETE) {
+ if (chain->type == SWAP_COMPLETE && chain->front == info->front) {
assert(chain->draw == info->draw);
- assert(chain->front == info->front);
assert(chain->client == info->client);
assert(chain->event_complete == info->event_complete);
assert(chain->event_data == info->event_data);