[PATCH weston v4] compositor-drm: pageflip timeout implementation
Pekka Paalanen
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]
Hi,
I fixed the above to say "[core]" instead. ;-)
> 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.
>
> v3:
> - 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
> callback.
> - Also display the output name in case the timer fires.
>
> v4:
> - 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(+)
Pushed:
8a888a5..11ae2a3 master -> master
Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20170307/16a20b8f/attachment.sig>
More information about the wayland-devel
mailing list