diff mbox series

[v2,7/9] drm/vkms: Add range and encoding properties to pixel_read function

Message ID 20240223-yuv-v2-7-aa6be2827bb7@bootlin.com (mailing list archive)
State New, archived
Headers show
Series drm/vkms: Reimplement line-per-line pixel conversion for plane reading | expand

Commit Message

Louis Chauvet Feb. 23, 2024, 11:37 a.m. UTC
From: Arthur Grillo <arthurgrillo@riseup.net>

Create range and encoding properties. This should be noop, as none of
the conversion functions need those properties.

Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
[Louis Chauvet: retained only relevant parts]
Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
 drivers/gpu/drm/vkms/vkms_plane.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Pekka Paalanen Feb. 26, 2024, 12:23 p.m. UTC | #1
On Fri, 23 Feb 2024 12:37:27 +0100
Louis Chauvet <louis.chauvet@bootlin.com> wrote:

> From: Arthur Grillo <arthurgrillo@riseup.net>
> 
> Create range and encoding properties. This should be noop, as none of
> the conversion functions need those properties.

None of the conversion function needs this? How can one say so?
The previous patch is making use of them already, AFAICT?

How is this a noop? Is it not exposing new UAPI from VKMS?


Thanks,
pq

> 
> Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
> [Louis Chauvet: retained only relevant parts]
> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> ---
>  drivers/gpu/drm/vkms/vkms_plane.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
> index 427ca67c60ce..95dfde297377 100644
> --- a/drivers/gpu/drm/vkms/vkms_plane.c
> +++ b/drivers/gpu/drm/vkms/vkms_plane.c
> @@ -228,5 +228,14 @@ struct vkms_plane *vkms_plane_init(struct vkms_device *vkmsdev,
>  	drm_plane_create_rotation_property(&plane->base, DRM_MODE_ROTATE_0,
>  					   DRM_MODE_ROTATE_MASK | DRM_MODE_REFLECT_MASK);
>  
> +	drm_plane_create_color_properties(&plane->base,
> +					  BIT(DRM_COLOR_YCBCR_BT601) |
> +					  BIT(DRM_COLOR_YCBCR_BT709) |
> +					  BIT(DRM_COLOR_YCBCR_BT2020),
> +					  BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) |
> +					  BIT(DRM_COLOR_YCBCR_FULL_RANGE),
> +					  DRM_COLOR_YCBCR_BT601,
> +					  DRM_COLOR_YCBCR_FULL_RANGE);
> +
>  	return plane;
>  }
>
Louis Chauvet Feb. 27, 2024, 3:02 p.m. UTC | #2
(same as for PATCHv2 6/9, I took the patch from Arthur with no 
modifications)

Le 26/02/24 - 14:23, Pekka Paalanen a écrit :
> On Fri, 23 Feb 2024 12:37:27 +0100
> Louis Chauvet <louis.chauvet@bootlin.com> wrote:
> 
> > From: Arthur Grillo <arthurgrillo@riseup.net>
> > 
> > Create range and encoding properties. This should be noop, as none of
> > the conversion functions need those properties.
> 
> None of the conversion function needs this? How can one say so?
> The previous patch is making use of them already, AFAICT?

It's my fault, I mixed the commits (in Arthur's series, "Add range..." was 
before "Add YUV support"), but for me it makes no sens to have the color 
property without the support in the driver.

Maybe it's better just to merge "Add range..." with "Add YUV support"?

> How is this a noop? Is it not exposing new UAPI from VKMS?

It's not a no-op from userspace, but from the driver side, yes.

Kind regards,
Louis Chauvet

