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:
parent
d0bfb94ff0
commit
d6d01c85a6
@ -179,12 +179,14 @@ meta_wayland_compositor_update (MetaWaylandCompositor *compositor,
|
|||||||
void
|
void
|
||||||
meta_wayland_compositor_paint_finished (MetaWaylandCompositor *compositor)
|
meta_wayland_compositor_paint_finished (MetaWaylandCompositor *compositor)
|
||||||
{
|
{
|
||||||
|
gint64 current_time = g_get_monotonic_time ();
|
||||||
|
|
||||||
while (!wl_list_empty (&compositor->frame_callbacks))
|
while (!wl_list_empty (&compositor->frame_callbacks))
|
||||||
{
|
{
|
||||||
MetaWaylandFrameCallback *callback =
|
MetaWaylandFrameCallback *callback =
|
||||||
wl_container_of (compositor->frame_callbacks.next, callback, link);
|
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);
|
wl_resource_destroy (callback->resource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user