mbox series

[0/2] Better support for complex pixel formats

Message ID 20240201-yuv-v1-0-3ca376f27632@bootlin.com (mailing list archive)
Headers show
Series Better support for complex pixel formats | expand

Message

Louis Chauvet Feb. 1, 2024, 5:31 p.m. UTC
This patchset aims to solve issues I found in [1], and at the same time 
simplify the composition algorithm.

I sent more igt-gpu-tools test [2] to cover more things and detect the 
issues in [1].

This patchset is based on [1].

Patch 1/2: This patch is a no-op, but make the code more readable 
regarding the pixel_read functions.

Patch 2/2: This patch is more complex. My main target was to solve issues 
I found in [1], but as it was very complex to do it "in place", I choose 
to rework the composition function.
The main two advantages are:
- It's now possible to create conversion function for packed & grouped 
pixels. Some pixel formats need absolute x/y position and not only an 
offset in the buffer to extract the correct value. This part also solve 
the issues I found in [1].
- The rotation management is now way easier to understand, there is no 
more switch case in different places and instead of copy/pasting rotation 
formula I used drm_rect_* helpers.

[1]: https://lore.kernel.org/dri-devel/20240110-vkms-yuv-v2-0-952fcaa5a193@riseup.net/
[2]: https://lore.kernel.org/igt-dev/20240201-kms_tests-v1-0-bc34c5d28b3f@bootlin.com/T/#t

Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
---
Louis Chauvet (2):
      drm/vkms: Create a type to check a function pointer validity
      drm/vkms: Use a simpler composition function

 drivers/gpu/drm/vkms/vkms_composer.c |  97 ++++++++-----
 drivers/gpu/drm/vkms/vkms_drv.h      |  32 ++++-
 drivers/gpu/drm/vkms/vkms_formats.c  | 254 ++++++++++++++++++-----------------
 drivers/gpu/drm/vkms/vkms_formats.h  |   2 +-
 drivers/gpu/drm/vkms/vkms_plane.c    |  13 +-
 5 files changed, 236 insertions(+), 162 deletions(-)
---
base-commit: 5d189d57bb335a87ec38ea26fe43a5f3ed31ced7
change-id: 20240201-yuv-1337d90d9576

Best regards,

Comments

Maíra Canal Feb. 1, 2024, 10:07 p.m. UTC | #1
Hi Louis,

Thanks for your patches! Could you please rebase them on top of
drm-misc-next? It would make it easier for me to review and test the
patches.

Best Regards,
- Maíra

On 2/1/24 14:31, Louis Chauvet wrote:
> This patchset aims to solve issues I found in [1], and at the same time
> simplify the composition algorithm.
> 
> I sent more igt-gpu-tools test [2] to cover more things and detect the
> issues in [1].
> 
> This patchset is based on [1].
> 
> Patch 1/2: This patch is a no-op, but make the code more readable
> regarding the pixel_read functions.
> 
> Patch 2/2: This patch is more complex. My main target was to solve issues
> I found in [1], but as it was very complex to do it "in place", I choose
> to rework the composition function.
> The main two advantages are:
> - It's now possible to create conversion function for packed & grouped
> pixels. Some pixel formats need absolute x/y position and not only an
> offset in the buffer to extract the correct value. This part also solve
> the issues I found in [1].
> - The rotation management is now way easier to understand, there is no
> more switch case in different places and instead of copy/pasting rotation
> formula I used drm_rect_* helpers.
> 
> [1]: https://lore.kernel.org/dri-devel/20240110-vkms-yuv-v2-0-952fcaa5a193@riseup.net/
> [2]: https://lore.kernel.org/igt-dev/20240201-kms_tests-v1-0-bc34c5d28b3f@bootlin.com/T/#t
> 
> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> ---
> Louis Chauvet (2):
>        drm/vkms: Create a type to check a function pointer validity
>        drm/vkms: Use a simpler composition function
> 
>   drivers/gpu/drm/vkms/vkms_composer.c |  97 ++++++++-----
>   drivers/gpu/drm/vkms/vkms_drv.h      |  32 ++++-
>   drivers/gpu/drm/vkms/vkms_formats.c  | 254 ++++++++++++++++++-----------------
>   drivers/gpu/drm/vkms/vkms_formats.h  |   2 +-
>   drivers/gpu/drm/vkms/vkms_plane.c    |  13 +-
>   5 files changed, 236 insertions(+), 162 deletions(-)
> ---
> base-commit: 5d189d57bb335a87ec38ea26fe43a5f3ed31ced7
> change-id: 20240201-yuv-1337d90d9576
> 
> Best regards,
Louis Chauvet Feb. 2, 2024, 8:15 a.m. UTC | #2
Le 01/02/24 - 19:07, Maira Canal a écrit :
> Hi Louis,
> 
> Thanks for your patches! Could you please rebase them on top of
> drm-misc-next? It would make it easier for me to review and test the
> patches.
> 
> Best Regards,
> - Maíra

Hi Maíra,

Do you want me to rebase the whole YUV [1] series or should I extract and 
make my two patches independent?

[1]: https://lore.kernel.org/dri-devel/20240110-vkms-yuv-v2-0-952fcaa5a193@riseup.net/

Best regards,
Louis Chauvet
 
