[PATCH libdrm 3/3] modetest: Add support for DRM_FORMAT_NV{24, 42}
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Jul 7 10:38:41 UTC 2023
Hi Geert,
Thank you for the patch.
On Wed, Jul 05, 2023 at 05:26:17PM +0200, Geert Uytterhoeven wrote:
> Add support for creating buffers using semi-planar YUV formats with
> non-subsampled chroma planes.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
> ---
> tests/modetest/buffers.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
> index 0b55aeddfef9a854..0605b12552bb8eec 100644
> --- a/tests/modetest/buffers.c
> +++ b/tests/modetest/buffers.c
> @@ -129,6 +129,8 @@ bo_create(int fd, unsigned int format,
> case DRM_FORMAT_NV21:
> case DRM_FORMAT_NV16:
> case DRM_FORMAT_NV61:
> + case DRM_FORMAT_NV24:
> + case DRM_FORMAT_NV42:
> case DRM_FORMAT_YUV420:
> case DRM_FORMAT_YVU420:
> bpp = 8;
> @@ -208,6 +210,11 @@ bo_create(int fd, unsigned int format,
> virtual_height = height * 2;
> break;
>
> + case DRM_FORMAT_NV24:
> + case DRM_FORMAT_NV42:
> + virtual_height = height * 3;
> + break;
> +
> default:
> virtual_height = height;
> break;
> @@ -255,6 +262,19 @@ bo_create(int fd, unsigned int format,
> planes[1] = virtual + offsets[1];
> break;
>
> + case DRM_FORMAT_NV24:
> + case DRM_FORMAT_NV42:
> + offsets[0] = 0;
> + handles[0] = bo->handle;
> + pitches[0] = bo->pitch;
> + pitches[1] = pitches[0] * 2;
> + offsets[1] = pitches[0] * height;
> + handles[1] = bo->handle;
> +
> + planes[0] = virtual;
> + planes[1] = virtual + offsets[1];
> + break;
> +
> case DRM_FORMAT_YUV420:
> case DRM_FORMAT_YVU420:
> offsets[0] = 0;
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list