1. 14 Mar, 2017 1 commit
    • Daniel Stone's avatar
      Switch to global output repaint timer · 6847b858
      Daniel Stone authored
      In preparation for grouping output repaint together where possible,
      switch the per-output repaint timer, to a global timer which iterates
      across all outputs.
      
      This is implemented by storing the absolute time for the next repaint
      for each output locally, and maintaining a global timer which iterates
      all of them, scheduling the repaint for the first available time.
      Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
      Cc: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
      [Pekka: The comment about 1 ms delay.]
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      6847b858
  2. 13 Mar, 2017 8 commits
  3. 08 Mar, 2017 2 commits
  4. 07 Mar, 2017 1 commit
    • Emmanuel Gil Peyrot's avatar
      compositor-drm: pageflip timeout implementation · 11ae2a30
      Emmanuel Gil Peyrot authored
      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 [core]
      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: default avatarEmmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      11ae2a30
  5. 28 Feb, 2017 2 commits
  6. 27 Feb, 2017 7 commits
  7. 25 Feb, 2017 1 commit
  8. 21 Feb, 2017 6 commits
  9. 14 Feb, 2017 1 commit
  10. 13 Feb, 2017 2 commits
  11. 09 Feb, 2017 4 commits
  12. 08 Feb, 2017 2 commits
  13. 07 Feb, 2017 3 commits