diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-05-22 18:31:50 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2016-05-22 18:32:54 +0100 |
commit | 46ffdf295d161a70459508ef0643d70af66ed990 (patch) | |
tree | 2ae0dac0697189971856e40185afbabc474bf6a6 /src/sna | |
parent | 2205da072943664ba0685630436cb57fc6342b44 (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.c | 3 |
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); |