From: Pekka Paalanen <ppaalanen@gmail.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm: drivers may provide multiple primary planes per CRTC
Date: Fri, 7 Aug 2020 12:38:02 +0300 [thread overview]
Message-ID: <20200807123802.6058baca@eldfell> (raw)
In-Reply-To: <20200807090706.GA2352366@phenom.ffwll.local>
[-- Attachment #1.1: Type: text/plain, Size: 2793 bytes --]
On Fri, 7 Aug 2020 11:07:06 +0200
Daniel Vetter <daniel@ffwll.ch> wrote:
> On Thu, Aug 06, 2020 at 10:33:31AM +0000, Simon Ser wrote:
> > Some drivers may expose primary planes compatible with multiple CRTCs.
> > Make this clear in the docs: the current wording may be misunderstood as
> > "exactly one primary plane per CRTC".
> >
> > Signed-off-by: Simon Ser <contact@emersion.fr>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > ---
> > drivers/gpu/drm/drm_plane.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> > index b7b90b3a2e38..108a922e8c23 100644
> > --- a/drivers/gpu/drm/drm_plane.c
> > +++ b/drivers/gpu/drm/drm_plane.c
> > @@ -49,8 +49,8 @@
> > * &struct drm_plane (possibly as part of a larger structure) and registers it
> > * with a call to drm_universal_plane_init().
> > *
> > - * Cursor and overlay planes are optional. All drivers should provide one
> > - * primary plane per CRTC to avoid surprising userspace too much. See enum
> > + * Cursor and overlay planes are optional. All drivers should provide at least
> > + * one primary plane per CRTC to avoid surprising userspace too much. See enum
>
> I think that's even more confusing, since this reads like there could be
> multiple primary planes for a specific CRTC. That's not the case, there'
> only one pointer going from drm_crtc->primary to a drm_plane in the
> kernel.
There could be multiple primary planes *usable* for a specific CRTC but
just one used at a time, right?
> The problem is that userspace doesn't have a drm_property to read this
> pointer, and needs to guess.
>
> I thought the rule is:
>
> Nth primary plane (or cursor) is the primary plane for the Nth crtc.
> Enumaration with increasing drm kms object ids.
Why is that needed? With universal planes, I thought
drmModePlane::possible_crtcs bitmask is trustworthy?
In the legacy KMS UAPI you can't even pick your primary plane, because
it's implied in drmModeSetCrtc(), right?
> And I guess we should explain that on some hw any plane (including primary
> ones, since that's only a sw construct) can be freely assinged to crtc.
>
> Yes it's probably the most gloriously bonkers uapi we've come up with.
> Might be so bad that a libdrm helper to look up the primary plane for a
> crtc (or it's cursor plane if it exists) would be in order :-)
I'm not sure I see the bonkers there.
Thanks,
pq
>
> Cheers, Daniel
>
>
> > * drm_plane_type for a more in-depth discussion of these special uapi-relevant
> > * plane types. Special planes are associated with their CRTC by calling
> > * drm_crtc_init_with_planes().
> > --
> > 2.28.0
> >
> >
>
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2020-08-07 9:38 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-06 10:33 [PATCH] drm: drivers may provide multiple primary planes per CRTC Simon Ser
2020-08-07 9:07 ` Daniel Vetter
2020-08-07 9:33 ` Simon Ser
2020-08-07 13:03 ` Daniel Vetter
2020-08-07 9:38 ` Pekka Paalanen [this message]
2020-08-07 13:06 ` Daniel Vetter
2020-12-06 15:24 ` Simon Ser
2020-12-07 8:45 ` Pekka Paalanen
2020-12-07 9:10 ` Simon Ser
2020-12-09 0:36 ` Daniel Vetter
2020-12-09 8:23 ` Pekka Paalanen
2020-12-09 10:40 ` Daniel Vetter
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=20200807123802.6058baca@eldfell \
--to=ppaalanen@gmail.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
/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.