From: Dennis Filder <d.filder@web.de>
To: Simon Ser <contact@emersion.fr>, Pekka Paalanen <ppaalanen@gmail.com>
Cc: dri-devel@lists.freedesktop.org,
Hans de Goede <hdegoede@redhat.com>,
Sebastian Wick <sebastian@sebastianwick.net>
Subject: Re: Handling DRM master transitions cooperatively
Date: Wed, 8 Sep 2021 18:14:40 +0200 [thread overview]
Message-ID: <YTjhcMmkkAKCC/zW@reader> (raw)
In-Reply-To: <jSyTJ5Ev5ZkQFBv0Ar_6MALQ4Vj1e5lvB9gXrWcYkilCvhQ_Zo-9zpuPti5L0h1flBJuc4N_ayBmoqTbfqiSaUMwk3b08EgQ1DYKTHMYQsI=@emersion.fr>
On Wed, Sep 08, 2021 at 09:51:54AM +0000, Simon Ser wrote:
> > On Tue, 07 Sep 2021 10:19:03 +0000
> > Simon Ser <contact@emersion.fr> wrote:
> >
> > > FWIW, I've just hit a case where a compositor leaves a "rotation" KMS
> > > prop set behind, then Xorg tries to startup and fails because it doesn't
> > > reset this prop. So none of this is theoretical.
> > >
> > > I still think a "reset all KMS props to an arbitrary default value" flag
> > > in drmModeAtomicCommit is the best way forward. I'm not sure a user-space
> > > protocol would help too much.
> >
> > Hi Simon,
> >
> > for the "reset KMS state" problem, sure. Thanks for confirming the
> > problem, too.
> >
> > The hand-off problem does need userspace protocol though, so that the
> > two parties can negotiate what part of KMS state can be inherited by
> > the receiver and who will do the animation from the first to the second
> > state in case you want to avoid abrupt changes. It would also be useful
> > for a cross-fade as a perhaps more flexible way than the current "leak
> > an FB, let the next KMS client scrape it via ioctls and copy it so it
> > can be textured from".
>
> The KMS state can be limited to single FB on primary plane covering the whole
> CRTC, no scaling, no other property set than FB_ID/CRTC_*/SRC_*.
>
> Is it useful to make the previous client perform the animation? I don't really
> understand the use-case here.
The use case for the animation is e.g. the transition from Plymouth to
the display server. Currently it is done as a still frame transition,
maybe with a blend-over effect. But with the current design it is not
possible to blend Plymouth's animation over into another animation in
the display server because the second client lacks the knowledge how
to keep it going for a little bit.
Another use case is switching between sessions which currently also is
only possible as a still frame transition. However, if you wanted to
present the session switching by doing e.g. a shaking screen animation
and blending the old display content over into the new content then
the first client would have to render the first half of the animation,
and the second client would have to render the second half during
which it would then blend away the content of the first screen while
blending in its own content and also slowing the shaking to a stop.
For that to work the second client would need all the information
necessary to render that animation, and also a way to perform the
frame-perfect change-over.
Granted, that is a very complicated, eye-candy-oriented use case, but
it would serve to show-case the potential of the design.
Regards.
next prev parent reply other threads:[~2021-09-08 16:14 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-03 19:08 Handling DRM master transitions cooperatively Dennis Filder
2021-09-07 10:07 ` Pekka Paalanen
2021-09-07 10:19 ` Simon Ser
2021-09-07 12:52 ` Pekka Paalanen
2021-09-07 15:52 ` Sebastian Wick
2021-09-08 16:21 ` Dennis Filder
2021-09-09 8:20 ` Pekka Paalanen
2021-09-08 9:51 ` Simon Ser
2021-09-08 11:13 ` Pekka Paalanen
2021-09-08 16:14 ` Dennis Filder [this message]
2021-09-07 12:42 ` Hans de Goede
2021-09-08 7:36 ` Pekka Paalanen
2021-09-08 7:49 ` Hans de Goede
2021-09-08 16:27 ` Daniel Vetter
2021-09-09 7:37 ` Pekka Paalanen
2021-09-14 13:45 ` Daniel Vetter
2021-09-22 8:56 ` Pekka Paalanen
2021-09-22 9:21 ` Hans de Goede
2021-09-23 8:23 ` Pekka Paalanen
2021-09-23 8:52 ` Hans de Goede
2021-09-30 9:26 ` Daniel Vetter
2021-10-01 16:33 ` Simon Ser
2021-10-02 17:27 ` Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YTjhcMmkkAKCC/zW@reader \
--to=d.filder@web.de \
--cc=contact@emersion.fr \
--cc=dri-devel@lists.freedesktop.org \
--cc=hdegoede@redhat.com \
--cc=ppaalanen@gmail.com \
--cc=sebastian@sebastianwick.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.