[PATCH weston v2] compositor-drm: pageflip timeout implementation

Emmanuel Gil Peyrot emmanuel.peyrot at collabora.com
Tue Feb 28 19:02:56 UTC 2017


On Tue, Feb 28, 2017 at 06:35:11PM +0000, Emmanuel Gil Peyrot wrote:
> Weston will not repaint until previous update has been acked by a
> pageflip event coming from the drm driver. However, some buggy drivers
> won’t return those events or will stop sending them at some point and
> Weston output repaints will completely freeze. To ease developers’ task
> in testing their drivers, this patch makes compositor-drm use a timer
> to detect cases where those pageflip events stop coming.
> 
> This timeout implementation is software only and includes basic
> features usually found in a watchdog. We simply exit Weston gracefully
> with a log message and an exit code when the timout is reached.
> 
> The timeout value can be set via weston.ini by adding a
> pageflip-timeout=<MILLISECONDS> entry under a new [compositor-drm]
> section. Setting it to 0 disables the timeout feature.
> 
> v2:
> - Made sure we would get both the pageflip and the vblank events before
>   stopping the timer.
> - Reordered the error and success cases in
>   drm_output_pageflip_timer_create() to be more in line with the rest
>   of the code.
> 
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=83884
> Signed-off-by: Frederic Plourde <frederic.plourde at collabora.co.uk>
> Signed-off-by: Emmanuel Gil Peyrot <emmanuel.peyrot at collabora.com>

Err, I forgot to include this:
Reviewed-by: Daniel Stone <daniels at collabora.com>

-- 
Emmanuel Gil Peyrot


More information about the wayland-devel mailing list