diff options
author | Geert Uytterhoeven <geert+renesas@glider.be> | 2023-07-05 15:24:02 +0200 |
---|---|---|
committer | Dmitry Baryshkov <dbaryshkov@gmail.com> | 2023-09-08 17:42:38 +0000 |
commit | be42051eadc53c55ca1920a7bfedb9ad867838dc (patch) | |
tree | 6b9985c0ff197c2cc2a5c3bce478f3f27a16b41e | |
parent | 8e5286d4f982b7dd372a8747d5cf55438e74d02d (diff) |
modetest: add support for DRM_FORMAT_NV{24,42}
Add support for creating buffers using semi-planar YUV formats with
non-subsampled chroma planes.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
v2:
- Add Reviewed-by.
-rw-r--r-- | tests/modetest/buffers.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c index 4119f048..c122fb3f 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; |