diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c index 5f86e15b..c895423d 100644 --- a/tests/modetest/buffers.c +++ b/tests/modetest/buffers.c @@ -186,6 +186,12 @@ bo_create(int fd, unsigned int format, case DRM_FORMAT_VYUY: case DRM_FORMAT_YUYV: case DRM_FORMAT_YVYU: + case DRM_FORMAT_P010: + case DRM_FORMAT_P012: + case DRM_FORMAT_P016: + case DRM_FORMAT_S010: + case DRM_FORMAT_S012: + case DRM_FORMAT_S016: bpp = 16; break; @@ -231,6 +237,9 @@ bo_create(int fd, unsigned int format, case DRM_FORMAT_NV15: case DRM_FORMAT_YUV420: case DRM_FORMAT_YVU420: + case DRM_FORMAT_S010: + case DRM_FORMAT_S012: + case DRM_FORMAT_S016: is_planar = true; xsub = 2; ysub = 2; @@ -241,6 +250,9 @@ bo_create(int fd, unsigned int format, case DRM_FORMAT_NV20: case DRM_FORMAT_YUV422: case DRM_FORMAT_YVU422: + case DRM_FORMAT_P010: + case DRM_FORMAT_P012: + case DRM_FORMAT_P016: is_planar = true; xsub = 2; ysub = 1; @@ -303,6 +315,9 @@ bo_create(int fd, unsigned int format, case DRM_FORMAT_NV42: case DRM_FORMAT_NV20: case DRM_FORMAT_NV30: + case DRM_FORMAT_P010: + case DRM_FORMAT_P012: + case DRM_FORMAT_P016: offsets[0] = 0; handles[0] = bo->handle; pitches[0] = bo->pitch; @@ -320,6 +335,9 @@ bo_create(int fd, unsigned int format, case DRM_FORMAT_YVU422: case DRM_FORMAT_YUV444: case DRM_FORMAT_YVU444: + case DRM_FORMAT_S010: + case DRM_FORMAT_S012: + case DRM_FORMAT_S016: offsets[0] = 0; handles[0] = bo->handle; pitches[0] = bo->pitch; diff --git a/tests/util/format.c b/tests/util/format.c index 3a910929..56753e7c 100644 --- a/tests/util/format.c +++ b/tests/util/format.c @@ -36,7 +36,9 @@ .rgb = { { (rl), (ro) }, { (gl), (go) }, { (bl), (bo) }, { (al), (ao) } } #define MAKE_YUV_INFO(order, xsub, ysub, chroma_stride) \ - .yuv = { (order), (xsub), (ysub), (chroma_stride) } + .yuv = { (order), (xsub), (ysub), (chroma_stride), 0 } +#define MAKE_YUV_INFO_SHIFT(order, xsub, ysub, chroma_stride, shift) \ + .yuv = { (order), (xsub), (ysub), (chroma_stride), (shift) } static const struct util_format_info format_info[] = { /* Indexed */ @@ -59,6 +61,9 @@ static const struct util_format_info format_info[] = { { DRM_FORMAT_NV15, "NV15", MAKE_YUV_INFO(YUV_YCbCr, 2, 2, 2) }, { DRM_FORMAT_NV20, "NV20", MAKE_YUV_INFO(YUV_YCbCr, 2, 1, 2) }, { DRM_FORMAT_NV30, "NV30", MAKE_YUV_INFO(YUV_YCbCr, 1, 1, 2) }, + { DRM_FORMAT_P010, "P010", MAKE_YUV_INFO_SHIFT(YUV_YCbCr, 2, 2, 2, 8) }, + { DRM_FORMAT_P012, "P012", MAKE_YUV_INFO_SHIFT(YUV_YCbCr, 2, 2, 2, 8) }, + { DRM_FORMAT_P016, "P016", MAKE_YUV_INFO_SHIFT(YUV_YCbCr, 2, 2, 2, 8) }, /* YUV planar */ { DRM_FORMAT_YUV420, "YU12", MAKE_YUV_INFO(YUV_YCbCr, 2, 2, 1) }, { DRM_FORMAT_YVU420, "YV12", MAKE_YUV_INFO(YUV_YCrCb, 2, 2, 1) }, @@ -66,6 +71,9 @@ static const struct util_format_info format_info[] = { { DRM_FORMAT_YVU422, "YV16", MAKE_YUV_INFO(YUV_YCrCb, 2, 1, 1) }, { DRM_FORMAT_YUV444, "YU24", MAKE_YUV_INFO(YUV_YCbCr, 1, 1, 1) }, { DRM_FORMAT_YVU444, "YV24", MAKE_YUV_INFO(YUV_YCrCb, 1, 1, 1) }, + { DRM_FORMAT_S010, "S010", MAKE_YUV_INFO_SHIFT(YUV_YCbCr, 2, 2, 1, 2) }, + { DRM_FORMAT_S012, "S012", MAKE_YUV_INFO_SHIFT(YUV_YCbCr, 2, 2, 1, 4) }, + { DRM_FORMAT_S016, "S016", MAKE_YUV_INFO_SHIFT(YUV_YCbCr, 2, 2, 1, 8) }, /* RGB8 */ { DRM_FORMAT_RGB332, "RGB8", MAKE_RGB_INFO(3, 5, 3, 2, 2, 0, 0, 0) }, { DRM_FORMAT_BGR233, "BGR8", MAKE_RGB_INFO(3, 0, 3, 3, 2, 6, 0, 0) }, diff --git a/tests/util/format.h b/tests/util/format.h index b847c9f2..4a7af397 100644 --- a/tests/util/format.h +++ b/tests/util/format.h @@ -50,6 +50,7 @@ struct util_yuv_info { unsigned int xsub; unsigned int ysub; unsigned int chroma_stride; + unsigned int shift; }; struct util_format_info {