From 244403ec8718d782d57a830ece9357a75a0dd70b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Mon, 19 Apr 2021 18:01:52 +0200 Subject: [PATCH] xwayland/present: Fold present_wnmd_abort_vblank into its only caller No need for them to be separate anymore. Acked-by: Olivier Fourdan --- hw/xwayland/xwayland-present.c | 64 ++++++++++++++-------------------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/hw/xwayland/xwayland-present.c b/hw/xwayland/xwayland-present.c index b24dff9a2..6adff2a60 100644 --- a/hw/xwayland/xwayland-present.c +++ b/hw/xwayland/xwayland-present.c @@ -635,31 +635,6 @@ present_wnmd_pixmap(WindowPtr window, return Success; } -static void -present_wnmd_abort_vblank(ScreenPtr screen, WindowPtr window, RRCrtcPtr crtc, uint64_t event_id, uint64_t msc) -{ - struct xwl_present_window *xwl_present_window = xwl_present_window_priv(window); - present_screen_priv_ptr screen_priv = present_screen_priv(screen); - present_vblank_ptr vblank; - - (*screen_priv->wnmd_info->abort_vblank) (window, crtc, event_id, msc); - - xorg_list_for_each_entry(vblank, &xwl_present_window->exec_queue, event_queue) { - if (vblank->event_id == event_id) { - xorg_list_del(&vblank->event_queue); - vblank->queued = FALSE; - return; - } - } - xorg_list_for_each_entry(vblank, &xwl_present_window->flip_queue, event_queue) { - if (vblank->event_id == event_id) { - xorg_list_del(&vblank->event_queue); - vblank->queued = FALSE; - return; - } - } -} - static void xwl_present_release_pixmap(struct xwl_present_event *event) @@ -903,27 +878,43 @@ xwl_present_queue_vblank(WindowPtr present_window, * to the extension */ static void -xwl_present_abort_vblank(WindowPtr present_window, +xwl_present_abort_vblank(ScreenPtr screen, + WindowPtr present_window, RRCrtcPtr crtc, uint64_t event_id, uint64_t msc) { struct xwl_present_window *xwl_present_window = xwl_present_window_priv(present_window); struct xwl_present_event *event, *tmp; + present_vblank_ptr vblank; - if (!xwl_present_window) - return; + if (xwl_present_window) { + xorg_list_for_each_entry_safe(event, tmp, &xwl_present_window->wait_list, list) { + if (event->event_id == event_id) { + xwl_present_free_event(event); + break; + } + } - xorg_list_for_each_entry_safe(event, tmp, &xwl_present_window->wait_list, list) { - if (event->event_id == event_id) { - xwl_present_free_event(event); - return; + xorg_list_for_each_entry(event, &xwl_present_window->release_list, list) { + if (event->event_id == event_id) { + event->abort = TRUE; + break; + } } } - xorg_list_for_each_entry(event, &xwl_present_window->release_list, list) { - if (event->event_id == event_id) { - event->abort = TRUE; + xorg_list_for_each_entry(vblank, &xwl_present_window->exec_queue, event_queue) { + if (vblank->event_id == event_id) { + xorg_list_del(&vblank->event_queue); + vblank->queued = FALSE; + return; + } + } + xorg_list_for_each_entry(vblank, &xwl_present_window->flip_queue, event_queue) { + if (vblank->event_id == event_id) { + xorg_list_del(&vblank->event_queue); + vblank->queued = FALSE; return; } } @@ -1186,7 +1177,6 @@ static present_wnmd_info_rec xwl_present_info = { .get_ust_msc = xwl_present_get_ust_msc, .queue_vblank = xwl_present_queue_vblank, - .abort_vblank = xwl_present_abort_vblank, .capabilities = PresentCapabilityAsync, .check_flip2 = xwl_present_check_flip2, @@ -1229,7 +1219,7 @@ xwl_present_init(ScreenPtr screen) screen_priv->flush = xwl_present_flush; screen_priv->re_execute = present_wnmd_re_execute; - screen_priv->abort_vblank = present_wnmd_abort_vblank; + screen_priv->abort_vblank = xwl_present_abort_vblank; return TRUE; }