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

Alex Deucher alexdeucher at gmail.com
Fri Dec 15 20:35:53 UTC 2017


On Fri, Dec 15, 2017 at 2:27 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> On Thu, 14 Dec 2017 10:11:32 -0500
> Alex Deucher <alexdeucher at gmail.com> wrote:
>
>> 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.
>
> Hi Alex,
>
> that's cool. How does userspace take advantage of that, how do you
> configure KMS/atomic to make use of that? Is it supported through
> legacy KMS (non-atomic) as well?

the driver automatically syncs all heads that it can at modeset time I think.

>
> Does it involve things like the driver stealing an unused CRTC for each
> additional clone?

No, there is logic in the gpu to sync the timing of multiple crtcs.
You just need 1 crtc per display.

>
> The feature would fit perfectly under the "shared-CRTC clone mode" from
> libweston API point of view, even though it's not actually a single
> shared CRTC.
>
>
> Thanks,
> pq
>
>>
>>
>> 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.
>> >


More information about the wayland-devel mailing list