> On 2/1/24 14:31, Louis Chauvet wrote:
> > This patchset aims to solve issues I found in [1], and at the same time
> > simplify the composition algorithm.
> > 
> > I sent more igt-gpu-tools test [2] to cover more things and detect the
> > issues in [1].
> > 
> > This patchset is based on [1].
> > 
> > Patch 1/2: This patch is a no-op, but make the code more readable
> > regarding the pixel_read functions.
> > 
> > Patch 2/2: This patch is more complex. My main target was to solve issues
> > I found in [1], but as it was very complex to do it "in place", I choose
> > to rework the composition function.
> > The main two advantages are:
> > - It's now possible to create conversion function for packed & grouped
> > pixels. Some pixel formats need absolute x/y position and not only an
> > offset in the buffer to extract the correct value. This part also solve
> > the issues I found in [1].
> > - The rotation management is now way easier to understand, there is no
> > more switch case in different places and instead of copy/pasting rotation
> > formula I used drm_rect_* helpers.
> > 
> > [1]: https://lore.kernel.org/dri-devel/20240110-vkms-yuv-v2-0-952fcaa5a193@riseup.net/
> > [2]: https://lore.kernel.org/igt-dev/20240201-kms_tests-v1-0-bc34c5d28b3f@bootlin.com/T/#t
> > 
> > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> > ---
> > Louis Chauvet (2):
> >        drm/vkms: Create a type to check a function pointer validity
> >        drm/vkms: Use a simpler composition function
> > 
> >   drivers/gpu/drm/vkms/vkms_composer.c |  97 ++++++++-----
> >   drivers/gpu/drm/vkms/vkms_drv.h      |  32 ++++-
> >   drivers/gpu/drm/vkms/vkms_formats.c  | 254 ++++++++++++++++++-----------------
> >   drivers/gpu/drm/vkms/vkms_formats.h  |   2 +-
> >   drivers/gpu/drm/vkms/vkms_plane.c    |  13 +-
> >   5 files changed, 236 insertions(+), 162 deletions(-)
> > ---
> > base-commit: 5d189d57bb335a87ec38ea26fe43a5f3ed31ced7
> > change-id: 20240201-yuv-1337d90d9576
> > 
> > Best regards,
Maíra Canal Feb. 2, 2024, 9:40 a.m. UTC | #3
On 2/2/24 05:15, Louis Chauvet wrote:
> Le 01/02/24 - 19:07, Maira Canal a écrit :
>> Hi Louis,
>>
>> Thanks for your patches! Could you please rebase them on top of
>> drm-misc-next? It would make it easier for me to review and test the
>> patches.
>>
>> Best Regards,
>> - Maíra
> 
> Hi Maíra,
> 
> Do you want me to rebase the whole YUV [1] series or should I extract and
> make my two patches independent?

Please, make this two patches independent.

Best Regards,
- Maíra

> 
> [1]: https://lore.kernel.org/dri-devel/20240110-vkms-yuv-v2-0-952fcaa5a193@riseup.net/
> 
> Best regards,
> Louis Chauvet
>   
>> On 2/1/24 14:31, Louis Chauvet wrote:
>>> This patchset aims to solve issues I found in [1], and at the same time
>>> simplify the composition algorithm.
>>>
>>> I sent more igt-gpu-tools test [2] to cover more things and detect the
>>> issues in [1].
>>>
>>> This patchset is based on [1].
>>>
>>> Patch 1/2: This patch is a no-op, but make the code more readable
>>> regarding the pixel_read functions.
>>>
>>> Patch 2/2: This patch is more complex. My main target was to solve issues
>>> I found in [1], but as it was very complex to do it "in place", I choose
>>> to rework the composition function.
>>> The main two advantages are:
>>> - It's now possible to create conversion function for packed & grouped
>>> pixels. Some pixel formats need absolute x/y position and not only an
>>> offset in the buffer to extract the correct value. This part also solve
>>> the issues I found in [1].
>>> - The rotation management is now way easier to understand, there is no
>>> more switch case in different places and instead of copy/pasting rotation
>>> formula I used drm_rect_* helpers.
>>>
>>> [1]: https://lore.kernel.org/dri-devel/20240110-vkms-yuv-v2-0-952fcaa5a193@riseup.net/
>>> [2]: https://lore.kernel.org/igt-dev/20240201-kms_tests-v1-0-bc34c5d28b3f@bootlin.com/T/#t
>>>
>>> Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
>>> ---
>>> Louis Chauvet (2):
>>>         drm/vkms: Create a type to check a function pointer validity
>>>         drm/vkms: Use a simpler composition function
>>>
>>>    drivers/gpu/drm/vkms/vkms_composer.c |  97 ++++++++-----
>>>    drivers/gpu/drm/vkms/vkms_drv.h      |  32 ++++-
>>>    drivers/gpu/drm/vkms/vkms_formats.c  | 254 ++++++++++++++++++-----------------
>>>    drivers/gpu/drm/vkms/vkms_formats.h  |   2 +-
>>>    drivers/gpu/drm/vkms/vkms_plane.c    |  13 +-
>>>    5 files changed, 236 insertions(+), 162 deletions(-)
>>> ---
>>> base-commit: 5d189d57bb335a87ec38ea26fe43a5f3ed31ced7
>>> change-id: 20240201-yuv-1337d90d9576
>>>
>>> Best regards,