2021-05-11 15:56:56

by Maxime Ripard

[permalink] [raw]
Subject: [PATCH] Documentation: gpu: Mention the requirements for new properties

New KMS properties come with a bunch of requirements to avoid each
driver from running their own, inconsistent, set of properties,
eventually leading to issues like property conflicts, inconsistencies
between drivers and semantics, etc.

Let's document what we expect.

Signed-off-by: Maxime Ripard <[email protected]>
---
Documentation/gpu/drm-kms.rst | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
index 87e5023e3f55..30f4c376f419 100644
--- a/Documentation/gpu/drm-kms.rst
+++ b/Documentation/gpu/drm-kms.rst
@@ -463,6 +463,24 @@ KMS Properties
This section of the documentation is primarily aimed at user-space developers.
For the driver APIs, see the other sections.

+Requirements
+------------
+
+KMS drivers might need to add extra properties to support new features.
+Each new property introduced in a driver need to meet a few
+requirements, in addition to the one mentioned above.:
+
+- It must be standardized, with some documentation to describe the
+ property can be used.
+
+- It must provide a generic helper in the core code to register that
+ property on the object it attaches to.
+
+- Its content must be decoded by the core and provided in the object
+ associated state structure.
+
+- An IGT test must be submitted.
+
Property Types and Blob Property Support
----------------------------------------

--
2.31.1


2021-05-11 16:36:15

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH] Documentation: gpu: Mention the requirements for new properties

On Tue, May 11, 2021 at 11:55 AM Maxime Ripard <[email protected]> wrote:
>
> New KMS properties come with a bunch of requirements to avoid each
> driver from running their own, inconsistent, set of properties,
> eventually leading to issues like property conflicts, inconsistencies
> between drivers and semantics, etc.
>
> Let's document what we expect.
>
> Signed-off-by: Maxime Ripard <[email protected]>
> ---
> Documentation/gpu/drm-kms.rst | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
> index 87e5023e3f55..30f4c376f419 100644
> --- a/Documentation/gpu/drm-kms.rst
> +++ b/Documentation/gpu/drm-kms.rst
> @@ -463,6 +463,24 @@ KMS Properties
> This section of the documentation is primarily aimed at user-space developers.
> For the driver APIs, see the other sections.
>
> +Requirements
> +------------
> +
> +KMS drivers might need to add extra properties to support new features.
> +Each new property introduced in a driver need to meet a few
> +requirements, in addition to the one mentioned above.:
> +
> +- It must be standardized, with some documentation to describe the

"to describe how the"

With that fixed, it looks good to me.

Alex

> + property can be used.
> +
> +- It must provide a generic helper in the core code to register that
> + property on the object it attaches to.
> +
> +- Its content must be decoded by the core and provided in the object
> + associated state structure.
> +
> +- An IGT test must be submitted.
> +
> Property Types and Blob Property Support
> ----------------------------------------
>
> --
> 2.31.1
>

2021-05-11 17:21:35

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH] Documentation: gpu: Mention the requirements for new properties

On Tue, May 11, 2021 at 05:55:12PM +0200, Maxime Ripard wrote:
> New KMS properties come with a bunch of requirements to avoid each
> driver from running their own, inconsistent, set of properties,
> eventually leading to issues like property conflicts, inconsistencies
> between drivers and semantics, etc.
>
> Let's document what we expect.
>
> Signed-off-by: Maxime Ripard <[email protected]>
> ---
> Documentation/gpu/drm-kms.rst | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
> index 87e5023e3f55..30f4c376f419 100644
> --- a/Documentation/gpu/drm-kms.rst
> +++ b/Documentation/gpu/drm-kms.rst
> @@ -463,6 +463,24 @@ KMS Properties
> This section of the documentation is primarily aimed at user-space developers.
> For the driver APIs, see the other sections.
>
> +Requirements
> +------------
> +
> +KMS drivers might need to add extra properties to support new features.
> +Each new property introduced in a driver need to meet a few
> +requirements, in addition to the one mentioned above.:
> +
> +- It must be standardized, with some documentation to describe the
> + property can be used.
> +
> +- It must provide a generic helper in the core code to register that
> + property on the object it attaches to.

Maybe also include anything that drivers might want to precompute, e.g. we
have helpers for cliprects.

> +
> +- Its content must be decoded by the core and provided in the object

object's
> + associated state structure.
> +
> +- An IGT test must be submitted.

"... where reasonable."

We have that disclaimer already here:

https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html#testing-requirements-for-userspace-api

I think would be good to cross-reference the uapi rules in general

https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html#open-source-userspace-requirements

With the bikesheds addressed:

Reviewed-by: Daniel Vetter <[email protected]>

But this needs ideally a pile of acks from most display driver teams.
-Daniel

> +
> Property Types and Blob Property Support
> ----------------------------------------
>
> --
> 2.31.1
>

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch