[PATCH v3] Documentation: gpu: Mention the requirements for new properties

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Jun 14 16:23:53 UTC 2021


On Fri, Jun 11, 2021 at 02:34:18PM +0100, Liviu Dudau wrote:
> On Fri, Jun 11, 2021 at 08:56:04AM -0400, Alyssa Rosenzweig wrote:
> > > What I'm expected to see in the future is new functionality that gets implemented by
> > > one hardware vendor and the kernel developers trying to enable that for userspace. It
> > > could be that the new property is generic, but there is no way of testing that on
> > > more than one implementation yet, so I'd say we are generous calling it "standard
> > > property". When the second or third hardware vendor comes along and starts supporting
> > > that property with their own set of extra requirements, then we can call it
> > > "standard". Then comes the effort cost: would it be easier to start with a vendor
> > > property that only the vendor needs to support (and can submit patches into the
> > > compositors to do so) and when the standard property gets added moves to that, or
> > > should we start with a generic property that gets implemented by the compositors
> > > (maybe, but then only one vendor supports it) and then later when we actually
> > > standardise the property we will have to carry backwards compatibility code in the
> > > kernel to handle the old behaviour for old userspace? My proposal to Maxime was for
> > > the former option to be reflected in the documentation, but I would like to hear your
> > > thoughts.
> > 
> > Just my 2c - if the mainline kernel isn't willing to commit to a feature
> > for upstream userspace to use, why does that feature belong in the
> > kernel at all? I don't see much value in exposing hardware for the sake
> > of exposing it when, practically, Linux userspace /can't/ use it as-is.
> > 
> > Might these vendor properties be used on downstream Android userspaces?
> > That's not generally an upstream goal to support.
> 
> I think the assumption is that we are willing to commit to supporting a feature for
> userspace, just that (I personally) lack the confidence that I will be getting the
> feature right on the first attempt and using only one vendor hardware. And that
> supporting potential mistakes I might've made in the first version is harder if the
> feature was deemed "standard".

There's also the issue that the first developer to try to upstream a
standard property for a new feature often gets ignored as nobody else
has experience with that feature, and thus lack personal interest.
That's not a pure technical issue, there's a management problem there
too. The right solution may ne to figure out a good process to
standardize new property without making it so difficult that everybody
will give up and only use downstream kernels. I've heard too many times
already from vendors that upstream isn't something they can target as
the bar to entry is too high, and when I convince them to submit patches
to extend APIs, those patches get ignored (I'm not talking about DRM/KMS
only here).

> I'm talking from my experience with the writeback connector. We almost committed the
> feature twice before more people chipped in and asked us for changes, but that was lucky.

-- 
Regards,

Laurent Pinchart


More information about the dri-devel mailing list