[PATCH weston v9 8/9] weston: support clone mode on DRM-frontend

Pekka Paalanen ppaalanen at gmail.com
Thu May 31 09:49:14 UTC 2018


On Wed, 30 May 2018 10:00:57 +0000
Marius-cristian Vlad <marius-cristian.vlad at nxp.com> wrote:

> Hi, 
> 
> This no longer applies, due to man/weston-drm changes. 

Hi,

yeah, I should probably rebase and re-send.

> Fixing that I get "atomic: get couldn't commit new state: Invalid
> argument". Does that mean that HW doesn't support CRTC sharing you
> mention in the description? Am I using it properly?

Judging from the below, you are using it properly. Unfortunately the PC
graphics cards do not tend to support shared-CRTC clone mode anymore.
Even when they did, there were only specific combinations of connectors
that could be used. One might have more luck with some embedded boards.
The one I've tested with was an i.MX6 board.

Not having a fallback to independent-CRTC clone mode (needs a damage
tracking re-design) makes the clone mode feature hard to work with.
That combined with Weston's current inability to deal with mode setting
failures gracefully makes it a really bad user experience. I believe
the situation will get better eventually with the use of atomic
modesetting with TEST_ONLY.

> One more thing I found that using the following config:
> 
> [output]
> name=HDMI-A-1
> mode=current
> same-as=HDMI-A-2
> 
> [output]
> name=HDMI-A-2
> mode=current
> 
> I get ``Output 'HDMI-A-2' enabled with head(s) HDMI-A-1, HDMI-A-2.''
> 
> I would've expected  to see ``Output 'HDMI-A-1' enabled with head(s)
> HDMI-A-1, HDMI-A-2.'' I don't know of this matters or not... the other
> way around is the same (using in HDMI-A-2 section same-as=HDMI-A-1). 

Right. The name is usually chosen by the controlling output section.
The output section with the "same-as" key is a slave section, where all
other keys are ignored. Following the chain of "same-as" keys one finds
the controlling output section, identified by not having a "same-as"
key.

That's odd that the name didn't change with the opposite configuration.
I'll have to look into it.

To be honest, I haven't paid too much attention to the output naming,
as long as there is a unique name. In libweston the output name is
arbitrary, and it's just weston that uses a head name as an output name.

> On Thu, 2018-04-19 at 15:09 +0300, Pekka Paalanen wrote:
> > From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> > 
> > 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.
> > 
> > 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: https://emea01.safelinks.protection.outlook.com/?url=https%3A%
> > 2F%2Fphabricator.freedesktop.org%2FT7727&data=02%7C01%7Cmarius-
> > cristian.vlad%40nxp.com%7C2382a4e34bb74b66b07c08d5a5ee862a%7C686ea1d3
> > bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636597366236269669&sdata=xoi2xcBR3
> > YD9gBAUidQ%2BmoO6oH0QhX3HIvGbGYqySU0%3D&reserved=0

Whoa, that was not in my patch.

> > 
> > Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> > Acked-by: Derek Foreman <derekf at osg.samsung.com>
> > ---
> >  compositor/main.c  | 492
> > ++++++++++++++++++++++++++++++++++++++++++++++++++---
> >  man/weston-drm.man |  12 ++
> >  2 files changed, 484 insertions(+), 20 deletions(-)

Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20180531/141e5325/attachment.sig>


More information about the wayland-devel mailing list