present: Set complete notify mode to Skip as needed
Skipped present pixmap calls were not setting the mode to PresentCompleteModeSkip for skipped operations. Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
e487babd52
commit
2eb9915eea
|
@ -525,6 +525,7 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
|
||||||
WindowPtr window = vblank->window;
|
WindowPtr window = vblank->window;
|
||||||
ScreenPtr screen = window->drawable.pScreen;
|
ScreenPtr screen = window->drawable.pScreen;
|
||||||
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
|
present_screen_priv_ptr screen_priv = present_screen_priv(screen);
|
||||||
|
uint8_t mode;
|
||||||
|
|
||||||
if (vblank->wait_fence) {
|
if (vblank->wait_fence) {
|
||||||
if (!present_fence_check_triggered(vblank->wait_fence)) {
|
if (!present_fence_check_triggered(vblank->wait_fence)) {
|
||||||
|
@ -604,7 +605,20 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
|
||||||
|
|
||||||
present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence);
|
present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence);
|
||||||
}
|
}
|
||||||
present_vblank_notify(vblank, vblank->kind, PresentCompleteModeCopy, ust, crtc_msc);
|
|
||||||
|
/* Compute correct CompleteMode
|
||||||
|
*/
|
||||||
|
if (vblank->kind == PresentCompleteKindPixmap) {
|
||||||
|
if (vblank->pixmap && vblank->window)
|
||||||
|
mode = PresentCompleteModeCopy;
|
||||||
|
else
|
||||||
|
mode = PresentCompleteModeSkip;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
mode = PresentCompleteModeCopy;
|
||||||
|
|
||||||
|
|
||||||
|
present_vblank_notify(vblank, vblank->kind, mode, ust, crtc_msc);
|
||||||
present_vblank_destroy(vblank);
|
present_vblank_destroy(vblank);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue