[PATCH weston v5 00/36] Head-based output configuration API a.k.a clone mode infrastructure

Alex Deucher alexdeucher at gmail.com
Thu Dec 14 15:11:32 UTC 2017


On Thu, Dec 14, 2017 at 6:40 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
>
> Hi all,
>
> this is v5 (to match the numbering of my public branches) of the libweston user
> facing API and infrastructure for supporting shared-CRTC clone mode.
>
> Previous submission with rationale:
> https://lists.freedesktop.org/archives/wayland-devel/2017-October/035604.html
>
> Design document:
> https://phabricator.freedesktop.org/w/wayland/weston/atomic-output-config/
>
> The goal:
> https://phabricator.freedesktop.org/T7727

FWIW, at least with the DC modesetting code in amdgpu, we can
synchronize multiple crtcs to the same timing when the monitors all
support the same mode timing or with monitors that have different
timings using variable length blanking periods on freesync capable
monitors.


Alex

>
> Changes in v5 compared to v3 are minor:
> - "libweston: properly orphan wl_output resources" is new.
> - Removal of wl_output global, when a head is detached from an enabled output.
> - Print "Detected a monitor change" only for enabled heads.
>
> You can find this series in the branch:
> https://gitlab.collabora.com/pq/weston/commits/clonemode-user-API-5
>
> I went through the same testing procedure as with v3, the previous submission.
>
>
> However, the interesting bits are in the branch:
> https://gitlab.collabora.com/pq/weston/commits/clonemode-4
>
> As new things compared to clonemode-user-API-2, that one contains:
> - support for configuring clone mode in weston.ini
> - main.c implementation to configure a clode using the new API
> - desktop-shell enhancements to avoid redundant panel and background surfaces
>   in clone mode
> - hooking up custom data to weston_output via a new user-side destroy signal
> - naming outputs freely
> - DRM-backend support for shared-CRTC clone mode
> - video mode list merging in the DRM-backend
>
> The shared-CRTC clone mode has been tested to work on an i.MX6 device.
> Unfortunately it seems that PC hardware that would support it is becoming
> scarce AFAIU.
>
> Most of the patches in clonemode-4 depend on the atomic modesetting series and
> can therefore be submitted only after that one.
>
>
> Thanks,
> pq
>
> Pekka Paalanen (36):
>   libweston: introduce weston_head
>   libweston: move wl_output to weston_head
>   libweston: use head in wl_output global
>   libweston: make wl_output point to weston_head
>   libweston: refactor weston_mode_switch_finish
>   libweston: introduce weston_output::head_list
>   libweston: properly orphan wl_output resources
>   libweston: strdup head make, model, serial_number
>   cms-colord: find a good head
>   libweston: add name to weston_head
>   libweston: add weston_head::connected
>   libweston: add compositor list of heads
>   libweston: add heads_changed hook
>   libweston: new head-based output management API
>   libweston: add weston_head destroy signal
>   libweston: add weston_head_is_device_changed() API
>   weston: move weston_output_enable() into callers
>   weston: migrate headless to head-based output API
>   weston: migrate x11 to head-based output API
>   weston: migrate wayland to head-based output API
>   weston: migrate fbdev to head-based output API
>   weston: migrate RDP to head-based output API
>   weston: migrate DRM to head-based output API
>   libweston: change windowed_output_api output_create to create_head
>   libweston: remove output_pending_signal
>   libweston: stop auto-adding the implicit head
>   libweston: assert make/model in weston_output_enable()
>   libweston: assert current_mode in weston_output_enable()
>   libweston: cancel idle_repaint on output destroy
>   compositor-headless: migrate to head-based output API
>   compositor-rdp: migrate to head-based output API
>   compositor-fbdev: make re-enable less drastic
>   compositor-fbdev: migrate to head-based output API
>   compositor-x11: migrate to head-based output API
>   compositor-wayland: strict surface create/destroy
>   compositor-wayland: migrate to head-based output API
>
>  compositor/cms-colord.c             |  38 +-
>  compositor/main.c                   | 304 +++++++++---
>  compositor/weston-screenshooter.c   |   2 +-
>  desktop-shell/input-panel.c         |   4 +-
>  desktop-shell/shell.c               |   4 +-
>  fullscreen-shell/fullscreen-shell.c |   4 +-
>  ivi-shell/input-panel-ivi.c         |   4 +-
>  libweston-desktop/wl-shell.c        |   2 +-
>  libweston-desktop/xdg-shell-v5.c    |   2 +-
>  libweston-desktop/xdg-shell-v6.c    |   2 +-
>  libweston/compositor-drm.c          |  15 +-
>  libweston/compositor-fbdev.c        | 206 +++++---
>  libweston/compositor-headless.c     |  75 ++-
>  libweston/compositor-rdp.c          |  64 ++-
>  libweston/compositor-wayland.c      | 254 +++++++---
>  libweston/compositor-x11.c          |  71 ++-
>  libweston/compositor.c              | 948 +++++++++++++++++++++++++++++++++---
>  libweston/compositor.h              | 182 ++++++-
>  libweston/windowed-output-api.h     |  23 +-
>  tests/weston-test.c                 |   2 +-
>  20 files changed, 1832 insertions(+), 374 deletions(-)
>
> --
> 2.13.6
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list