Cancel pending scanout update in drmmode_crtc_scanout_update

drmmode_crtc_scanout_update does the equivalent of a scanout update,
so no need to do it again. This might also avoid issues if there's a
pending scanout update at this point.

(Ported from amdgpu commit 4e7a24ac5a64e402146953ec5850d13c05742116)
This commit is contained in:
Michel Dänzer
2018-12-21 12:47:18 +01:00
committed by Michel Dänzer
parent 21d65e5b78
commit ce7db51020

View File

@@ -781,11 +781,17 @@ drmmode_crtc_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode,
*fb = radeon_pixmap_get_fb(drmmode_crtc->scanout[scanout_id].pixmap);
*x = *y = 0;
radeon_scanout_do_update(crtc, scanout_id,
screen->GetWindowPixmap(screen->root),
extents);
RegionEmpty(DamageRegion(drmmode_crtc->scanout_damage));
radeon_finish(scrn, drmmode_crtc->scanout[scanout_id].bo);
if (radeon_scanout_do_update(crtc, scanout_id,
screen->GetWindowPixmap(screen->root),
extents)) {
RegionEmpty(DamageRegion(drmmode_crtc->scanout_damage));
radeon_glamor_finish(scrn);
if (!drmmode_crtc->flip_pending) {
radeon_drm_abort_entry(drmmode_crtc->
scanout_update_pending);
}
}
}
}