Skip to content
Snippets Groups Projects
  1. Nov 19, 2014
  2. Nov 18, 2014
  3. Nov 12, 2014
  4. Nov 11, 2014
  5. Nov 10, 2014
  6. Nov 05, 2014
  7. Nov 04, 2014
  8. Oct 10, 2014
  9. Oct 08, 2014
  10. Oct 01, 2014
  11. Sep 30, 2014
    • Pekka Paalanen's avatar
      clients: add presentation-shm demo · ef2b592a
      Pekka Paalanen authored
      
      This started as a copy of simple-shm.c before it was converted to
      xdg_shell.
      
      This demo excercises the presentation feedback interface in five
      different modes:
      
      - A continuous repaint loop triggered by frame callbacks, and using
        immediate commits, just gathering presentation feedback and computing
        some time intervals for statistics.
      
      - The same as above, except with 1s sleep before actually repainting as
        a response to frame callback. This tests how well the compositor can
        do a repaint from idle state (not continuously repainting), assuming
        nothing else is causing repaints.
      
      - A continuous repaint loop triggered by 'presented' events rather than
        by frame callbacks. If Weston uses an appropriate scheduling
        algorithm, this mode achieves the smallest possible frame latency
        (below one output refresh period).
      
      In all modes, all frames are pre-rendered at startup, so no rendering
      happens during the animation.
      
      [Louis-Francis Ratté-Boulianne: split queuing feature]
      
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Signed-off-by: default avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
      ef2b592a
    • Pekka Paalanen's avatar
      de7f5c8f
    • Pekka Paalanen's avatar
      compositor-drm: deliver frame seq for feedback · 641307ca
      Pekka Paalanen authored
      
      Add 'msc' field to weston_output to maintain the refresh counter, and
      use it in presentation_feedback.presented.
      
      Make compositor-drm update the per-output refresh counter with the
      values reported by DRM. If the DRM reported value jumps backwards,
      assume it wrapped around once.
      
      Other backends do not update weston_output::msc, and there
      presentation_feedback will always deliver refresh counter as zero.
      
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      v3 Reviewed-by: default avatarMario Kleiner <mario.kleiner.de@gmail.com>
      641307ca
    • Pekka Paalanen's avatar
      compositor: implement presentation_feedback · 133e4396
      Pekka Paalanen authored
      
      Implement the presentation.feedback request, and the
      presentation_feedback protocol interface. Feedback information is
      delivered to clients as the backend reports it, except the refresh
      counter (MSC) which is always reported as zero.
      
      Changes in v4:
      
      * add 'flags' argument to 'presented' event without implementation
      
      Changes in v5:
      
      * remove the 'destroy' method implementation for feedback objects
        [Pekka Paalanen: do not leak struct feedback.]
      
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      v3 Reviewed-by: default avatarMario Kleiner <mario.kleiner.de@gmail.com>
      133e4396
    • Pekka Paalanen's avatar
      compositor: set and use the presentation clock everywhere · b5eedade
      Pekka Paalanen authored
      
      Add presentation clock setters that verify the given clock actually
      works. Offer an automatic choice of a software fallback clock, when a
      backend has to always use clock_gettime() to approximate the
      presentation time.
      
      The DRM backend already queried the DRM about the clock id, just let the
      DRM backend set the presentation clock from that.
      
      For all other backends which do not get a timestamp from the driver,
      call the software clock setter to choose a suitable clock.
      
      Report the chosen clock via presentation.clock_id event to clients.
      
      In finish_frame(), upgrade the argument from uint32_t milliseconds to
      struct timespec which can accurately hold the presentation clock values.
      This will be needed when weston_output_finish_frame() starts to send out
      presentation_feedback.presented events.
      
      While at it, replace gettimeofday() calls with clock_gettime() using the
      chosen presentation clock, so we manufacture presentation timestamps
      from the presentation clock when the gfx drivers cannot give us a proper
      timestamp.
      
      Rpi patch is more verbose due to not having the compositor pointer
      available in rpi_flippipe_update_complete(). Explicitly carry the clock
      id with flippipe so it is available in the thread.
      
      Changes in v4:
      
      * rpi debug build fix
      
      v4 Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      v3 Reviewed-by: default avatarMario Kleiner <mario.kleiner.de@gmail.com>
      b5eedade
    • Pekka Paalanen's avatar
Loading