Skip to content
Snippets Groups Projects
  1. Oct 30, 2018
    • Tomohito Esaki's avatar
      compositor-drm: Add Support virtual output · b1fb00db
      Tomohito Esaki authored
      
      Add support virtual output for streaming image to remote output by
      remoting-plugin which will be added by the patch:
      "Add remoting plugin for output streaming."
      The gbm bo of virtual output is the linear format.
      
      Virtual output is implemented based on a patch by Grigory Kletsko
      <grigory.kletsko@cogentembedded.com>.
      
      Signed-off-by: default avatarTomohito Esaki <etom@igel.co.jp>
      b1fb00db
  2. Jul 02, 2018
  3. May 24, 2018
  4. Dec 18, 2017
  5. Sep 04, 2017
  6. Mar 07, 2017
    • Emmanuel Gil Peyrot's avatar
      compositor-drm: pageflip timeout implementation · 11ae2a30
      Emmanuel Gil Peyrot authored and Pekka Paalanen's avatar Pekka Paalanen committed
      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: default avatarDaniel Stone <daniels@collabora.com>
      Reviewed-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      11ae2a30
  7. Jan 26, 2017
  8. Oct 03, 2016
    • Armin Krezović's avatar
      weston: Port DRM backend to new output handling API · 08368132
      Armin Krezović authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      This is a complete port of the DRM backend that uses
      the recently added output handling API for output
      configuration.
      
      Output can be configured at runtime by passing the
      necessary configuration parameters, which can be
      filled in manually or obtained from the configuration
      file using previously added functionality. It is
      required that the scale and transform values are set
      using the previously added functionality.
      
      After everything has been set, output needs to be
      enabled manually using weston_output_enable().
      
      v2:
      
       - Added missing drmModeFreeCrtc() to drm_output_enable()
         cleanup list in case of failure.
       - Split drm_backend_disable() into drm_backend_deinit()
         to accomodate for changes in the first patch in the
         series. Moved restoring original crtc to
         drm_output_destroy().
      
      v3:
      
       - Moved origcrtc allocation to drm_output_set_mode().
       - Swapped connector_get_current_mode() and
         drm_output_add_mode() calls in drm_output_set_mode()
         to match current weston.
       - Moved crtc_allocator and connector_allocator update
         from drm_output_enable() to create_output_for_connector()
         to avoid problems when more than one monitor is connected
         at startup and crtc allocator wasn't updated before
         create_output_for_connector() was called second time,
         resulting in one screen being turned off.
       - Moved crtc_allocator and connector_allocator update from
         drm_output_deinit() to drm_output_destroy(), as it
         should not be called on drm_output_disable().
       - Use weston_compositor_add_pending_output().
       - Bump weston_drm_backend_config version to 2.
      
      v4:
      
       - Reset output->original_crtc to NULL if drm_output_set_mode()
         fails.
       - Remove unneeded log message when disabling an output when a
         pageflip is pending.
       - Document that create_output_for_connector() takes ownership
         of the connector.
       - Free the connector if create output conditionals are not met
         in create_outputs() and update_outputs().
      
      Signed-off-by: default avatarArmin Krezović <krezovic.armin@gmail.com>
      Reviewed-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      08368132
  9. Jun 23, 2016
  10. Jun 03, 2016
  11. May 10, 2016
    • Giulio Camuffo's avatar
      drm: port the drm backend to the new init api · 1c0e40d9
      Giulio Camuffo authored and Pekka Paalanen's avatar Pekka Paalanen committed
      
      Preparing for libweston and for the separation of the code base into
      libweston vs. weston the compositor, we must remove all uses
      weston_config structures from the backends. We have decided that all
      option and config input happens in the compositor (main.c), and
      configuration is passed in for the backends as structs.
      
      Most other backends have already converted, and this patch converts the
      DRM-backend to the libweston-style init API.
      
      The libweston-style init API includes a header for each backend (here
      compositor-drm.h) defining the configuration interface. The compositor
      (main.c) prepares a configuration struct to be passed through libweston
      core to the backend during initialization.
      
      A complication with the DRM-backend is that outputs can be hotplugged,
      and their configuration needs to be fetched from the compositor
      (main.c). For this, the config struct contains a callback member. The
      output configuration API is subject to change later, this is just a
      temporary API to get libweston forward.
      
      As weston_compositor's user_data was not previously used for anything,
      and the output configuration callback needs data, the user_data is set
      to the 'config' pointer. This pointer is only used in
      drm_configure_output() in main.c.
      
      [Bryce: lots of stuff and rebasing]
      Signed-off-by: default avatarBryce Harrington <bryce@osg.samsung.com>
      Reviewed-by: default avatarQuentin Glidic <sardemff7+git@sardemff7.net>
      Acked-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Tested-by: default avatarBenoit Gschwind <gschwind@gnu-log.net>
      [Pekka: write commit message]
      [Pekka: squash in "drm: Don't hang onto the backend config object
      post-backend_init" from Bryce Harrington]
      [Pekka: drop the compositor.h hunk]
      [Pekka: do not #include inside extern "C"]
      [Pekka: remove incorrect comment about weston_drm_backend_config
      ownership.]
      Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      1c0e40d9
Loading