Lines Matching full:vblank
30 present_vblank_notify(present_vblank_ptr vblank, CARD8 kind, CARD8 mode, uint64_t ust, uint64_t crt… in present_vblank_notify() argument
34 if (vblank->window) in present_vblank_notify()
35 …present_send_complete_notify(vblank->window, kind, mode, vblank->serial, ust, crtc_msc - vblank->m… in present_vblank_notify()
36 for (n = 0; n < vblank->num_notifies; n++) { in present_vblank_notify()
37 WindowPtr window = vblank->notifies[n].window; in present_vblank_notify()
38 CARD32 serial = vblank->notifies[n].serial; in present_vblank_notify()
41 … present_send_complete_notify(window, kind, mode, serial, ust, crtc_msc - vblank->msc_offset); in present_vblank_notify()
66 present_vblank_ptr vblank; in present_vblank_create() local
69 vblank = calloc (1, sizeof (present_vblank_rec)); in present_vblank_create()
70 if (!vblank) in present_vblank_create()
73 xorg_list_append(&vblank->window_list, &window_priv->vblank); in present_vblank_create()
74 xorg_list_init(&vblank->event_queue); in present_vblank_create()
76 vblank->screen = screen; in present_vblank_create()
77 vblank->window = window; in present_vblank_create()
78 vblank->pixmap = pixmap; in present_vblank_create()
80 screen_priv->create_event_id(window_priv, vblank); in present_vblank_create()
83 vblank->kind = PresentCompleteKindPixmap; in present_vblank_create()
86 vblank->kind = PresentCompleteKindNotifyMSC; in present_vblank_create()
88 vblank->serial = serial; in present_vblank_create()
91 vblank->valid = RegionDuplicate(valid); in present_vblank_create()
92 if (!vblank->valid) in present_vblank_create()
96 vblank->update = RegionDuplicate(update); in present_vblank_create()
97 if (!vblank->update) in present_vblank_create()
101 vblank->x_off = x_off; in present_vblank_create()
102 vblank->y_off = y_off; in present_vblank_create()
103 vblank->target_msc = target_msc; in present_vblank_create()
104 vblank->exec_msc = target_msc; in present_vblank_create()
105 vblank->crtc = target_crtc; in present_vblank_create()
106 vblank->msc_offset = window_priv->msc_offset; in present_vblank_create()
107 vblank->notifies = notifies; in present_vblank_create()
108 vblank->num_notifies = num_notifies; in present_vblank_create()
109 vblank->has_suboptimal = (options & PresentOptionSuboptimal); in present_vblank_create()
110 vblank->flip_idler = FALSE; in present_vblank_create()
118 vblank->flip = TRUE; in present_vblank_create()
119 vblank->sync_flip = TRUE; in present_vblank_create()
123 vblank->flip = TRUE; in present_vblank_create()
126 vblank->reason = reason; in present_vblank_create()
129 vblank->wait_fence = present_fence_create(wait_fence); in present_vblank_create()
130 if (!vblank->wait_fence) in present_vblank_create()
135 vblank->idle_fence = present_fence_create(idle_fence); in present_vblank_create()
136 if (!vblank->idle_fence) in present_vblank_create()
142 vblank->event_id, vblank, target_msc, in present_vblank_create()
143 vblank->pixmap->drawable.id, vblank->window->drawable.id, in present_vblank_create()
144 target_crtc, vblank->flip, vblank->sync_flip, vblank->serial)); in present_vblank_create()
145 return vblank; in present_vblank_create()
148 vblank->notifies = NULL; in present_vblank_create()
149 present_vblank_destroy(vblank); in present_vblank_create()
154 present_vblank_scrap(present_vblank_ptr vblank) in present_vblank_scrap() argument
157 vblank->event_id, vblank, vblank->exec_msc, vblank->target_msc, in present_vblank_scrap()
158 vblank->pixmap->drawable.id, vblank->window->drawable.id, in present_vblank_scrap()
159 vblank->crtc)); in present_vblank_scrap()
161 present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence); in present_vblank_scrap()
162 present_fence_destroy(vblank->idle_fence); in present_vblank_scrap()
163 dixDestroyPixmap(vblank->pixmap, vblank->pixmap->drawable.id); in present_vblank_scrap()
165 vblank->pixmap = NULL; in present_vblank_scrap()
166 vblank->idle_fence = NULL; in present_vblank_scrap()
167 vblank->flip = FALSE; in present_vblank_scrap()
171 present_vblank_destroy(present_vblank_ptr vblank) in present_vblank_destroy() argument
173 /* Remove vblank from window and screen lists */ in present_vblank_destroy()
174 xorg_list_del(&vblank->window_list); in present_vblank_destroy()
175 /* Also make sure vblank is removed from event queue (wnmd) */ in present_vblank_destroy()
176 xorg_list_del(&vblank->event_queue); in present_vblank_destroy()
179 vblank->event_id, vblank, vblank->exec_msc, vblank->target_msc, in present_vblank_destroy()
180 vblank->pixmap ? vblank->pixmap->drawable.id : 0, in present_vblank_destroy()
181 vblank->window ? vblank->window->drawable.id : 0)); in present_vblank_destroy()
184 if (vblank->pixmap) in present_vblank_destroy()
185 dixDestroyPixmap(vblank->pixmap, vblank->pixmap->drawable.id); in present_vblank_destroy()
188 if (vblank->valid) in present_vblank_destroy()
189 RegionDestroy(vblank->valid); in present_vblank_destroy()
190 if (vblank->update) in present_vblank_destroy()
191 RegionDestroy(vblank->update); in present_vblank_destroy()
193 if (vblank->wait_fence) in present_vblank_destroy()
194 present_fence_destroy(vblank->wait_fence); in present_vblank_destroy()
196 if (vblank->idle_fence) in present_vblank_destroy()
197 present_fence_destroy(vblank->idle_fence); in present_vblank_destroy()
199 if (vblank->notifies) in present_vblank_destroy()
200 present_destroy_notifies(vblank->notifies, vblank->num_notifies); in present_vblank_destroy()
202 free(vblank); in present_vblank_destroy()