> Thanks,
> pq
> 
> > 
> > Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
> > [Louis Chauvet: retained only relevant parts]
> > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> > ---
> >  drivers/gpu/drm/vkms/vkms_plane.c | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
> > index 427ca67c60ce..95dfde297377 100644
> > --- a/drivers/gpu/drm/vkms/vkms_plane.c
> > +++ b/drivers/gpu/drm/vkms/vkms_plane.c
> > @@ -228,5 +228,14 @@ struct vkms_plane *vkms_plane_init(struct vkms_device *vkmsdev,
> >  	drm_plane_create_rotation_property(&plane->base, DRM_MODE_ROTATE_0,
> >  					   DRM_MODE_ROTATE_MASK | DRM_MODE_REFLECT_MASK);
> >  
> > +	drm_plane_create_color_properties(&plane->base,
> > +					  BIT(DRM_COLOR_YCBCR_BT601) |
> > +					  BIT(DRM_COLOR_YCBCR_BT709) |
> > +					  BIT(DRM_COLOR_YCBCR_BT2020),
> > +					  BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) |
> > +					  BIT(DRM_COLOR_YCBCR_FULL_RANGE),
> > +					  DRM_COLOR_YCBCR_BT601,
> > +					  DRM_COLOR_YCBCR_FULL_RANGE);
> > +
> >  	return plane;
> >  }
> > 
>
Pekka Paalanen Feb. 29, 2024, 12:24 p.m. UTC | #3
On Tue, 27 Feb 2024 16:02:10 +0100
Louis Chauvet <louis.chauvet@bootlin.com> wrote:

> (same as for PATCHv2 6/9, I took the patch from Arthur with no 
> modifications)
> 
> Le 26/02/24 - 14:23, Pekka Paalanen a écrit :
> > On Fri, 23 Feb 2024 12:37:27 +0100
> > Louis Chauvet <louis.chauvet@bootlin.com> wrote:
> >   
> > > From: Arthur Grillo <arthurgrillo@riseup.net>
> > > 
> > > Create range and encoding properties. This should be noop, as none of
> > > the conversion functions need those properties.  
> > 
> > None of the conversion function needs this? How can one say so?
> > The previous patch is making use of them already, AFAICT?  
> 
> It's my fault, I mixed the commits (in Arthur's series, "Add range..." was 
> before "Add YUV support"), but for me it makes no sens to have the color 
> property without the support in the driver.

Ah, so if there was no YUV support, these properties would never affect
anything. Ok, I see where that is coming from.

> 
> Maybe it's better just to merge "Add range..." with "Add YUV support"?
> 
> > How is this a noop? Is it not exposing new UAPI from VKMS?  
> 
> It's not a no-op from userspace, but from the driver side, yes.

If it all is already hooked up and handled in the driver, then say just
that?

"Now that the driver internally handles these quantization ranges and YUV
encoding matrices, expose the UAPI for setting them."

And fix the commit summary line too, nothing "pixel_read" here.


Thanks,
pq

> 
> Kind regards,
> Louis Chauvet
> 
> > Thanks,
> > pq
> >   
> > > 
> > > Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
> > > [Louis Chauvet: retained only relevant parts]
> > > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> > > ---
> > >  drivers/gpu/drm/vkms/vkms_plane.c | 9 +++++++++
> > >  1 file changed, 9 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
> > > index 427ca67c60ce..95dfde297377 100644
> > > --- a/drivers/gpu/drm/vkms/vkms_plane.c
> > > +++ b/drivers/gpu/drm/vkms/vkms_plane.c
> > > @@ -228,5 +228,14 @@ struct vkms_plane *vkms_plane_init(struct vkms_device *vkmsdev,
> > >  	drm_plane_create_rotation_property(&plane->base, DRM_MODE_ROTATE_0,
> > >  					   DRM_MODE_ROTATE_MASK | DRM_MODE_REFLECT_MASK);
> > >  
> > > +	drm_plane_create_color_properties(&plane->base,
> > > +					  BIT(DRM_COLOR_YCBCR_BT601) |
> > > +					  BIT(DRM_COLOR_YCBCR_BT709) |
> > > +					  BIT(DRM_COLOR_YCBCR_BT2020),
> > > +					  BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) |
> > > +					  BIT(DRM_COLOR_YCBCR_FULL_RANGE),
> > > +					  DRM_COLOR_YCBCR_BT601,
> > > +					  DRM_COLOR_YCBCR_FULL_RANGE);
> > > +
> > >  	return plane;
> > >  }
> > >   
> >   
> 
> 
>
Louis Chauvet March 4, 2024, 3:29 p.m. UTC | #4
Le 29/02/24 - 14:24, Pekka Paalanen a écrit :
> On Tue, 27 Feb 2024 16:02:10 +0100
> Louis Chauvet <louis.chauvet@bootlin.com> wrote:
> 
> > (same as for PATCHv2 6/9, I took the patch from Arthur with no 
> > modifications)
> > 
> > Le 26/02/24 - 14:23, Pekka Paalanen a écrit :
> > > On Fri, 23 Feb 2024 12:37:27 +0100
> > > Louis Chauvet <louis.chauvet@bootlin.com> wrote:
> > >   
> > > > From: Arthur Grillo <arthurgrillo@riseup.net>
> > > > 
> > > > Create range and encoding properties. This should be noop, as none of
> > > > the conversion functions need those properties.  
> > > 
> > > None of the conversion function needs this? How can one say so?
> > > The previous patch is making use of them already, AFAICT?  
> > 
> > It's my fault, I mixed the commits (in Arthur's series, "Add range..." was 
> > before "Add YUV support"), but for me it makes no sens to have the color 
> > property without the support in the driver.
> 
> Ah, so if there was no YUV support, these properties would never affect
> anything. Ok, I see where that is coming from.
>
> > 
> > Maybe it's better just to merge "Add range..." with "Add YUV support"?
> > 
> > > How is this a noop? Is it not exposing new UAPI from VKMS?  
> > 
> > It's not a no-op from userspace, but from the driver side, yes.
> 
> If it all is already hooked up and handled in the driver, then say just
> that?
> 
> "Now that the driver internally handles these quantization ranges and YUV
> encoding matrices, expose the UAPI for setting them."
> 
> And fix the commit summary line too, nothing "pixel_read" here.

