summaryrefslogtreecommitdiff
path: root/hw/xwayland/xwayland-present.c
diff options
context:
space:
mode:
authorMichel Dänzer <mdaenzer@redhat.com>2021-04-19 18:01:52 +0200
committerMichel Dänzer <michel@daenzer.net>2021-07-09 16:13:32 +0200
commit244403ec8718d782d57a830ece9357a75a0dd70b (patch)
treeafbd3f73258bd4d9be98cc0b54891211e9ee6529 /hw/xwayland/xwayland-present.c
parentf7adbc2166b7a4662cbd69507d8cbac11034c87e (diff)
xwayland/present: Fold present_wnmd_abort_vblank into its only caller
No need for them to be separate anymore. Acked-by: Olivier Fourdan <ofourdan@redhat.com>
Diffstat (limited to 'hw/xwayland/xwayland-present.c')
-rw-r--r--hw/xwayland/xwayland-present.c64
1 files 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;
}