Skip to content
  • Pekka Paalanen's avatar
    weston: support clone mode on DRM-frontend · 944dd235
    Pekka Paalanen authored
    Add a new output section key "same-as" for configuring clone mode. An
    output marked "same-as" another output will be configured identically to
    the other output.
    
    The current implementation supports only CRTC sharing for clone mode.
    Independent CRTC clone mode cannot be supported until output layout
    logic is moved from libweston into the frontend and libweston's damage
    tracking issues stemming from overlapping outputs are solved.
    
    Quite a lot of infrastructure is needed to properly configure clone
    mode. The implemented logic allows easy addition of independent CRTC
    clone mode once libweston supports it. The idea is that wet_layoutput is
    the item to be laid out and all weston_outputs a wet_layoutput
    contains show exactly the same area of the desktop.
    
    The configuration logic attempts to automatically fall back to creating
    more weston_outputs when all heads do not work under the same
    weston_output. For now, the fallback path ends with an error message.
    
    Enabling a weston_output is bit complicated, because one needs to first
    collect all relevant heads, try to attach them all to the weston_output,
    and then back up head by head until enabling the weston_output succeeds.
    A new weston_output is created for the left-over heads and the process
    is repeated.
    
    CRTC-sharing clone mode is the most efficient clone mode, offering
    synchronized scanout timings, but it is not always supported by
    hardware.
    
    v10:
    - rebased trivial conflicts in man page
    - switch to gitlab issue URL
    
    v9:
    - replace weston_compositor_set_heads_changed_cb() with
      weston_compositor_add_heads_changed_listener()
    - remove workaround in simple_head_enable()
    
    v6:
    - Add man-page note about cms-colord.
    - Don't create an output just to turn it off.
    
    Fixes: wayland/weston#22
    
    
    
    Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    Acked-by: default avatarDerek Foreman <derekf@osg.samsung.com>
    Acked-by: default avatarDaniel Stone <daniels@collabora.com>
    Reviewed-by: default avatarIan Ray <ian.ray@ge.com>
    944dd235