#define DRM_FORMAT_FLEX_IMPLEMENTATION_DEFINED fourcc_code('9', '9', '9', '8')
#define DRM_FORMAT_FLEX_YCbCr_420_888 fourcc_code('9', '9', '9', '9')
+// TODO(crbug.com/958181): remove this definition once drm_fourcc.h contains it.
+#ifndef DRM_FORMAT_P010
+#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
+#endif
+
// clang-format on
struct driver;
struct bo;
.bytes_per_pixel = { 1, 1, 1 }
};
+static const struct planar_layout biplanar_yuv_p010_layout = {
+ .num_planes = 2,
+ .horizontal_subsampling = { 1, 2 },
+ .vertical_subsampling = { 1, 2 },
+ .bytes_per_pixel = { 2, 4 }
+};
+
// clang-format on
static const struct planar_layout *layout_from_format(uint32_t format)
case DRM_FORMAT_NV21:
return &biplanar_yuv_420_layout;
+ case DRM_FORMAT_P010:
+ return &biplanar_yuv_p010_layout;
+
case DRM_FORMAT_ABGR1555:
case DRM_FORMAT_ABGR4444:
case DRM_FORMAT_ARGB1555:
DRM_FORMAT_UYVY, DRM_FORMAT_YUYV };
static const uint32_t texture_source_formats[] = { DRM_FORMAT_YVU420, DRM_FORMAT_YVU420_ANDROID,
- DRM_FORMAT_NV12 };
+ DRM_FORMAT_NV12, DRM_FORMAT_P010 };
struct i915_device {
uint32_t gen;