summaryrefslogtreecommitdiff
path: root/hw/xwayland/xwayland-present.c
diff options
context:
space:
mode:
authorMichel Dänzer <mdaenzer@redhat.com>2021-05-07 18:16:23 +0200
committerMichel Dänzer <michel@daenzer.net>2021-07-09 16:18:56 +0200
commitf73340445fe1da9ae9bc3197eb2ef41589aa2a4e (patch)
tree3b57a33a12d8e2556c29fb779c377d7a8a744998 /hw/xwayland/xwayland-present.c
parentaac31d2758d4e84774b633ec108d18f0bad6ef64 (diff)
xwayland/present: Drop list member from struct xwl_present_event
Use present_vblank_rec::event_queue instead. The changes in xwl_present_execute shouldn't really be needed, since we should never hit queue_vblank in present_execute_wait. But let's be safe rather than sorry, plus this simplifies the code. Acked-by: Olivier Fourdan <ofourdan@redhat.com>
Diffstat (limited to 'hw/xwayland/xwayland-present.c')
-rw-r--r--hw/xwayland/xwayland-present.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/hw/xwayland/xwayland-present.c b/hw/xwayland/xwayland-present.c
index d1eb0dfd3..07f1ed5e9 100644
--- a/hw/xwayland/xwayland-present.c
+++ b/hw/xwayland/xwayland-present.c
@@ -213,7 +213,7 @@ static void
xwl_present_release_event(struct xwl_present_event *event)
{
xwl_present_release_pixmap(event);
- xorg_list_del(&event->list);
+ xorg_list_del(&event->vblank.event_queue);
}
static void
@@ -407,10 +407,8 @@ xwl_present_msc_bump(struct xwl_present_window *xwl_present_window)
xorg_list_for_each_entry_safe(event, tmp,
&xwl_present_window->wait_list,
- list) {
+ vblank.event_queue) {
if (event->target_msc <= msc) {
- xorg_list_del(&event->list);
-
DebugPresent(("\te %" PRIu64 " ust %" PRIu64 " msc %" PRIu64 "\n",
event->vblank.event_id, xwl_present_window->ust, msc));
@@ -506,8 +504,8 @@ xwl_present_queue_vblank(ScreenPtr screen,
event->target_msc = msc;
- xorg_list_del(&event->list);
- xorg_list_append(&event->list, &xwl_present_window->wait_list);
+ xorg_list_del(&event->vblank.event_queue);
+ xorg_list_append(&event->vblank.event_queue, &xwl_present_window->wait_list);
/* If there's a pending frame callback, use that */
if (xwl_window && xwl_window->frame_callback &&
@@ -702,8 +700,6 @@ xwl_present_flip(WindowPtr present_window,
event->target_msc = target_msc;
event->pending = TRUE;
- xorg_list_init(&event->list);
-
xwl_pixmap_set_buffer_release_cb(pixmap, xwl_present_buffer_release, event);
/* We can flip directly to the main surface (full screen window without clips) */
@@ -757,19 +753,19 @@ xwl_present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
struct xwl_present_window *xwl_present_window = xwl_present_window_get_priv(window);
present_vblank_ptr flip_pending = xwl_present_get_pending_flip(xwl_present_window);
+ xorg_list_del(&vblank->event_queue);
+
if (present_execute_wait(vblank, crtc_msc))
return;
if (flip_pending && vblank->flip && vblank->pixmap && vblank->window) {
DebugPresent(("\tr %" PRIu64 " %p (pending %p)\n",
vblank->event_id, vblank, flip_pending));
- xorg_list_del(&vblank->event_queue);
xorg_list_append(&vblank->event_queue, &xwl_present_window->flip_queue);
vblank->flip_ready = TRUE;
return;
}
- xorg_list_del(&vblank->event_queue);
vblank->queued = FALSE;
if (vblank->pixmap && vblank->window) {
@@ -926,8 +922,6 @@ xwl_present_pixmap(WindowPtr window,
vblank->event_id = (uintptr_t)event;
- xorg_list_init(&event->list);
-
/* Xwayland presentations always complete (at least) one frame after they
* are executed
*/