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
This commit is contained in:
Carlos Garnacho 2017-04-30 20:49:26 +02:00
parent d0bfb94ff0
commit d6d01c85a6

View File

@ -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);
}
}