Hi Miguel, On 21 March 2016 at 16:37, Miguel A. Vico <[email protected]> wrote: > Instant query for vblank timestamp may always fail, resulting in > never scheduling a full repaint in drm_output_start_repaint_loop(). > > Additionally, timestamp provided in page_flip_handler() may also be > invalid. > > [...] > > @@ -869,6 +878,15 @@ page_flip_handler(int fd, unsigned int frame, > else if (!output->vblank_pending) { > ts.tv_sec = sec; > ts.tv_nsec = usec * 1000; > + > + /* Zero timestamp means failure to get valid timestamp, so > immediately > + * finish frame */ > + if (ts.tv_sec == 0 && ts.tv_nsec == 0) { > + > weston_compositor_read_presentation_clock(output->base.compositor, > + &ts); > + flags = WP_PRESENTATION_FEEDBACK_INVALID; > + } > + > weston_output_finish_frame(&output->base, &ts, flags); > > /* We can't call this from frame_notify, because the output's
This is odd. Instant queries failing is fine, but in which circumstances can you fail to return a valid timestamp in a pageflip event ... ? I don't know of any other kernel driver which does this - at the very least, if you don't have a hardware timestamp, then you log the time in your kernel driver which handles the hardware event (e.g. softirq handler), and use that instead. Cheers, Daniel _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
