summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sna/sna_display.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index eb47165b..40cc3476 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -4494,7 +4494,7 @@ static int do_page_flip(struct sna *sna, struct kgem_bo *bo,
bo->pitch, crtc->bo->pitch,
crtc_offset, crtc->offset));
fixup_flip:
- if (sna_crtc_flip(sna, crtc)) {
+ if (crtc->bo != bo && sna_crtc_flip(sna, crtc)) {
assert(crtc->bo->active_scanout);
assert(crtc->bo->refcnt >= crtc->bo->active_scanout);
crtc->bo->active_scanout--;
@@ -4502,9 +4502,6 @@ fixup_flip:
crtc->bo = kgem_bo_reference(bo);
crtc->bo->active_scanout++;
-
- count++;
- continue;
} else {
if (count && !xf86SetDesiredModes(sna->scrn)) {
xf86DrvMsg(sna->scrn->scrnIndex, X_ERROR,