return DRM_FORMAT_NV16;
case HAL_PIXEL_FORMAT_YCbCr_422_888:
return DRM_FORMAT_YUV422;
+ case HAL_PIXEL_FORMAT_P010_INTEL:
+ return DRM_FORMAT_P010;
}
return DRM_FORMAT_NONE;
return HAL_PIXEL_FORMAT_YCbCr_422_I;
case DRM_FORMAT_R16:
return HAL_PIXEL_FORMAT_Y16;
+ case DRM_FORMAT_P010:
+ return HAL_PIXEL_FORMAT_P010_INTEL;
case DRM_FORMAT_YUV444:
return HAL_PIXEL_FORMAT_YCbCr_444_888;
case DRM_FORMAT_NV21:
case HAL_PIXEL_FORMAT_YCbCr_444_888:
case HAL_PIXEL_FORMAT_YCrCb_420_SP:
case HAL_PIXEL_FORMAT_Y16:
+ case HAL_PIXEL_FORMAT_P010_INTEL:
return true;
default:
return false;
static const uint32_t private_linear_source_formats[] = { DRM_FORMAT_R16, DRM_FORMAT_NV16,
DRM_FORMAT_YUV420, DRM_FORMAT_YUV422,
- DRM_FORMAT_YUV444, DRM_FORMAT_NV21 };
+ DRM_FORMAT_YUV444, DRM_FORMAT_NV21,
+ DRM_FORMAT_P010 };
-static const uint32_t private_source_formats[] = { DRM_FORMAT_NV12_Y_TILED_INTEL };
+static const uint32_t private_source_formats[] = { DRM_FORMAT_P010, DRM_FORMAT_NV12_Y_TILED_INTEL };
#if !defined(DRM_CAP_CURSOR_WIDTH)
#define DRM_CAP_CURSOR_WIDTH 0x8
switch (format) {
case DRM_FORMAT_NV12_Y_TILED_INTEL:
return (plane == 0) ? 8 : 4;
+ case DRM_FORMAT_P010:
+ return (plane == 0) ? 16 : 8;
case DRM_FORMAT_YUV420:
case DRM_FORMAT_YUV422:
case DRM_FORMAT_YUV444:
switch (format) {
case DRM_FORMAT_NV12_Y_TILED_INTEL:
case DRM_FORMAT_YUV420:
+ case DRM_FORMAT_P010:
*vertical_subsampling = (plane == 0) ? 1 : 2;
break;
default:
return 1;
case DRM_FORMAT_NV12_Y_TILED_INTEL:
case DRM_FORMAT_NV16:
+ case DRM_FORMAT_P010:
return 2;
case DRM_FORMAT_YUV420:
case DRM_FORMAT_YUV422: