From d6d01c85a61aaad7ff468f7896d34efe17077c1a Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sun, 30 Apr 2017 20:49:26 +0200 Subject: [PATCH] wayland: Collect frame completion time once for all surfaces Dispatch all surface frames with the same monotonic time to avoid querying it too often. https://bugzilla.gnome.org/show_bug.cgi?id=782344 --- src/wayland/meta-wayland.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c index 03cccdb88..7bbd0961d 100644 --- a/src/wayland/meta-wayland.c +++ b/src/wayland/meta-wayland.c @@ -179,12 +179,14 @@ meta_wayland_compositor_update (MetaWaylandCompositor *compositor, void meta_wayland_compositor_paint_finished (MetaWaylandCompositor *compositor) { + gint64 current_time = g_get_monotonic_time (); + while (!wl_list_empty (&compositor->frame_callbacks)) { MetaWaylandFrameCallback *callback = wl_container_of (compositor->frame_callbacks.next, callback, link); - wl_callback_send_done (callback->resource, g_get_monotonic_time () / 1000); + wl_callback_send_done (callback->resource, current_time / 1000); wl_resource_destroy (callback->resource); } }