[PATCH weston v5 00/36] Head-based output configuration API a.k.a clone mode infrastructure
Pekka Paalanen
ppaalanen at gmail.com
Thu Dec 14 11:40:37 UTC 2017
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
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
More information about the wayland-devel
mailing list