// Copyright 2020-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_ycbcr_2plane_444_formats.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2020-07-28
*IP Status*::
    No known IP claims.
*Contributors*::
  - Piers Daniell, NVIDIA
  - Ping Liu, Intel

=== Description

This extension adds some {YCbCr} formats that are in common use for video
encode and decode, but were not part of the
`apiext:VK_KHR_sampler_ycbcr_conversion` extension.

include::{generated}/interfaces/VK_EXT_ycbcr_2plane_444_formats.txt[]

=== Version History

 * Revision 1, 2020-03-08 (Piers Daniell)
   - Initial draft
