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

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

=== Other Extension Metadata

*Last Modified Date*::
    2020-07-28
*IP Status*::
    No known IP claims.
*Contributors*::
  - Joshua Ashton, Valve
  - Jason Ekstrand, Intel

=== Description

This extension defines the ename:VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT and
ename:VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT formats which are defined in other
current graphics APIs.

This extension may be useful for building translation layers for those APIs
or for porting applications that use these formats without having to resort
to swizzles.

When VK_EXT_custom_border_color is used, these formats are not subject to
the same restrictions for border color without format as with
VK_FORMAT_B4G4R4A4_UNORM_PACK16.

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

=== Version History

 * Revision 1, 2020-07-04 (Joshua Ashton)
   - Initial draft
