[PATCH weston v4] compositor-drm: pageflip timeout implementation
ppaalanen at gmail.com
Tue Mar 7 14:52:04 UTC 2017
On Tue, 7 Mar 2017 13:27:54 +0000
Emmanuel Gil Peyrot <emmanuel.peyrot at collabora.com> 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]
I fixed the above to say "[core]" instead. ;-)
> section. Setting it to 0 disables the timeout feature.
> - 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.
> - Reordered (de)arming of the timer with the code around it to avoid it
> being rearmed before the current dearming.
> - Return the proper value for the dispatcher in the pageflip_timeout
> - Also display the output name in case the timer fires.
> - Reordered a forgotten timer rearming after its drmModePageFlip().
> 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>
> Reviewed-by: Daniel Stone <daniels at collabora.com>
> compositor/main.c | 2 ++
> libweston/compositor-drm.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++
> libweston/compositor-drm.h | 7 +++++
> man/weston.ini.man | 5 ++++
> 4 files changed, 79 insertions(+)
8a888a5..11ae2a3 master -> master
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 801 bytes
Desc: OpenPGP digital signature
More information about the wayland-devel