diff options
Diffstat (limited to 'src/platform/wayland/backend.c')
| -rw-r--r-- | src/platform/wayland/backend.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/platform/wayland/backend.c b/src/platform/wayland/backend.c index f6207ed..26d88f6 100644 --- a/src/platform/wayland/backend.c +++ b/src/platform/wayland/backend.c @@ -30,7 +30,9 @@ static void impl_display_check(struct yasl_private_display *d) static bool impl_surface_frame_in_flight(const struct yasl_surface *s) { - return ((const struct wayland_surface *)s)->frame_cb != NULL; + struct wayland_surface *w = (struct wayland_surface *)s; + /* A swap on a rendering thread is in flight before the owner arms its callback. */ + return w->frame_cb != NULL || atomic_load(&w->frame_deferred); } static void impl_display_flush(struct yasl_private_display *d) |
