kms/impl-device: Put deadline timer disarming in a helper
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3982>
This commit is contained in:
parent
d017bf3af7
commit
1d87bcaab2
1 changed files with 20 additions and 10 deletions
|
@ -2027,6 +2027,25 @@ needs_flush:
|
|||
meta_kms_device_set_needs_flush (meta_kms_crtc_get_device (crtc), crtc);
|
||||
}
|
||||
|
||||
static void
|
||||
disarm_all_deadline_timers (MetaKmsImplDevice *impl_device)
|
||||
{
|
||||
MetaKmsImplDevicePrivate *priv =
|
||||
meta_kms_impl_device_get_instance_private (impl_device);
|
||||
GHashTableIter iter;
|
||||
CrtcFrame *crtc_frame;
|
||||
|
||||
g_hash_table_iter_init (&iter, priv->crtc_frames);
|
||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &crtc_frame))
|
||||
{
|
||||
crtc_frame->deadline.is_deadline_page_flip = FALSE;
|
||||
crtc_frame->await_flush = FALSE;
|
||||
crtc_frame->pending_page_flip = FALSE;
|
||||
g_clear_pointer (&crtc_frame->pending_update, meta_kms_update_free);
|
||||
disarm_crtc_frame_deadline_timer (crtc_frame);
|
||||
}
|
||||
}
|
||||
|
||||
static MetaKmsFeedback *
|
||||
process_mode_set_update (MetaKmsImplDevice *impl_device,
|
||||
MetaKmsUpdate *update,
|
||||
|
@ -2040,7 +2059,6 @@ process_mode_set_update (MetaKmsImplDevice *impl_device,
|
|||
MetaKmsFeedback *feedback;
|
||||
CrtcFrame *crtc_frame;
|
||||
GList *l;
|
||||
GHashTableIter iter;
|
||||
|
||||
for (l = meta_kms_update_get_mode_sets (update); l; l = l->next)
|
||||
{
|
||||
|
@ -2059,15 +2077,7 @@ process_mode_set_update (MetaKmsImplDevice *impl_device,
|
|||
update = g_steal_pointer (&crtc_frame->pending_update);
|
||||
}
|
||||
|
||||
g_hash_table_iter_init (&iter, priv->crtc_frames);
|
||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &crtc_frame))
|
||||
{
|
||||
crtc_frame->deadline.is_deadline_page_flip = FALSE;
|
||||
crtc_frame->await_flush = FALSE;
|
||||
crtc_frame->pending_page_flip = FALSE;
|
||||
g_clear_pointer (&crtc_frame->pending_update, meta_kms_update_free);
|
||||
disarm_crtc_frame_deadline_timer (crtc_frame);
|
||||
}
|
||||
disarm_all_deadline_timers (impl_device);
|
||||
|
||||
meta_thread_inhibit_realtime_in_impl (thread);
|
||||
feedback = do_process (impl_device, NULL, update, flags);
|
||||
|
|
Loading…
Reference in a new issue