Ack
 
Kind regards,
Louis Chauvet

> Thanks,
> pq
> 
> > 
> > Kind regards,
> > Louis Chauvet
> > 
> > > Thanks,
> > > pq
> > >   
> > > > 
> > > > Signed-off-by: Arthur Grillo <arthurgrillo@riseup.net>
> > > > [Louis Chauvet: retained only relevant parts]
> > > > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> > > > ---
> > > >  drivers/gpu/drm/vkms/vkms_plane.c | 9 +++++++++
> > > >  1 file changed, 9 insertions(+)
> > > > 
> > > > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
> > > > index 427ca67c60ce..95dfde297377 100644
> > > > --- a/drivers/gpu/drm/vkms/vkms_plane.c
> > > > +++ b/drivers/gpu/drm/vkms/vkms_plane.c
> > > > @@ -228,5 +228,14 @@ struct vkms_plane *vkms_plane_init(struct vkms_device *vkmsdev,
> > > >  	drm_plane_create_rotation_property(&plane->base, DRM_MODE_ROTATE_0,
> > > >  					   DRM_MODE_ROTATE_MASK | DRM_MODE_REFLECT_MASK);
> > > >  
> > > > +	drm_plane_create_color_properties(&plane->base,
> > > > +					  BIT(DRM_COLOR_YCBCR_BT601) |
> > > > +					  BIT(DRM_COLOR_YCBCR_BT709) |
> > > > +					  BIT(DRM_COLOR_YCBCR_BT2020),
> > > > +					  BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) |
> > > > +					  BIT(DRM_COLOR_YCBCR_FULL_RANGE),
> > > > +					  DRM_COLOR_YCBCR_BT601,
> > > > +					  DRM_COLOR_YCBCR_FULL_RANGE);
> > > > +
> > > >  	return plane;
> > > >  }
> > > >   
> > >   
> > 
> > 
> > 
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
index 427ca67c60ce..95dfde297377 100644
--- a/drivers/gpu/drm/vkms/vkms_plane.c
+++ b/drivers/gpu/drm/vkms/vkms_plane.c
@@ -228,5 +228,14 @@  struct vkms_plane *vkms_plane_init(struct vkms_device *vkmsdev,
 	drm_plane_create_rotation_property(&plane->base, DRM_MODE_ROTATE_0,
 					   DRM_MODE_ROTATE_MASK | DRM_MODE_REFLECT_MASK);
 
+	drm_plane_create_color_properties(&plane->base,
+					  BIT(DRM_COLOR_YCBCR_BT601) |
+					  BIT(DRM_COLOR_YCBCR_BT709) |
+					  BIT(DRM_COLOR_YCBCR_BT2020),
+					  BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) |
+					  BIT(DRM_COLOR_YCBCR_FULL_RANGE),
+					  DRM_COLOR_YCBCR_BT601,
+					  DRM_COLOR_YCBCR_FULL_RANGE);
+
 	return plane;
 }