diff --git a/src/common/meta-cogl-drm-formats.h b/src/common/meta-cogl-drm-formats.h index efa20662a..00a5349ce 100644 --- a/src/common/meta-cogl-drm-formats.h +++ b/src/common/meta-cogl-drm-formats.h @@ -62,6 +62,7 @@ static const CoglDrmFormatMap meta_cogl_drm_format_map[] = { { DRM_FORMAT_ABGR16161616F, COGL_PIXEL_FORMAT_RGBA_FP_16161616_PRE, META_MULTI_TEXTURE_FORMAT_SIMPLE }, { DRM_FORMAT_YUYV, COGL_PIXEL_FORMAT_ANY, META_MULTI_TEXTURE_FORMAT_YUYV }, { DRM_FORMAT_NV12, COGL_PIXEL_FORMAT_ANY, META_MULTI_TEXTURE_FORMAT_NV12 }, + { DRM_FORMAT_P010, COGL_PIXEL_FORMAT_ANY, META_MULTI_TEXTURE_FORMAT_P010 }, { DRM_FORMAT_YUV420, COGL_PIXEL_FORMAT_ANY, META_MULTI_TEXTURE_FORMAT_YUV420 }, #elif G_BYTE_ORDER == G_BIG_ENDIAN { DRM_FORMAT_RGBX8888, COGL_PIXEL_FORMAT_RGBX_8888, META_MULTI_TEXTURE_FORMAT_SIMPLE }, diff --git a/src/compositor/meta-multi-texture-format.c b/src/compositor/meta-multi-texture-format.c index 985d5b095..9f338e584 100644 --- a/src/compositor/meta-multi-texture-format.c +++ b/src/compositor/meta-multi-texture-format.c @@ -135,6 +135,16 @@ static MetaMultiTextureFormatInfo multi_format_table[] = { .rgb_shader = y_uv_shader, .snippet_once = G_ONCE_INIT, }, + [META_MULTI_TEXTURE_FORMAT_P010] = { + .name = "P010", + .n_planes = 2, + .subformats = { COGL_PIXEL_FORMAT_G_16, COGL_PIXEL_FORMAT_RG_1616 }, + .plane_indices = { 0, 1 }, + .hsub = { 1, 2 }, + .vsub = { 1, 2 }, + .rgb_shader = y_uv_shader, + .snippet_once = G_ONCE_INIT, + }, /* 3 plane YUV */ [META_MULTI_TEXTURE_FORMAT_YUV420] = { .name = "YUV420", diff --git a/src/meta/meta-multi-texture-format.h b/src/meta/meta-multi-texture-format.h index 116261cdb..1bb752259 100644 --- a/src/meta/meta-multi-texture-format.h +++ b/src/meta/meta-multi-texture-format.h @@ -37,6 +37,7 @@ typedef enum _MetaMultiTextureFormat META_MULTI_TEXTURE_FORMAT_SIMPLE, META_MULTI_TEXTURE_FORMAT_YUYV, META_MULTI_TEXTURE_FORMAT_NV12, + META_MULTI_TEXTURE_FORMAT_P010, META_MULTI_TEXTURE_FORMAT_YUV420, } MetaMultiTextureFormat;