Lines Matching full:vblank
47 present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc);
51 present_vblank_ptr vblank) in present_scmd_create_event_id() argument
53 vblank->event_id = ++present_event_id; in present_scmd_create_event_id()
256 present_re_execute(present_vblank_ptr vblank) in present_re_execute() argument
260 if (vblank->crtc) in present_re_execute()
261 (void) present_get_ust_msc(vblank->screen, vblank->crtc, &ust, &crtc_msc); in present_re_execute()
263 present_execute(vblank, ust, crtc_msc); in present_re_execute()
269 present_vblank_ptr vblank; in present_flip_try_ready() local
271 xorg_list_for_each_entry(vblank, &present_flip_queue, event_queue) { in present_flip_try_ready()
272 if (vblank->queued) { in present_flip_try_ready()
273 present_re_execute(vblank); in present_flip_try_ready()
359 present_flip_notify(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) in present_flip_notify() argument
361 ScreenPtr screen = vblank->screen; in present_flip_notify()
365 vblank->event_id, vblank, vblank->exec_msc, vblank->target_msc, in present_flip_notify()
366 vblank->pixmap ? vblank->pixmap->drawable.id : 0, in present_flip_notify()
367 vblank->window ? vblank->window->drawable.id : 0)); in present_flip_notify()
369 assert (vblank == screen_priv->flip_pending); in present_flip_notify()
373 xorg_list_del(&vblank->event_queue); in present_flip_notify()
375 /* Transfer reference for pixmap and fence from vblank to screen_priv */ in present_flip_notify()
376 screen_priv->flip_crtc = vblank->crtc; in present_flip_notify()
377 screen_priv->flip_window = vblank->window; in present_flip_notify()
378 screen_priv->flip_serial = vblank->serial; in present_flip_notify()
379 screen_priv->flip_pixmap = vblank->pixmap; in present_flip_notify()
380 screen_priv->flip_sync = vblank->sync_flip; in present_flip_notify()
381 screen_priv->flip_idle_fence = vblank->idle_fence; in present_flip_notify()
383 vblank->pixmap = NULL; in present_flip_notify()
384 vblank->idle_fence = NULL; in present_flip_notify()
388 if (vblank->abort_flip) in present_flip_notify()
391 … present_vblank_notify(vblank, PresentCompleteKindPixmap, PresentCompleteModeFlip, ust, crtc_msc); in present_flip_notify()
392 present_vblank_destroy(vblank); in present_flip_notify()
400 present_vblank_ptr vblank; in present_event_notify() local
406 xorg_list_for_each_entry(vblank, &present_exec_queue, event_queue) { in present_event_notify()
407 int64_t match = event_id - vblank->event_id; in present_event_notify()
409 present_execute(vblank, ust, msc); in present_event_notify()
413 xorg_list_for_each_entry(vblank, &present_flip_queue, event_queue) { in present_event_notify()
414 if (vblank->event_id == event_id) { in present_event_notify()
415 if (vblank->queued) in present_event_notify()
416 present_execute(vblank, ust, msc); in present_event_notify()
418 present_flip_notify(vblank, ust, msc); in present_event_notify()
448 present_vblank_ptr vblank; in present_check_flip_window() local
480 xorg_list_for_each_entry(vblank, &window_priv->vblank, window_list) { in present_check_flip_window()
481 …if (vblank->queued && vblank->flip && !present_check_flip(vblank->crtc, window, vblank->pixmap, vb… in present_check_flip_window()
482 vblank->flip = FALSE; in present_check_flip_window()
483 vblank->reason = reason; in present_check_flip_window()
484 if (vblank->sync_flip) in present_check_flip_window()
485 vblank->exec_msc = vblank->target_msc; in present_check_flip_window()
539 present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) in present_execute() argument
541 WindowPtr window = vblank->window; in present_execute()
545 if (present_execute_wait(vblank, crtc_msc)) in present_execute()
548 if (vblank->flip && vblank->pixmap && vblank->window) { in present_execute()
551 vblank->event_id, vblank, in present_execute()
553 xorg_list_del(&vblank->event_queue); in present_execute()
554 xorg_list_append(&vblank->event_queue, &present_flip_queue); in present_execute()
555 vblank->flip_ready = TRUE; in present_execute()
560 xorg_list_del(&vblank->event_queue); in present_execute()
561 xorg_list_del(&vblank->window_list); in present_execute()
562 vblank->queued = FALSE; in present_execute()
564 if (vblank->pixmap && vblank->window) { in present_execute()
566 if (vblank->flip) { in present_execute()
569 vblank->event_id, vblank, crtc_msc, in present_execute()
570 vblank->pixmap->drawable.id, vblank->window->drawable.id)); in present_execute()
575 screen_priv->flip_pending = vblank; in present_execute()
577 xorg_list_add(&vblank->event_queue, &present_flip_queue); in present_execute()
580 …if (present_flip(vblank->crtc, vblank->event_id, vblank->target_msc, vblank->pixmap, vblank->sync_… in present_execute()
591 present_set_tree_pixmap(vblank->window, NULL, vblank->pixmap); in present_execute()
592 present_set_tree_pixmap(screen->root, NULL, vblank->pixmap); in present_execute()
596 if (vblank->update) { in present_execute()
597 damage = vblank->update; in present_execute()
602 DamageDamageRegion(&vblank->window->drawable, damage); in present_execute()
606 xorg_list_del(&vblank->event_queue); in present_execute()
610 vblank->flip = FALSE; in present_execute()
611 vblank->exec_msc = vblank->target_msc; in present_execute()
614 vblank, crtc_msc, vblank->pixmap->drawable.id, vblank->window->drawable.id)); in present_execute()
629 present_execute_copy(vblank, crtc_msc); in present_execute()
631 if (vblank->queued) { in present_execute()
632 xorg_list_add(&vblank->event_queue, &present_exec_queue); in present_execute()
633 xorg_list_append(&vblank->window_list, in present_execute()
634 &present_get_window_priv(window, TRUE)->vblank); in present_execute()
639 present_execute_post(vblank, ust, crtc_msc); in present_execute()
664 present_vblank_ptr vblank, tmp; in present_scmd_pixmap() local
707 xorg_list_for_each_entry_safe(vblank, tmp, &window_priv->vblank, window_list) { in present_scmd_pixmap()
709 if (!vblank->pixmap) in present_scmd_pixmap()
712 if (!vblank->queued) in present_scmd_pixmap()
715 if (vblank->crtc != target_crtc || vblank->target_msc != target_msc) in present_scmd_pixmap()
719 vblank->event_id, vblank, vblank->target_msc, in present_scmd_pixmap()
720 vblank->pixmap->drawable.id, vblank->window->drawable.id, in present_scmd_pixmap()
721 vblank->crtc)); in present_scmd_pixmap()
723 present_pixmap_idle(vblank->pixmap, vblank->window, vblank->serial, vblank->idle_fence); in present_scmd_pixmap()
724 present_fence_destroy(vblank->idle_fence); in present_scmd_pixmap()
725 dixDestroyPixmap(vblank->pixmap, vblank->pixmap->drawable.id); in present_scmd_pixmap()
727 vblank->pixmap = NULL; in present_scmd_pixmap()
728 vblank->idle_fence = NULL; in present_scmd_pixmap()
729 vblank->flip = FALSE; in present_scmd_pixmap()
730 if (vblank->flip_ready) in present_scmd_pixmap()
731 present_re_execute(vblank); in present_scmd_pixmap()
735 vblank = present_vblank_create(window, in present_scmd_pixmap()
752 if (!vblank) in present_scmd_pixmap()
755 if (vblank->flip && vblank->sync_flip) in present_scmd_pixmap()
756 vblank->exec_msc--; in present_scmd_pixmap()
758 xorg_list_append(&vblank->event_queue, &present_exec_queue); in present_scmd_pixmap()
759 vblank->queued = TRUE; in present_scmd_pixmap()
760 if (msc_is_after(vblank->exec_msc, crtc_msc)) { in present_scmd_pixmap()
761 ret = present_queue_vblank(screen, window, target_crtc, vblank->event_id, vblank->exec_msc); in present_scmd_pixmap()
768 present_execute(vblank, ust, crtc_msc); in present_scmd_pixmap()
776 present_vblank_ptr vblank; in present_scmd_abort_vblank() local
787 xorg_list_for_each_entry(vblank, &present_exec_queue, event_queue) { in present_scmd_abort_vblank()
788 int64_t match = event_id - vblank->event_id; in present_scmd_abort_vblank()
790 xorg_list_del(&vblank->event_queue); in present_scmd_abort_vblank()
791 vblank->queued = FALSE; in present_scmd_abort_vblank()
795 xorg_list_for_each_entry(vblank, &present_flip_queue, event_queue) { in present_scmd_abort_vblank()
796 if (vblank->event_id == event_id) { in present_scmd_abort_vblank()
797 xorg_list_del(&vblank->event_queue); in present_scmd_abort_vblank()
798 vblank->queued = FALSE; in present_scmd_abort_vblank()