summaryrefslogtreecommitdiffstats
path: root/video/out/wayland_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/wayland_common.c')
-rw-r--r--video/out/wayland_common.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c
index 73949f4555..d42758a7bc 100644
--- a/video/out/wayland_common.c
+++ b/video/out/wayland_common.c
@@ -1609,19 +1609,19 @@ void vo_wayland_wait_frame(struct vo_wayland_state *wl)
while (wl->frame_wait && finish_time > mp_time_us()) {
- while (wl_display_prepare_read(wl->display) != 0)
- wl_display_dispatch_pending(wl->display);
- wl_display_flush(wl->display);
-
- int poll_time = (finish_time - mp_time_us()) / 1000;
+ int poll_time = ceil((double)(finish_time - mp_time_us()) / 1000);
if (poll_time < 0) {
poll_time = 0;
}
+ while (wl_display_prepare_read(wl->display) != 0)
+ wl_display_dispatch_pending(wl->display);
+ wl_display_flush(wl->display);
+
poll(fds, 1, poll_time);
wl_display_read_events(wl->display);
- wl_display_dispatch_pending(wl->display);
+ wl_display_roundtrip(wl->display);
}
if (wl->frame_wait) {