diff --git a/present/present_priv.h b/present/present_priv.h index ba607e279..3fba10d73 100644 --- a/present/present_priv.h +++ b/present/present_priv.h @@ -206,12 +206,22 @@ typedef struct present_event { } present_event_rec; typedef struct present_window_priv { + WindowPtr window; present_event_ptr events; RRCrtcPtr crtc; /* Last reported CRTC from get_ust_msc */ uint64_t msc_offset; uint64_t msc; /* Last reported MSC from the current crtc */ struct xorg_list vblank; struct xorg_list notifies; + + /* Used for window flips */ + uint64_t event_id; + struct xorg_list exec_queue; + struct xorg_list flip_queue; + struct xorg_list idle_queue; + + present_vblank_ptr flip_pending; + present_vblank_ptr flip_active; } present_window_priv_rec, *present_window_priv_ptr; #define PresentCrtcNeverSet ((RRCrtcPtr) 1) diff --git a/present/present_screen.c b/present/present_screen.c index 868eaf85b..d6c9a5e39 100644 --- a/present/present_screen.c +++ b/present/present_screen.c @@ -45,6 +45,12 @@ present_get_window_priv(WindowPtr window, Bool create) return NULL; xorg_list_init(&window_priv->vblank); xorg_list_init(&window_priv->notifies); + + xorg_list_init(&window_priv->exec_queue); + xorg_list_init(&window_priv->flip_queue); + xorg_list_init(&window_priv->idle_queue); + + window_priv->window = window; window_priv->crtc = PresentCrtcNeverSet; dixSetPrivate(&window->devPrivates, &present_window_private_key, window_priv); return window_priv;