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.main
parent
8e5286d4f9
commit
be42051ead
|
@ -129,6 +129,8 @@ bo_create(int fd, unsigned int format,
|
||||||
case DRM_FORMAT_NV21:
|
case DRM_FORMAT_NV21:
|
||||||
case DRM_FORMAT_NV16:
|
case DRM_FORMAT_NV16:
|
||||||
case DRM_FORMAT_NV61:
|
case DRM_FORMAT_NV61:
|
||||||
|
case DRM_FORMAT_NV24:
|
||||||
|
case DRM_FORMAT_NV42:
|
||||||
case DRM_FORMAT_YUV420:
|
case DRM_FORMAT_YUV420:
|
||||||
case DRM_FORMAT_YVU420:
|
case DRM_FORMAT_YVU420:
|
||||||
bpp = 8;
|
bpp = 8;
|
||||||
|
@ -208,6 +210,11 @@ bo_create(int fd, unsigned int format,
|
||||||
virtual_height = height * 2;
|
virtual_height = height * 2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DRM_FORMAT_NV24:
|
||||||
|
case DRM_FORMAT_NV42:
|
||||||
|
virtual_height = height * 3;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
virtual_height = height;
|
virtual_height = height;
|
||||||
break;
|
break;
|
||||||
|
@ -255,6 +262,19 @@ bo_create(int fd, unsigned int format,
|
||||||
planes[1] = virtual + offsets[1];
|
planes[1] = virtual + offsets[1];
|
||||||
break;
|
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_YUV420:
|
||||||
case DRM_FORMAT_YVU420:
|
case DRM_FORMAT_YVU420:
|
||||||
offsets[0] = 0;
|
offsets[0] = 0;
|
||||||
|
|
Loading…
Reference in New Issue