diff --git a/video/out/gl_wayland.c b/video/out/gl_wayland.c index 2a565a36d6..a6a23bd180 100644 --- a/video/out/gl_wayland.c +++ b/video/out/gl_wayland.c @@ -210,6 +210,11 @@ static void swapGlBuffers_wayland(MPGLContext *ctx) { struct vo_wayland_state *wl = ctx->vo->wayland; + if (!wl->frame.callback) + vo_wayland_request_frame(ctx->vo, NULL, NULL); + + if (!vo_wayland_wait_frame(ctx->vo)) + MP_DBG(wl, "discarding frame callback\n"); eglSwapBuffers(wl->egl_context.egl.dpy, wl->egl_context.egl_surface); }