Home | History | Annotate | Download | only in sna

Lines Matching refs:msc

85 static inline bool msc_before(uint64_t msc, uint64_t target)
87 return (int64_t)(msc - target) < 0;
142 uint64_t ust, uint64_t msc)
150 if (msc_before(msc, info->target_msc)) {
154 (long long)msc, (long long)info->target_msc));
155 if (sna_present_queue(info, msc))
161 DBG(("%s: pipe=%d tv=%d.%06d msc=%lld (target=%lld), event=%lld complete%s\n", __FUNCTION__,
164 (long long)msc, (long long)info->target_msc,
166 info->target_msc && msc == (uint32_t)info->target_msc ? "" : ": MISS"));
167 present_event_notify(info->event_id[n], ust, msc);
187 delay = target - swap->msc;
204 (int)(target - swap->msc), (long long)delay));
223 uint64_t msc, ust;
233 msc = sna_crtc_record_vblank(info->crtc, &vbl);
234 DBG(("%s: event=%lld, target msc=%lld, now %lld\n",
235 __FUNCTION__, (long long)info->event_id[0], (long long)info->target_msc, (long long)msc));
236 if (msc_before(msc, info->target_msc)) {
237 int delta = info->target_msc - msc;
241 assert(info->target_msc - msc < 1ull<<31);
268 msc = sna_crtc_record_vblank(info->crtc, &vbl);
278 msc = info->target_msc;
279 DBG(("%s: event=%lld, CRTC OFF, target msc=%lld, was %lld (off)\n",
280 __FUNCTION__, (long long)info->event_id[0], (long long)info->target_msc, (long long)sna_crtc_last_swap(info->crtc)->msc));
283 vblank_complete(info, ust, msc);
293 if (msc_before(swap->msc, info->target_msc))
298 DBG(("%s(event=%lldx%d, target_msc=%lld, msc=%lld, delay=%ums)\n",
300 (long long)info->target_msc, (long long)swap->msc, delay));
302 uint64_t ust, msc;
304 if (msc_before(swap->msc, info->target_msc)) {
306 msc = info->target_msc;
309 msc = swap->msc;
313 vblank_complete(info, ust, msc);
326 DBG(("%s: target msc=%llu, seq=%u (last_msc=%llu), delta=%d\n",
376 static void add_keepalive(struct sna *sna, xf86CrtcPtr crtc, uint64_t msc)
383 if (tmp->target_msc == msc) {
385 __FUNCTION__, (long long)msc));
389 if ((int64_t)(tmp->target_msc - msc) > 0)
394 __FUNCTION__, (long long)msc));
402 info->target_msc = msc;
408 vbl.request.sequence = msc;
420 sna_present_get_ust_msc(RRCrtcPtr crtc, CARD64 *ust, CARD64 *msc)
427 DBG(("%s: vblank active, reusing last swap msc/ust\n",
437 *msc = sna_crtc_record_vblank(crtc->devPrivate, &vbl);
439 add_keepalive(sna, crtc->devPrivate, *msc + 1);
445 *msc = swap->msc;
448 DBG(("%s: pipe=%d, tv=%d.%06d seq=%d msc=%lld\n", __FUNCTION__,
451 vbl.reply.sequence, (long long)*msc));
460 uint64_t msc;
474 msc = sna_crtc_record_event(info->crtc, event);
476 vblank_complete(info, ust64(event->tv_sec, event->tv_usec), msc);
480 sna_present_queue_vblank(RRCrtcPtr crtc, uint64_t event_id, uint64_t msc)
491 DBG(("%s(pipe=%d, event=%lld, msc=%lld, last swap=%lld)\n",
493 (long long)event_id, (long long)msc, (long long)swap->msc));
495 if (warn_unless((int64_t)(msc - swap->msc) >= 0)) {
496 DBG(("%s: pipe=%d tv=%d.%06d msc=%lld (target=%lld), event=%lld complete\n", __FUNCTION__,
499 (long long)swap->msc, (long long)msc,
501 present_event_notify(event_id, swap_ust(swap), swap->msc);
504 if (warn_unless(msc - swap->msc < 1ull<<31))
509 if (tmp->target_msc == msc) {
527 __FUNCTION__, (long long)event_id, (long long)msc, tmp->n_event_id+1));
531 if ((int64_t)(tmp->target_msc - msc) > 0) {
544 info->target_msc = msc;
552 if (info->link.prev == q && !sna_present_queue(info, swap->msc)) {
562 sna_present_abort_vblank(RRCrtcPtr crtc, uint64_t event_id, uint64_t msc)
564 DBG(("%s(pipe=%d, event=%lld, msc=%lld)\n",
566 (long long)event_id, (long long)msc));
697 DBG(("%s: pipe=%d tv=%ld.%06d msc=%lld (target=%lld), event=%lld complete\n", __FUNCTION__,
700 crtc ? (long long)sna_crtc_last_swap(crtc->devPrivate)->msc : 0LL,
722 swap.msc = event->sequence;
728 DBG(("%s: pipe=%d, tv=%d.%06d msc=%lld (target %lld), event=%lld complete%s\n", __FUNCTION__,
730 swap.tv_sec, swap.tv_usec, (long long)swap.msc,
733 info->target_msc && info->target_msc == swap.msc ? "" : ": MISS"));
734 present_event_notify(info->event_id[0], swap_ust(&swap), swap.msc);
738 add_keepalive(info->sna, info->crtc, swap.msc + 1);
869 DBG(("%s(pipe=%d, event=%lld, msc=%lld, pixmap=%ld, sync?=%d)\n",
928 DBG(("%s: pipe=%d, tv=%d.%06d msc=%lld, event=%lld complete\n", __FUNCTION__,
930 swap->tv_sec, swap->tv_usec, (long long)swap->msc,
932 present_event_notify(event_id, swap_ust(swap), swap->msc);
982 swap_ust(swap), swap->msc);