From: Simona Vetter <simona.vetter@ffwll.ch>
To: "Michel Dänzer" <michel.daenzer@mailbox.org>
Cc: "Daniel Stone" <daniel@fooishbar.org>,
"Brian Starkey" <brian.starkey@arm.com>,
"Simona Vetter" <simona.vetter@ffwll.ch>,
"Marek Olšák" <maraeo@gmail.com>,
dri-devel <dri-devel@lists.freedesktop.org>,
"amd-gfx mailing list" <amd-gfx@lists.freedesktop.org>,
"ML Mesa-dev" <mesa-dev@lists.freedesktop.org>,
nd@arm.com
Subject: Re: [PATCH] drm/fourcc: add LINEAR modifiers with an exact pitch alignment
Date: Fri, 20 Dec 2024 16:24:42 +0100 [thread overview]
Message-ID: <Z2WMOmPCYajdtAeN@phenom.ffwll.local> (raw)
In-Reply-To: <688f69c5-a7b7-46eb-89ef-379c3f5c7632@mailbox.org>
On Thu, Dec 19, 2024 at 05:09:33PM +0100, Michel Dänzer wrote:
> On 2024-12-19 10:02, Daniel Stone wrote:
> >
> > How this would be used in practice is also way too underdocumented. We
> > need to document that exact-round-up 64b is more restrictive than
> > any-multiple-of 64b is more restrictive than 'classic' linear. We need
> > to document what people should advertise - if we were starting from
> > scratch, the clear answer would be that anything which doesn't care
> > should advertise all three, anything advertising any-multiple-of
> > should also advertise exact-round-up, etc.
> >
> > But we're not starting from scratch, and since linear is 'special',
> > userspace already has explicit knowledge of it. So AMD is going to
> > have to advertise LINEAR forever, because media frameworks know about
> > DRM_FORMAT_MOD_LINEAR and pass that around explicitly when they know
> > that the buffer is linear. That and not breaking older userspace
> > running in containers or as part of a bisect or whatever.
> >
> > There's also the question of what e.g. gbm_bo_get_modifier() should
> > return. Again, if we were starting from scratch, most restrictive
> > would make sense. But we're not, so I think it has to return LINEAR
> > for maximum compatibility (because modifiers can't be morphed into
> > other ones for fun), which further cements that we're not removing
> > LINEAR.
> >
> > And how should allocators determine what to go for? Given that, I
> > think the only sensible semantics are, when only LINEAR has been
> > passed, to pick the most restrictive set possible; when LINEAR
> > variants have been passed as well as LINEAR, to act as if LINEAR were
> > not passed at all.
>
> These are all very good points, which call for stricter-than-usual
> application of the "new UAPI requires corresponding user-space patches"
> rule:
>
> * Patches adding support for the new modifiers in Mesa (and kernel)
> drivers for at least two separate vendors
I think this is too strict? At least I could come up with other scenarios
where we'd need a new linear variant:
- one driver, but two different devices that happen to have incompatible
linear requirements which break and get fixed with the new linear mode.
- one driver, one device, but non-driver userspace allocates the linear
buffer somewhere else (e.g. from dma-buf heaps) and gets pitch
constraints wrong
> * Patches adding support in at least one non-Mesa user-space component,
> e.g. a Wayland compositor which has code using the existing linear
> modifier (e.g. mutter)
This also feels a bit too strict, since I think what Daniel proposed is
that drivers do the special LINEAR handling when there are variants
present in the list of compatible modifiers for an alloation. Hence I
don't think compositor patches are necessarily required, but we definitely
need to test to make sure it actually works and there's not surprises.
The exception is of course when non-mesa userspace allocates/sizes the
buffer itself (maybe for an soc where the display is separate and the gpu
has stricter stride constraints than the display).
> Ideally also describe a specific multi-vendor scenario which can't work
> with the existing linear modifier, and validate that it works with the
> new ones.
I think that's really the crucial part, because adding modifiers without
an actual use-case that they fix is just asking for more future trouble I
think.
-Sima
>
>
> --
> Earthling Michel Dänzer \ GNOME / Xwayland / Mesa developer
> https://redhat.com \ Libre software enthusiast
--
Simona Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
next prev parent reply other threads:[~2024-12-20 15:24 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-15 20:53 [PATCH] drm/fourcc: add LINEAR modifiers with an exact pitch alignment Marek Olšák
2024-12-15 20:54 ` Marek Olšák
2024-12-15 23:22 ` Joshua Ashton
2024-12-15 23:57 ` Marek Olšák
2024-12-16 2:08 ` Joshua Ashton
2024-12-16 5:40 ` Marek Olšák
2024-12-16 9:28 ` Dmitry Baryshkov
2024-12-16 21:49 ` Marek Olšák
2024-12-16 9:27 ` Michel Dänzer
2024-12-16 10:46 ` Lucas Stach
2024-12-16 14:53 ` Simona Vetter
2024-12-16 21:58 ` Marek Olšák
2024-12-18 10:21 ` Simona Vetter
2024-12-16 21:54 ` Marek Olšák
2024-12-17 9:59 ` Michel Dänzer
2024-12-16 21:29 ` Marek Olšák
2024-12-17 9:14 ` Michel Dänzer
2024-12-17 9:14 ` Brian Starkey
2024-12-17 10:13 ` Michel Dänzer
2024-12-17 11:03 ` Brian Starkey
2024-12-18 9:44 ` Michel Dänzer
2024-12-18 10:24 ` Simona Vetter
2024-12-18 10:32 ` Brian Starkey
2024-12-19 2:53 ` Marek Olšák
2024-12-19 9:09 ` Daniel Stone
2024-12-19 10:32 ` Brian Starkey
2024-12-20 0:33 ` Marek Olšák
2024-12-20 11:30 ` Brian Starkey
2024-12-20 14:24 ` Marek Olšák
2024-12-20 15:27 ` Simona Vetter
2024-12-19 9:02 ` Daniel Stone
2024-12-19 16:09 ` Michel Dänzer
2024-12-20 15:24 ` Simona Vetter [this message]
2024-12-25 7:34 ` Marek Olšák
2024-12-19 18:03 ` Simona Vetter
2025-01-10 21:23 ` James Jones
2025-01-14 9:38 ` Marek Olšák
2025-01-14 17:55 ` James Jones
2025-01-15 3:49 ` Marek Olšák
2025-01-14 17:58 ` Daniel Stone
2025-01-15 4:05 ` Marek Olšák
2025-01-15 12:20 ` Daniel Stone
2025-01-17 14:18 ` Simona Vetter
2025-01-18 2:37 ` Marek Olšák
2025-01-20 7:58 ` Thomas Zimmermann
2025-01-20 18:41 ` Simona Vetter
2025-01-21 19:21 ` Marek Olšák
2025-01-22 10:47 ` Simona Vetter
2025-01-20 21:31 ` Laurent Pinchart
2025-01-21 9:02 ` Philipp Zabel
2025-01-14 18:33 ` Faith Ekstrand
2025-01-15 4:27 ` Marek Olšák
2025-01-15 8:37 ` Simona Vetter
2025-01-20 22:00 ` Laurent Pinchart
2025-01-21 22:40 ` James Jones
2025-01-20 21:48 ` Laurent Pinchart
2025-01-14 13:46 ` Thomas Zimmermann
2025-01-14 13:50 ` Thomas Zimmermann
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=Z2WMOmPCYajdtAeN@phenom.ffwll.local \
--to=simona.vetter@ffwll.ch \
--cc=amd-gfx@lists.freedesktop.org \
--cc=brian.starkey@arm.com \
--cc=daniel@fooishbar.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=maraeo@gmail.com \
--cc=mesa-dev@lists.freedesktop.org \
--cc=michel.daenzer@mailbox.org \
--cc=nd@arm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox