1e5c31af7Sopenharmony_ci// Copyright 2015-2024 The Khronos Group Inc. 2e5c31af7Sopenharmony_ci// 3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0 4e5c31af7Sopenharmony_ci 5e5c31af7Sopenharmony_ci[[formats]] 6e5c31af7Sopenharmony_ci= Formats 7e5c31af7Sopenharmony_ci 8e5c31af7Sopenharmony_ciSupported buffer and image formats may: vary across implementations. 9e5c31af7Sopenharmony_ciA minimum set of format features are guaranteed, but others must: be 10e5c31af7Sopenharmony_ciexplicitly queried before use to ensure they are supported by the 11e5c31af7Sopenharmony_ciimplementation. 12e5c31af7Sopenharmony_ci 13e5c31af7Sopenharmony_ciThe features for the set of formats (elink:VkFormat) supported by the 14e5c31af7Sopenharmony_ciimplementation are queried individually using the 15e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties command. 16e5c31af7Sopenharmony_ci 17e5c31af7Sopenharmony_ci 18e5c31af7Sopenharmony_ci[[formats-definition]] 19e5c31af7Sopenharmony_ci== Format Definition 20e5c31af7Sopenharmony_ci 21e5c31af7Sopenharmony_ci[open,refpage='VkFormat',desc='Available image formats',type='enums'] 22e5c31af7Sopenharmony_ci-- 23e5c31af7Sopenharmony_ciThe following image formats can: be passed to, and may: be returned from 24e5c31af7Sopenharmony_ciVulkan commands. 25e5c31af7Sopenharmony_ciThe memory required to store each format is discussed with that format, and 26e5c31af7Sopenharmony_cialso summarized in the <<texel-block-size, Representation and Texel Block 27e5c31af7Sopenharmony_ciSize>> section and the <<formats-compatibility, Compatible formats>> table. 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkFormat.adoc[] 30e5c31af7Sopenharmony_ci 31e5c31af7Sopenharmony_ci * ename:VK_FORMAT_UNDEFINED specifies that the format is not specified. 32e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R4G4_UNORM_PACK8 specifies a two-component, 8-bit packed 33e5c31af7Sopenharmony_ci unsigned normalized format that has a 4-bit R component in bits 4..7, 34e5c31af7Sopenharmony_ci and a 4-bit G component in bits 0..3. 35e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R4G4B4A4_UNORM_PACK16 specifies a four-component, 16-bit 36e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 4-bit R component in bits 37e5c31af7Sopenharmony_ci 12..15, a 4-bit G component in bits 8..11, a 4-bit B component in bits 38e5c31af7Sopenharmony_ci 4..7, and a 4-bit A component in bits 0..3. 39e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B4G4R4A4_UNORM_PACK16 specifies a four-component, 16-bit 40e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 4-bit B component in bits 41e5c31af7Sopenharmony_ci 12..15, a 4-bit G component in bits 8..11, a 4-bit R component in bits 42e5c31af7Sopenharmony_ci 4..7, and a 4-bit A component in bits 0..3. 43e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_4444_formats[] 44e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A4R4G4B4_UNORM_PACK16 specifies a four-component, 16-bit 45e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 4-bit A component in bits 46e5c31af7Sopenharmony_ci 12..15, a 4-bit R component in bits 8..11, a 4-bit G component in bits 47e5c31af7Sopenharmony_ci 4..7, and a 4-bit B component in bits 0..3. 48e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A4B4G4R4_UNORM_PACK16 specifies a four-component, 16-bit 49e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 4-bit A component in bits 50e5c31af7Sopenharmony_ci 12..15, a 4-bit B component in bits 8..11, a 4-bit G component in bits 51e5c31af7Sopenharmony_ci 4..7, and a 4-bit R component in bits 0..3. 52e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_4444_formats[] 53e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R5G6B5_UNORM_PACK16 specifies a three-component, 16-bit 54e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 5-bit R component in bits 55e5c31af7Sopenharmony_ci 11..15, a 6-bit G component in bits 5..10, and a 5-bit B component in 56e5c31af7Sopenharmony_ci bits 0..4. 57e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B5G6R5_UNORM_PACK16 specifies a three-component, 16-bit 58e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 5-bit B component in bits 59e5c31af7Sopenharmony_ci 11..15, a 6-bit G component in bits 5..10, and a 5-bit R component in 60e5c31af7Sopenharmony_ci bits 0..4. 61e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R5G5B5A1_UNORM_PACK16 specifies a four-component, 16-bit 62e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 5-bit R component in bits 63e5c31af7Sopenharmony_ci 11..15, a 5-bit G component in bits 6..10, a 5-bit B component in bits 64e5c31af7Sopenharmony_ci 1..5, and a 1-bit A component in bit 0. 65e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 specifies a four-component, 16-bit 66e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 5-bit B component in bits 67e5c31af7Sopenharmony_ci 11..15, a 5-bit G component in bits 6..10, a 5-bit R component in bits 68e5c31af7Sopenharmony_ci 1..5, and a 1-bit A component in bit 0. 69e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A1R5G5B5_UNORM_PACK16 specifies a four-component, 16-bit 70e5c31af7Sopenharmony_ci packed unsigned normalized format that has a 1-bit A component in bit 71e5c31af7Sopenharmony_ci 15, a 5-bit R component in bits 10..14, a 5-bit G component in bits 72e5c31af7Sopenharmony_ci 5..9, and a 5-bit B component in bits 0..4. 73e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 74e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR specifies a four-component, 75e5c31af7Sopenharmony_ci 16-bit packed unsigned normalized format that has a 1-bit A component in 76e5c31af7Sopenharmony_ci bit 15, a 5-bit B component in bits 10..14, a 5-bit G component in bits 77e5c31af7Sopenharmony_ci 5..9, and a 5-bit R component in bits 0..4. 78e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8_UNORM_KHR specifies a one-component, 8-bit unsigned 79e5c31af7Sopenharmony_ci normalized format that has a single 8-bit A component. 80e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 81e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_UNORM specifies a one-component, 8-bit unsigned 82e5c31af7Sopenharmony_ci normalized format that has a single 8-bit R component. 83e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_SNORM specifies a one-component, 8-bit signed 84e5c31af7Sopenharmony_ci normalized format that has a single 8-bit R component. 85e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_USCALED specifies a one-component, 8-bit unsigned 86e5c31af7Sopenharmony_ci scaled integer format that has a single 8-bit R component. 87e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_SSCALED specifies a one-component, 8-bit signed 88e5c31af7Sopenharmony_ci scaled integer format that has a single 8-bit R component. 89e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_UINT specifies a one-component, 8-bit unsigned 90e5c31af7Sopenharmony_ci integer format that has a single 8-bit R component. 91e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_SINT specifies a one-component, 8-bit signed integer 92e5c31af7Sopenharmony_ci format that has a single 8-bit R component. 93e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_SRGB specifies a one-component, 8-bit unsigned 94e5c31af7Sopenharmony_ci normalized format that has a single 8-bit R component stored with sRGB 95e5c31af7Sopenharmony_ci nonlinear encoding. 96e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_UNORM specifies a two-component, 16-bit unsigned 97e5c31af7Sopenharmony_ci normalized format that has an 8-bit R component in byte 0, and an 8-bit 98e5c31af7Sopenharmony_ci G component in byte 1. 99e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_SNORM specifies a two-component, 16-bit signed 100e5c31af7Sopenharmony_ci normalized format that has an 8-bit R component in byte 0, and an 8-bit 101e5c31af7Sopenharmony_ci G component in byte 1. 102e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_USCALED specifies a two-component, 16-bit unsigned 103e5c31af7Sopenharmony_ci scaled integer format that has an 8-bit R component in byte 0, and an 104e5c31af7Sopenharmony_ci 8-bit G component in byte 1. 105e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_SSCALED specifies a two-component, 16-bit signed 106e5c31af7Sopenharmony_ci scaled integer format that has an 8-bit R component in byte 0, and an 107e5c31af7Sopenharmony_ci 8-bit G component in byte 1. 108e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_UINT specifies a two-component, 16-bit unsigned 109e5c31af7Sopenharmony_ci integer format that has an 8-bit R component in byte 0, and an 8-bit G 110e5c31af7Sopenharmony_ci component in byte 1. 111e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_SINT specifies a two-component, 16-bit signed 112e5c31af7Sopenharmony_ci integer format that has an 8-bit R component in byte 0, and an 8-bit G 113e5c31af7Sopenharmony_ci component in byte 1. 114e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_SRGB specifies a two-component, 16-bit unsigned 115e5c31af7Sopenharmony_ci normalized format that has an 8-bit R component stored with sRGB 116e5c31af7Sopenharmony_ci nonlinear encoding in byte 0, and an 8-bit G component stored with sRGB 117e5c31af7Sopenharmony_ci nonlinear encoding in byte 1. 118e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_UNORM specifies a three-component, 24-bit 119e5c31af7Sopenharmony_ci unsigned normalized format that has an 8-bit R component in byte 0, an 120e5c31af7Sopenharmony_ci 8-bit G component in byte 1, and an 8-bit B component in byte 2. 121e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_SNORM specifies a three-component, 24-bit signed 122e5c31af7Sopenharmony_ci normalized format that has an 8-bit R component in byte 0, an 8-bit G 123e5c31af7Sopenharmony_ci component in byte 1, and an 8-bit B component in byte 2. 124e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_USCALED specifies a three-component, 24-bit 125e5c31af7Sopenharmony_ci unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit 126e5c31af7Sopenharmony_ci G component in byte 1, and an 8-bit B component in byte 2. 127e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_SSCALED specifies a three-component, 24-bit 128e5c31af7Sopenharmony_ci signed scaled format that has an 8-bit R component in byte 0, an 8-bit G 129e5c31af7Sopenharmony_ci component in byte 1, and an 8-bit B component in byte 2. 130e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_UINT specifies a three-component, 24-bit unsigned 131e5c31af7Sopenharmony_ci integer format that has an 8-bit R component in byte 0, an 8-bit G 132e5c31af7Sopenharmony_ci component in byte 1, and an 8-bit B component in byte 2. 133e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_SINT specifies a three-component, 24-bit signed 134e5c31af7Sopenharmony_ci integer format that has an 8-bit R component in byte 0, an 8-bit G 135e5c31af7Sopenharmony_ci component in byte 1, and an 8-bit B component in byte 2. 136e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_SRGB specifies a three-component, 24-bit unsigned 137e5c31af7Sopenharmony_ci normalized format that has an 8-bit R component stored with sRGB 138e5c31af7Sopenharmony_ci nonlinear encoding in byte 0, an 8-bit G component stored with sRGB 139e5c31af7Sopenharmony_ci nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB 140e5c31af7Sopenharmony_ci nonlinear encoding in byte 2. 141e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_UNORM specifies a three-component, 24-bit 142e5c31af7Sopenharmony_ci unsigned normalized format that has an 8-bit B component in byte 0, an 143e5c31af7Sopenharmony_ci 8-bit G component in byte 1, and an 8-bit R component in byte 2. 144e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_SNORM specifies a three-component, 24-bit signed 145e5c31af7Sopenharmony_ci normalized format that has an 8-bit B component in byte 0, an 8-bit G 146e5c31af7Sopenharmony_ci component in byte 1, and an 8-bit R component in byte 2. 147e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_USCALED specifies a three-component, 24-bit 148e5c31af7Sopenharmony_ci unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit 149e5c31af7Sopenharmony_ci G component in byte 1, and an 8-bit R component in byte 2. 150e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_SSCALED specifies a three-component, 24-bit 151e5c31af7Sopenharmony_ci signed scaled format that has an 8-bit B component in byte 0, an 8-bit G 152e5c31af7Sopenharmony_ci component in byte 1, and an 8-bit R component in byte 2. 153e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_UINT specifies a three-component, 24-bit unsigned 154e5c31af7Sopenharmony_ci integer format that has an 8-bit B component in byte 0, an 8-bit G 155e5c31af7Sopenharmony_ci component in byte 1, and an 8-bit R component in byte 2. 156e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_SINT specifies a three-component, 24-bit signed 157e5c31af7Sopenharmony_ci integer format that has an 8-bit B component in byte 0, an 8-bit G 158e5c31af7Sopenharmony_ci component in byte 1, and an 8-bit R component in byte 2. 159e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_SRGB specifies a three-component, 24-bit unsigned 160e5c31af7Sopenharmony_ci normalized format that has an 8-bit B component stored with sRGB 161e5c31af7Sopenharmony_ci nonlinear encoding in byte 0, an 8-bit G component stored with sRGB 162e5c31af7Sopenharmony_ci nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB 163e5c31af7Sopenharmony_ci nonlinear encoding in byte 2. 164e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_UNORM specifies a four-component, 32-bit 165e5c31af7Sopenharmony_ci unsigned normalized format that has an 8-bit R component in byte 0, an 166e5c31af7Sopenharmony_ci 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 167e5c31af7Sopenharmony_ci 8-bit A component in byte 3. 168e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_SNORM specifies a four-component, 32-bit signed 169e5c31af7Sopenharmony_ci normalized format that has an 8-bit R component in byte 0, an 8-bit G 170e5c31af7Sopenharmony_ci component in byte 1, an 8-bit B component in byte 2, and an 8-bit A 171e5c31af7Sopenharmony_ci component in byte 3. 172e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_USCALED specifies a four-component, 32-bit 173e5c31af7Sopenharmony_ci unsigned scaled format that has an 8-bit R component in byte 0, an 8-bit 174e5c31af7Sopenharmony_ci G component in byte 1, an 8-bit B component in byte 2, and an 8-bit A 175e5c31af7Sopenharmony_ci component in byte 3. 176e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_SSCALED specifies a four-component, 32-bit 177e5c31af7Sopenharmony_ci signed scaled format that has an 8-bit R component in byte 0, an 8-bit G 178e5c31af7Sopenharmony_ci component in byte 1, an 8-bit B component in byte 2, and an 8-bit A 179e5c31af7Sopenharmony_ci component in byte 3. 180e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_UINT specifies a four-component, 32-bit 181e5c31af7Sopenharmony_ci unsigned integer format that has an 8-bit R component in byte 0, an 182e5c31af7Sopenharmony_ci 8-bit G component in byte 1, an 8-bit B component in byte 2, and an 183e5c31af7Sopenharmony_ci 8-bit A component in byte 3. 184e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_SINT specifies a four-component, 32-bit signed 185e5c31af7Sopenharmony_ci integer format that has an 8-bit R component in byte 0, an 8-bit G 186e5c31af7Sopenharmony_ci component in byte 1, an 8-bit B component in byte 2, and an 8-bit A 187e5c31af7Sopenharmony_ci component in byte 3. 188e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_SRGB specifies a four-component, 32-bit 189e5c31af7Sopenharmony_ci unsigned normalized format that has an 8-bit R component stored with 190e5c31af7Sopenharmony_ci sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB 191e5c31af7Sopenharmony_ci nonlinear encoding in byte 1, an 8-bit B component stored with sRGB 192e5c31af7Sopenharmony_ci nonlinear encoding in byte 2, and an 8-bit A component in byte 3. 193e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_UNORM specifies a four-component, 32-bit 194e5c31af7Sopenharmony_ci unsigned normalized format that has an 8-bit B component in byte 0, an 195e5c31af7Sopenharmony_ci 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 196e5c31af7Sopenharmony_ci 8-bit A component in byte 3. 197e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_SNORM specifies a four-component, 32-bit signed 198e5c31af7Sopenharmony_ci normalized format that has an 8-bit B component in byte 0, an 8-bit G 199e5c31af7Sopenharmony_ci component in byte 1, an 8-bit R component in byte 2, and an 8-bit A 200e5c31af7Sopenharmony_ci component in byte 3. 201e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_USCALED specifies a four-component, 32-bit 202e5c31af7Sopenharmony_ci unsigned scaled format that has an 8-bit B component in byte 0, an 8-bit 203e5c31af7Sopenharmony_ci G component in byte 1, an 8-bit R component in byte 2, and an 8-bit A 204e5c31af7Sopenharmony_ci component in byte 3. 205e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_SSCALED specifies a four-component, 32-bit 206e5c31af7Sopenharmony_ci signed scaled format that has an 8-bit B component in byte 0, an 8-bit G 207e5c31af7Sopenharmony_ci component in byte 1, an 8-bit R component in byte 2, and an 8-bit A 208e5c31af7Sopenharmony_ci component in byte 3. 209e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_UINT specifies a four-component, 32-bit 210e5c31af7Sopenharmony_ci unsigned integer format that has an 8-bit B component in byte 0, an 211e5c31af7Sopenharmony_ci 8-bit G component in byte 1, an 8-bit R component in byte 2, and an 212e5c31af7Sopenharmony_ci 8-bit A component in byte 3. 213e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_SINT specifies a four-component, 32-bit signed 214e5c31af7Sopenharmony_ci integer format that has an 8-bit B component in byte 0, an 8-bit G 215e5c31af7Sopenharmony_ci component in byte 1, an 8-bit R component in byte 2, and an 8-bit A 216e5c31af7Sopenharmony_ci component in byte 3. 217e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_SRGB specifies a four-component, 32-bit 218e5c31af7Sopenharmony_ci unsigned normalized format that has an 8-bit B component stored with 219e5c31af7Sopenharmony_ci sRGB nonlinear encoding in byte 0, an 8-bit G component stored with sRGB 220e5c31af7Sopenharmony_ci nonlinear encoding in byte 1, an 8-bit R component stored with sRGB 221e5c31af7Sopenharmony_ci nonlinear encoding in byte 2, and an 8-bit A component in byte 3. 222e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_UNORM_PACK32 specifies a four-component, 32-bit 223e5c31af7Sopenharmony_ci packed unsigned normalized format that has an 8-bit A component in bits 224e5c31af7Sopenharmony_ci 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in 225e5c31af7Sopenharmony_ci bits 8..15, and an 8-bit R component in bits 0..7. 226e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_SNORM_PACK32 specifies a four-component, 32-bit 227e5c31af7Sopenharmony_ci packed signed normalized format that has an 8-bit A component in bits 228e5c31af7Sopenharmony_ci 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in 229e5c31af7Sopenharmony_ci bits 8..15, and an 8-bit R component in bits 0..7. 230e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_USCALED_PACK32 specifies a four-component, 231e5c31af7Sopenharmony_ci 32-bit packed unsigned scaled integer format that has an 8-bit A 232e5c31af7Sopenharmony_ci component in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit 233e5c31af7Sopenharmony_ci G component in bits 8..15, and an 8-bit R component in bits 0..7. 234e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_SSCALED_PACK32 specifies a four-component, 235e5c31af7Sopenharmony_ci 32-bit packed signed scaled integer format that has an 8-bit A component 236e5c31af7Sopenharmony_ci in bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G 237e5c31af7Sopenharmony_ci component in bits 8..15, and an 8-bit R component in bits 0..7. 238e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_UINT_PACK32 specifies a four-component, 32-bit 239e5c31af7Sopenharmony_ci packed unsigned integer format that has an 8-bit A component in bits 240e5c31af7Sopenharmony_ci 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in 241e5c31af7Sopenharmony_ci bits 8..15, and an 8-bit R component in bits 0..7. 242e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_SINT_PACK32 specifies a four-component, 32-bit 243e5c31af7Sopenharmony_ci packed signed integer format that has an 8-bit A component in bits 244e5c31af7Sopenharmony_ci 24..31, an 8-bit B component in bits 16..23, an 8-bit G component in 245e5c31af7Sopenharmony_ci bits 8..15, and an 8-bit R component in bits 0..7. 246e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_SRGB_PACK32 specifies a four-component, 32-bit 247e5c31af7Sopenharmony_ci packed unsigned normalized format that has an 8-bit A component in bits 248e5c31af7Sopenharmony_ci 24..31, an 8-bit B component stored with sRGB nonlinear encoding in bits 249e5c31af7Sopenharmony_ci 16..23, an 8-bit G component stored with sRGB nonlinear encoding in bits 250e5c31af7Sopenharmony_ci 8..15, and an 8-bit R component stored with sRGB nonlinear encoding in 251e5c31af7Sopenharmony_ci bits 0..7. 252e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2R10G10B10_UNORM_PACK32 specifies a four-component, 253e5c31af7Sopenharmony_ci 32-bit packed unsigned normalized format that has a 2-bit A component in 254e5c31af7Sopenharmony_ci bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component 255e5c31af7Sopenharmony_ci in bits 10..19, and a 10-bit B component in bits 0..9. 256e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2R10G10B10_SNORM_PACK32 specifies a four-component, 257e5c31af7Sopenharmony_ci 32-bit packed signed normalized format that has a 2-bit A component in 258e5c31af7Sopenharmony_ci bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component 259e5c31af7Sopenharmony_ci in bits 10..19, and a 10-bit B component in bits 0..9. 260e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2R10G10B10_USCALED_PACK32 specifies a four-component, 261e5c31af7Sopenharmony_ci 32-bit packed unsigned scaled integer format that has a 2-bit A 262e5c31af7Sopenharmony_ci component in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit 263e5c31af7Sopenharmony_ci G component in bits 10..19, and a 10-bit B component in bits 0..9. 264e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2R10G10B10_SSCALED_PACK32 specifies a four-component, 265e5c31af7Sopenharmony_ci 32-bit packed signed scaled integer format that has a 2-bit A component 266e5c31af7Sopenharmony_ci in bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G 267e5c31af7Sopenharmony_ci component in bits 10..19, and a 10-bit B component in bits 0..9. 268e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2R10G10B10_UINT_PACK32 specifies a four-component, 269e5c31af7Sopenharmony_ci 32-bit packed unsigned integer format that has a 2-bit A component in 270e5c31af7Sopenharmony_ci bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component 271e5c31af7Sopenharmony_ci in bits 10..19, and a 10-bit B component in bits 0..9. 272e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2R10G10B10_SINT_PACK32 specifies a four-component, 273e5c31af7Sopenharmony_ci 32-bit packed signed integer format that has a 2-bit A component in bits 274e5c31af7Sopenharmony_ci 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in 275e5c31af7Sopenharmony_ci bits 10..19, and a 10-bit B component in bits 0..9. 276e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2B10G10R10_UNORM_PACK32 specifies a four-component, 277e5c31af7Sopenharmony_ci 32-bit packed unsigned normalized format that has a 2-bit A component in 278e5c31af7Sopenharmony_ci bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component 279e5c31af7Sopenharmony_ci in bits 10..19, and a 10-bit R component in bits 0..9. 280e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2B10G10R10_SNORM_PACK32 specifies a four-component, 281e5c31af7Sopenharmony_ci 32-bit packed signed normalized format that has a 2-bit A component in 282e5c31af7Sopenharmony_ci bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component 283e5c31af7Sopenharmony_ci in bits 10..19, and a 10-bit R component in bits 0..9. 284e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2B10G10R10_USCALED_PACK32 specifies a four-component, 285e5c31af7Sopenharmony_ci 32-bit packed unsigned scaled integer format that has a 2-bit A 286e5c31af7Sopenharmony_ci component in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit 287e5c31af7Sopenharmony_ci G component in bits 10..19, and a 10-bit R component in bits 0..9. 288e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2B10G10R10_SSCALED_PACK32 specifies a four-component, 289e5c31af7Sopenharmony_ci 32-bit packed signed scaled integer format that has a 2-bit A component 290e5c31af7Sopenharmony_ci in bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G 291e5c31af7Sopenharmony_ci component in bits 10..19, and a 10-bit R component in bits 0..9. 292e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2B10G10R10_UINT_PACK32 specifies a four-component, 293e5c31af7Sopenharmony_ci 32-bit packed unsigned integer format that has a 2-bit A component in 294e5c31af7Sopenharmony_ci bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component 295e5c31af7Sopenharmony_ci in bits 10..19, and a 10-bit R component in bits 0..9. 296e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2B10G10R10_SINT_PACK32 specifies a four-component, 297e5c31af7Sopenharmony_ci 32-bit packed signed integer format that has a 2-bit A component in bits 298e5c31af7Sopenharmony_ci 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in 299e5c31af7Sopenharmony_ci bits 10..19, and a 10-bit R component in bits 0..9. 300e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_UNORM specifies a one-component, 16-bit unsigned 301e5c31af7Sopenharmony_ci normalized format that has a single 16-bit R component. 302e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_SNORM specifies a one-component, 16-bit signed 303e5c31af7Sopenharmony_ci normalized format that has a single 16-bit R component. 304e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_USCALED specifies a one-component, 16-bit unsigned 305e5c31af7Sopenharmony_ci scaled integer format that has a single 16-bit R component. 306e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_SSCALED specifies a one-component, 16-bit signed 307e5c31af7Sopenharmony_ci scaled integer format that has a single 16-bit R component. 308e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_UINT specifies a one-component, 16-bit unsigned 309e5c31af7Sopenharmony_ci integer format that has a single 16-bit R component. 310e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_SINT specifies a one-component, 16-bit signed 311e5c31af7Sopenharmony_ci integer format that has a single 16-bit R component. 312e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_SFLOAT specifies a one-component, 16-bit signed 313e5c31af7Sopenharmony_ci floating-point format that has a single 16-bit R component. 314e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_UNORM specifies a two-component, 32-bit unsigned 315e5c31af7Sopenharmony_ci normalized format that has a 16-bit R component in bytes 0..1, and a 316e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3. 317e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SNORM specifies a two-component, 32-bit signed 318e5c31af7Sopenharmony_ci normalized format that has a 16-bit R component in bytes 0..1, and a 319e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3. 320e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_USCALED specifies a two-component, 32-bit 321e5c31af7Sopenharmony_ci unsigned scaled integer format that has a 16-bit R component in bytes 322e5c31af7Sopenharmony_ci 0..1, and a 16-bit G component in bytes 2..3. 323e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SSCALED specifies a two-component, 32-bit signed 324e5c31af7Sopenharmony_ci scaled integer format that has a 16-bit R component in bytes 0..1, and a 325e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3. 326e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_UINT specifies a two-component, 32-bit unsigned 327e5c31af7Sopenharmony_ci integer format that has a 16-bit R component in bytes 0..1, and a 16-bit 328e5c31af7Sopenharmony_ci G component in bytes 2..3. 329e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SINT specifies a two-component, 32-bit signed 330e5c31af7Sopenharmony_ci integer format that has a 16-bit R component in bytes 0..1, and a 16-bit 331e5c31af7Sopenharmony_ci G component in bytes 2..3. 332e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SFLOAT specifies a two-component, 32-bit signed 333e5c31af7Sopenharmony_ci floating-point format that has a 16-bit R component in bytes 0..1, and a 334e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3. 335e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16_UNORM specifies a three-component, 48-bit 336e5c31af7Sopenharmony_ci unsigned normalized format that has a 16-bit R component in bytes 0..1, 337e5c31af7Sopenharmony_ci a 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 338e5c31af7Sopenharmony_ci 4..5. 339e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16_SNORM specifies a three-component, 48-bit 340e5c31af7Sopenharmony_ci signed normalized format that has a 16-bit R component in bytes 0..1, a 341e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 342e5c31af7Sopenharmony_ci 4..5. 343e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16_USCALED specifies a three-component, 48-bit 344e5c31af7Sopenharmony_ci unsigned scaled integer format that has a 16-bit R component in bytes 345e5c31af7Sopenharmony_ci 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in 346e5c31af7Sopenharmony_ci bytes 4..5. 347e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16_SSCALED specifies a three-component, 48-bit 348e5c31af7Sopenharmony_ci signed scaled integer format that has a 16-bit R component in bytes 349e5c31af7Sopenharmony_ci 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in 350e5c31af7Sopenharmony_ci bytes 4..5. 351e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16_UINT specifies a three-component, 48-bit 352e5c31af7Sopenharmony_ci unsigned integer format that has a 16-bit R component in bytes 0..1, a 353e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 354e5c31af7Sopenharmony_ci 4..5. 355e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16_SINT specifies a three-component, 48-bit 356e5c31af7Sopenharmony_ci signed integer format that has a 16-bit R component in bytes 0..1, a 357e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3, and a 16-bit B component in bytes 358e5c31af7Sopenharmony_ci 4..5. 359e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16_SFLOAT specifies a three-component, 48-bit 360e5c31af7Sopenharmony_ci signed floating-point format that has a 16-bit R component in bytes 361e5c31af7Sopenharmony_ci 0..1, a 16-bit G component in bytes 2..3, and a 16-bit B component in 362e5c31af7Sopenharmony_ci bytes 4..5. 363e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_UNORM specifies a four-component, 64-bit 364e5c31af7Sopenharmony_ci unsigned normalized format that has a 16-bit R component in bytes 0..1, 365e5c31af7Sopenharmony_ci a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, 366e5c31af7Sopenharmony_ci and a 16-bit A component in bytes 6..7. 367e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SNORM specifies a four-component, 64-bit 368e5c31af7Sopenharmony_ci signed normalized format that has a 16-bit R component in bytes 0..1, a 369e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, 370e5c31af7Sopenharmony_ci and a 16-bit A component in bytes 6..7. 371e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_USCALED specifies a four-component, 64-bit 372e5c31af7Sopenharmony_ci unsigned scaled integer format that has a 16-bit R component in bytes 373e5c31af7Sopenharmony_ci 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 374e5c31af7Sopenharmony_ci 4..5, and a 16-bit A component in bytes 6..7. 375e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SSCALED specifies a four-component, 64-bit 376e5c31af7Sopenharmony_ci signed scaled integer format that has a 16-bit R component in bytes 377e5c31af7Sopenharmony_ci 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 378e5c31af7Sopenharmony_ci 4..5, and a 16-bit A component in bytes 6..7. 379e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_UINT specifies a four-component, 64-bit 380e5c31af7Sopenharmony_ci unsigned integer format that has a 16-bit R component in bytes 0..1, a 381e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, 382e5c31af7Sopenharmony_ci and a 16-bit A component in bytes 6..7. 383e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SINT specifies a four-component, 64-bit 384e5c31af7Sopenharmony_ci signed integer format that has a 16-bit R component in bytes 0..1, a 385e5c31af7Sopenharmony_ci 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5, 386e5c31af7Sopenharmony_ci and a 16-bit A component in bytes 6..7. 387e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SFLOAT specifies a four-component, 64-bit 388e5c31af7Sopenharmony_ci signed floating-point format that has a 16-bit R component in bytes 389e5c31af7Sopenharmony_ci 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes 390e5c31af7Sopenharmony_ci 4..5, and a 16-bit A component in bytes 6..7. 391e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32_UINT specifies a one-component, 32-bit unsigned 392e5c31af7Sopenharmony_ci integer format that has a single 32-bit R component. 393e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32_SINT specifies a one-component, 32-bit signed 394e5c31af7Sopenharmony_ci integer format that has a single 32-bit R component. 395e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32_SFLOAT specifies a one-component, 32-bit signed 396e5c31af7Sopenharmony_ci floating-point format that has a single 32-bit R component. 397e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32_UINT specifies a two-component, 64-bit unsigned 398e5c31af7Sopenharmony_ci integer format that has a 32-bit R component in bytes 0..3, and a 32-bit 399e5c31af7Sopenharmony_ci G component in bytes 4..7. 400e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32_SINT specifies a two-component, 64-bit signed 401e5c31af7Sopenharmony_ci integer format that has a 32-bit R component in bytes 0..3, and a 32-bit 402e5c31af7Sopenharmony_ci G component in bytes 4..7. 403e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32_SFLOAT specifies a two-component, 64-bit signed 404e5c31af7Sopenharmony_ci floating-point format that has a 32-bit R component in bytes 0..3, and a 405e5c31af7Sopenharmony_ci 32-bit G component in bytes 4..7. 406e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32_UINT specifies a three-component, 96-bit 407e5c31af7Sopenharmony_ci unsigned integer format that has a 32-bit R component in bytes 0..3, a 408e5c31af7Sopenharmony_ci 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 409e5c31af7Sopenharmony_ci 8..11. 410e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32_SINT specifies a three-component, 96-bit 411e5c31af7Sopenharmony_ci signed integer format that has a 32-bit R component in bytes 0..3, a 412e5c31af7Sopenharmony_ci 32-bit G component in bytes 4..7, and a 32-bit B component in bytes 413e5c31af7Sopenharmony_ci 8..11. 414e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32_SFLOAT specifies a three-component, 96-bit 415e5c31af7Sopenharmony_ci signed floating-point format that has a 32-bit R component in bytes 416e5c31af7Sopenharmony_ci 0..3, a 32-bit G component in bytes 4..7, and a 32-bit B component in 417e5c31af7Sopenharmony_ci bytes 8..11. 418e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32A32_UINT specifies a four-component, 128-bit 419e5c31af7Sopenharmony_ci unsigned integer format that has a 32-bit R component in bytes 0..3, a 420e5c31af7Sopenharmony_ci 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, 421e5c31af7Sopenharmony_ci and a 32-bit A component in bytes 12..15. 422e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32A32_SINT specifies a four-component, 128-bit 423e5c31af7Sopenharmony_ci signed integer format that has a 32-bit R component in bytes 0..3, a 424e5c31af7Sopenharmony_ci 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11, 425e5c31af7Sopenharmony_ci and a 32-bit A component in bytes 12..15. 426e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32A32_SFLOAT specifies a four-component, 128-bit 427e5c31af7Sopenharmony_ci signed floating-point format that has a 32-bit R component in bytes 428e5c31af7Sopenharmony_ci 0..3, a 32-bit G component in bytes 4..7, a 32-bit B component in bytes 429e5c31af7Sopenharmony_ci 8..11, and a 32-bit A component in bytes 12..15. 430e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64_UINT specifies a one-component, 64-bit unsigned 431e5c31af7Sopenharmony_ci integer format that has a single 64-bit R component. 432e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64_SINT specifies a one-component, 64-bit signed 433e5c31af7Sopenharmony_ci integer format that has a single 64-bit R component. 434e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64_SFLOAT specifies a one-component, 64-bit signed 435e5c31af7Sopenharmony_ci floating-point format that has a single 64-bit R component. 436e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64_UINT specifies a two-component, 128-bit unsigned 437e5c31af7Sopenharmony_ci integer format that has a 64-bit R component in bytes 0..7, and a 64-bit 438e5c31af7Sopenharmony_ci G component in bytes 8..15. 439e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64_SINT specifies a two-component, 128-bit signed 440e5c31af7Sopenharmony_ci integer format that has a 64-bit R component in bytes 0..7, and a 64-bit 441e5c31af7Sopenharmony_ci G component in bytes 8..15. 442e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64_SFLOAT specifies a two-component, 128-bit signed 443e5c31af7Sopenharmony_ci floating-point format that has a 64-bit R component in bytes 0..7, and a 444e5c31af7Sopenharmony_ci 64-bit G component in bytes 8..15. 445e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64B64_UINT specifies a three-component, 192-bit 446e5c31af7Sopenharmony_ci unsigned integer format that has a 64-bit R component in bytes 0..7, a 447e5c31af7Sopenharmony_ci 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 448e5c31af7Sopenharmony_ci 16..23. 449e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64B64_SINT specifies a three-component, 192-bit 450e5c31af7Sopenharmony_ci signed integer format that has a 64-bit R component in bytes 0..7, a 451e5c31af7Sopenharmony_ci 64-bit G component in bytes 8..15, and a 64-bit B component in bytes 452e5c31af7Sopenharmony_ci 16..23. 453e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64B64_SFLOAT specifies a three-component, 192-bit 454e5c31af7Sopenharmony_ci signed floating-point format that has a 64-bit R component in bytes 455e5c31af7Sopenharmony_ci 0..7, a 64-bit G component in bytes 8..15, and a 64-bit B component in 456e5c31af7Sopenharmony_ci bytes 16..23. 457e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64B64A64_UINT specifies a four-component, 256-bit 458e5c31af7Sopenharmony_ci unsigned integer format that has a 64-bit R component in bytes 0..7, a 459e5c31af7Sopenharmony_ci 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, 460e5c31af7Sopenharmony_ci and a 64-bit A component in bytes 24..31. 461e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64B64A64_SINT specifies a four-component, 256-bit 462e5c31af7Sopenharmony_ci signed integer format that has a 64-bit R component in bytes 0..7, a 463e5c31af7Sopenharmony_ci 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23, 464e5c31af7Sopenharmony_ci and a 64-bit A component in bytes 24..31. 465e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R64G64B64A64_SFLOAT specifies a four-component, 256-bit 466e5c31af7Sopenharmony_ci signed floating-point format that has a 64-bit R component in bytes 467e5c31af7Sopenharmony_ci 0..7, a 64-bit G component in bytes 8..15, a 64-bit B component in bytes 468e5c31af7Sopenharmony_ci 16..23, and a 64-bit A component in bytes 24..31. 469e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32 specifies a three-component, 470e5c31af7Sopenharmony_ci 32-bit packed unsigned floating-point format that has a 10-bit B 471e5c31af7Sopenharmony_ci component in bits 22..31, an 11-bit G component in bits 11..21, an 472e5c31af7Sopenharmony_ci 11-bit R component in bits 0..10. 473e5c31af7Sopenharmony_ci See <<fundamentals-fp10>> and <<fundamentals-fp11>>. 474e5c31af7Sopenharmony_ci * ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 specifies a three-component, 475e5c31af7Sopenharmony_ci 32-bit packed unsigned floating-point format that has a 5-bit shared 476e5c31af7Sopenharmony_ci exponent in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 477e5c31af7Sopenharmony_ci 9-bit G component mantissa in bits 9..17, and a 9-bit R component 478e5c31af7Sopenharmony_ci mantissa in bits 0..8. 479e5c31af7Sopenharmony_ci * ename:VK_FORMAT_D16_UNORM specifies a one-component, 16-bit unsigned 480e5c31af7Sopenharmony_ci normalized format that has a single 16-bit depth component. 481e5c31af7Sopenharmony_ci * ename:VK_FORMAT_X8_D24_UNORM_PACK32 specifies a two-component, 32-bit 482e5c31af7Sopenharmony_ci format that has 24 unsigned normalized bits in the depth component and, 483e5c31af7Sopenharmony_ci optionally:, 8 bits that are unused. 484e5c31af7Sopenharmony_ci * ename:VK_FORMAT_D32_SFLOAT specifies a one-component, 32-bit signed 485e5c31af7Sopenharmony_ci floating-point format that has 32 bits in the depth component. 486e5c31af7Sopenharmony_ci * ename:VK_FORMAT_S8_UINT specifies a one-component, 8-bit unsigned 487e5c31af7Sopenharmony_ci integer format that has 8 bits in the stencil component. 488e5c31af7Sopenharmony_ci * ename:VK_FORMAT_D16_UNORM_S8_UINT specifies a two-component, 24-bit 489e5c31af7Sopenharmony_ci format that has 16 unsigned normalized bits in the depth component and 8 490e5c31af7Sopenharmony_ci unsigned integer bits in the stencil component. 491e5c31af7Sopenharmony_ci * ename:VK_FORMAT_D24_UNORM_S8_UINT specifies a two-component, 32-bit 492e5c31af7Sopenharmony_ci packed format that has 8 unsigned integer bits in the stencil component, 493e5c31af7Sopenharmony_ci and 24 unsigned normalized bits in the depth component. 494e5c31af7Sopenharmony_ci * ename:VK_FORMAT_D32_SFLOAT_S8_UINT specifies a two-component format that 495e5c31af7Sopenharmony_ci has 32 signed float bits in the depth component and 8 unsigned integer 496e5c31af7Sopenharmony_ci bits in the stencil component. 497e5c31af7Sopenharmony_ci There are optionally: 24 bits that are unused. 498e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK specifies a three-component, 499e5c31af7Sopenharmony_ci block-compressed format where each 64-bit compressed texel block encodes 500e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGB texel data. 501e5c31af7Sopenharmony_ci This format has no alpha and is considered opaque. 502e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK specifies a three-component, 503e5c31af7Sopenharmony_ci block-compressed format where each 64-bit compressed texel block encodes 504e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGB texel data with sRGB 505e5c31af7Sopenharmony_ci nonlinear encoding. 506e5c31af7Sopenharmony_ci This format has no alpha and is considered opaque. 507e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK specifies a four-component, 508e5c31af7Sopenharmony_ci block-compressed format where each 64-bit compressed texel block encodes 509e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGB texel data, and 510e5c31af7Sopenharmony_ci provides 1 bit of alpha. 511e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK specifies a four-component, 512e5c31af7Sopenharmony_ci block-compressed format where each 64-bit compressed texel block encodes 513e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGB texel data with sRGB 514e5c31af7Sopenharmony_ci nonlinear encoding, and provides 1 bit of alpha. 515e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC2_UNORM_BLOCK specifies a four-component, 516e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 517e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of unsigned normalized RGBA texel data 518e5c31af7Sopenharmony_ci with the first 64 bits encoding alpha values followed by 64 bits 519e5c31af7Sopenharmony_ci encoding RGB values. 520e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC2_SRGB_BLOCK specifies a four-component, 521e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 522e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of unsigned normalized RGBA texel data 523e5c31af7Sopenharmony_ci with the first 64 bits encoding alpha values followed by 64 bits 524e5c31af7Sopenharmony_ci encoding RGB values with sRGB nonlinear encoding. 525e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC3_UNORM_BLOCK specifies a four-component, 526e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 527e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of unsigned normalized RGBA texel data 528e5c31af7Sopenharmony_ci with the first 64 bits encoding alpha values followed by 64 bits 529e5c31af7Sopenharmony_ci encoding RGB values. 530e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC3_SRGB_BLOCK specifies a four-component, 531e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 532e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of unsigned normalized RGBA texel data 533e5c31af7Sopenharmony_ci with the first 64 bits encoding alpha values followed by 64 bits 534e5c31af7Sopenharmony_ci encoding RGB values with sRGB nonlinear encoding. 535e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC4_UNORM_BLOCK specifies a one-component, 536e5c31af7Sopenharmony_ci block-compressed format where each 64-bit compressed texel block encodes 537e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized red texel data. 538e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC4_SNORM_BLOCK specifies a one-component, 539e5c31af7Sopenharmony_ci block-compressed format where each 64-bit compressed texel block encodes 540e5c31af7Sopenharmony_ci a 4{times}4 rectangle of signed normalized red texel data. 541e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC5_UNORM_BLOCK specifies a two-component, 542e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 543e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of unsigned normalized RG texel data with 544e5c31af7Sopenharmony_ci the first 64 bits encoding red values followed by 64 bits encoding green 545e5c31af7Sopenharmony_ci values. 546e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC5_SNORM_BLOCK specifies a two-component, 547e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 548e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of signed normalized RG texel data with 549e5c31af7Sopenharmony_ci the first 64 bits encoding red values followed by 64 bits encoding green 550e5c31af7Sopenharmony_ci values. 551e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC6H_UFLOAT_BLOCK specifies a three-component, 552e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 553e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of unsigned floating-point RGB texel data. 554e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC6H_SFLOAT_BLOCK specifies a three-component, 555e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 556e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of signed floating-point RGB texel data. 557e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC7_UNORM_BLOCK specifies a four-component, 558e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 559e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of unsigned normalized RGBA texel data. 560e5c31af7Sopenharmony_ci * ename:VK_FORMAT_BC7_SRGB_BLOCK specifies a four-component, 561e5c31af7Sopenharmony_ci block-compressed format where each 128-bit compressed texel block 562e5c31af7Sopenharmony_ci encodes a 4{times}4 rectangle of unsigned normalized RGBA texel data 563e5c31af7Sopenharmony_ci with sRGB nonlinear encoding applied to the RGB components. 564e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK specifies a three-component, 565e5c31af7Sopenharmony_ci ETC2 compressed format where each 64-bit compressed texel block encodes 566e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGB texel data. 567e5c31af7Sopenharmony_ci This format has no alpha and is considered opaque. 568e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK specifies a three-component, ETC2 569e5c31af7Sopenharmony_ci compressed format where each 64-bit compressed texel block encodes a 570e5c31af7Sopenharmony_ci 4{times}4 rectangle of unsigned normalized RGB texel data with sRGB 571e5c31af7Sopenharmony_ci nonlinear encoding. 572e5c31af7Sopenharmony_ci This format has no alpha and is considered opaque. 573e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK specifies a four-component, 574e5c31af7Sopenharmony_ci ETC2 compressed format where each 64-bit compressed texel block encodes 575e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGB texel data, and 576e5c31af7Sopenharmony_ci provides 1 bit of alpha. 577e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK specifies a four-component, 578e5c31af7Sopenharmony_ci ETC2 compressed format where each 64-bit compressed texel block encodes 579e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGB texel data with sRGB 580e5c31af7Sopenharmony_ci nonlinear encoding, and provides 1 bit of alpha. 581e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK specifies a four-component, 582e5c31af7Sopenharmony_ci ETC2 compressed format where each 128-bit compressed texel block encodes 583e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGBA texel data with the 584e5c31af7Sopenharmony_ci first 64 bits encoding alpha values followed by 64 bits encoding RGB 585e5c31af7Sopenharmony_ci values. 586e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK specifies a four-component, 587e5c31af7Sopenharmony_ci ETC2 compressed format where each 128-bit compressed texel block encodes 588e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGBA texel data with the 589e5c31af7Sopenharmony_ci first 64 bits encoding alpha values followed by 64 bits encoding RGB 590e5c31af7Sopenharmony_ci values with sRGB nonlinear encoding applied. 591e5c31af7Sopenharmony_ci * ename:VK_FORMAT_EAC_R11_UNORM_BLOCK specifies a one-component, ETC2 592e5c31af7Sopenharmony_ci compressed format where each 64-bit compressed texel block encodes a 593e5c31af7Sopenharmony_ci 4{times}4 rectangle of unsigned normalized red texel data. 594e5c31af7Sopenharmony_ci * ename:VK_FORMAT_EAC_R11_SNORM_BLOCK specifies a one-component, ETC2 595e5c31af7Sopenharmony_ci compressed format where each 64-bit compressed texel block encodes a 596e5c31af7Sopenharmony_ci 4{times}4 rectangle of signed normalized red texel data. 597e5c31af7Sopenharmony_ci * ename:VK_FORMAT_EAC_R11G11_UNORM_BLOCK specifies a two-component, ETC2 598e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 599e5c31af7Sopenharmony_ci 4{times}4 rectangle of unsigned normalized RG texel data with the first 600e5c31af7Sopenharmony_ci 64 bits encoding red values followed by 64 bits encoding green values. 601e5c31af7Sopenharmony_ci * ename:VK_FORMAT_EAC_R11G11_SNORM_BLOCK specifies a two-component, ETC2 602e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 603e5c31af7Sopenharmony_ci 4{times}4 rectangle of signed normalized RG texel data with the first 64 604e5c31af7Sopenharmony_ci bits encoding red values followed by 64 bits encoding green values. 605e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK specifies a four-component, ASTC 606e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 607e5c31af7Sopenharmony_ci 4{times}4 rectangle of unsigned normalized RGBA texel data. 608e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK specifies a four-component, ASTC 609e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 610e5c31af7Sopenharmony_ci 4{times}4 rectangle of unsigned normalized RGBA texel data with sRGB 611e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 612e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 613e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK specifies a four-component, ASTC 614e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 615e5c31af7Sopenharmony_ci 4{times}4 rectangle of signed floating-point RGBA texel data. 616e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 617e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK specifies a four-component, ASTC 618e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 619e5c31af7Sopenharmony_ci 5{times}4 rectangle of unsigned normalized RGBA texel data. 620e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK specifies a four-component, ASTC 621e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 622e5c31af7Sopenharmony_ci 5{times}4 rectangle of unsigned normalized RGBA texel data with sRGB 623e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 624e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 625e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK specifies a four-component, ASTC 626e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 627e5c31af7Sopenharmony_ci 5{times}4 rectangle of signed floating-point RGBA texel data. 628e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 629e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK specifies a four-component, ASTC 630e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 631e5c31af7Sopenharmony_ci 5{times}5 rectangle of unsigned normalized RGBA texel data. 632e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK specifies a four-component, ASTC 633e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 634e5c31af7Sopenharmony_ci 5{times}5 rectangle of unsigned normalized RGBA texel data with sRGB 635e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 636e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 637e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK specifies a four-component, ASTC 638e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 639e5c31af7Sopenharmony_ci 5{times}5 rectangle of signed floating-point RGBA texel data. 640e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 641e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK specifies a four-component, ASTC 642e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 643e5c31af7Sopenharmony_ci 6{times}5 rectangle of unsigned normalized RGBA texel data. 644e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK specifies a four-component, ASTC 645e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 646e5c31af7Sopenharmony_ci 6{times}5 rectangle of unsigned normalized RGBA texel data with sRGB 647e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 648e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 649e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK specifies a four-component, ASTC 650e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 651e5c31af7Sopenharmony_ci 6{times}5 rectangle of signed floating-point RGBA texel data. 652e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 653e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK specifies a four-component, ASTC 654e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 655e5c31af7Sopenharmony_ci 6{times}6 rectangle of unsigned normalized RGBA texel data. 656e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK specifies a four-component, ASTC 657e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 658e5c31af7Sopenharmony_ci 6{times}6 rectangle of unsigned normalized RGBA texel data with sRGB 659e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 660e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 661e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK specifies a four-component, ASTC 662e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 663e5c31af7Sopenharmony_ci 6{times}6 rectangle of signed floating-point RGBA texel data. 664e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 665e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK specifies a four-component, ASTC 666e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes an 667e5c31af7Sopenharmony_ci 8{times}5 rectangle of unsigned normalized RGBA texel data. 668e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK specifies a four-component, ASTC 669e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes an 670e5c31af7Sopenharmony_ci 8{times}5 rectangle of unsigned normalized RGBA texel data with sRGB 671e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 672e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 673e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK specifies a four-component, ASTC 674e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 675e5c31af7Sopenharmony_ci 8{times}5 rectangle of signed floating-point RGBA texel data. 676e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 677e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK specifies a four-component, ASTC 678e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes an 679e5c31af7Sopenharmony_ci 8{times}6 rectangle of unsigned normalized RGBA texel data. 680e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK specifies a four-component, ASTC 681e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes an 682e5c31af7Sopenharmony_ci 8{times}6 rectangle of unsigned normalized RGBA texel data with sRGB 683e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 684e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 685e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK specifies a four-component, ASTC 686e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 687e5c31af7Sopenharmony_ci 8{times}6 rectangle of signed floating-point RGBA texel data. 688e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 689e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK specifies a four-component, ASTC 690e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes an 691e5c31af7Sopenharmony_ci 8{times}8 rectangle of unsigned normalized RGBA texel data. 692e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK specifies a four-component, ASTC 693e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes an 694e5c31af7Sopenharmony_ci 8{times}8 rectangle of unsigned normalized RGBA texel data with sRGB 695e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 696e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 697e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK specifies a four-component, ASTC 698e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 699e5c31af7Sopenharmony_ci 8{times}8 rectangle of signed floating-point RGBA texel data. 700e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 701e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK specifies a four-component, ASTC 702e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 703e5c31af7Sopenharmony_ci 10{times}5 rectangle of unsigned normalized RGBA texel data. 704e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK specifies a four-component, ASTC 705e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 706e5c31af7Sopenharmony_ci 10{times}5 rectangle of unsigned normalized RGBA texel data with sRGB 707e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 708e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 709e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK specifies a four-component, ASTC 710e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 711e5c31af7Sopenharmony_ci 10{times}5 rectangle of signed floating-point RGBA texel data. 712e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 713e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK specifies a four-component, ASTC 714e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 715e5c31af7Sopenharmony_ci 10{times}6 rectangle of unsigned normalized RGBA texel data. 716e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK specifies a four-component, ASTC 717e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 718e5c31af7Sopenharmony_ci 10{times}6 rectangle of unsigned normalized RGBA texel data with sRGB 719e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 720e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 721e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK specifies a four-component, ASTC 722e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 723e5c31af7Sopenharmony_ci 10{times}6 rectangle of signed floating-point RGBA texel data. 724e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 725e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK specifies a four-component, ASTC 726e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 727e5c31af7Sopenharmony_ci 10{times}8 rectangle of unsigned normalized RGBA texel data. 728e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK specifies a four-component, ASTC 729e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 730e5c31af7Sopenharmony_ci 10{times}8 rectangle of unsigned normalized RGBA texel data with sRGB 731e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 732e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 733e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK specifies a four-component, ASTC 734e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 735e5c31af7Sopenharmony_ci 10{times}8 rectangle of signed floating-point RGBA texel data. 736e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 737e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK specifies a four-component, ASTC 738e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 739e5c31af7Sopenharmony_ci 10{times}10 rectangle of unsigned normalized RGBA texel data. 740e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK specifies a four-component, ASTC 741e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 742e5c31af7Sopenharmony_ci 10{times}10 rectangle of unsigned normalized RGBA texel data with sRGB 743e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 744e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 745e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK specifies a four-component, ASTC 746e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 747e5c31af7Sopenharmony_ci 10{times}10 rectangle of signed floating-point RGBA texel data. 748e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 749e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK specifies a four-component, ASTC 750e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 751e5c31af7Sopenharmony_ci 12{times}10 rectangle of unsigned normalized RGBA texel data. 752e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK specifies a four-component, ASTC 753e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 754e5c31af7Sopenharmony_ci 12{times}10 rectangle of unsigned normalized RGBA texel data with sRGB 755e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 756e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 757e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK specifies a four-component, ASTC 758e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 759e5c31af7Sopenharmony_ci 12{times}10 rectangle of signed floating-point RGBA texel data. 760e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 761e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK specifies a four-component, ASTC 762e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 763e5c31af7Sopenharmony_ci 12{times}12 rectangle of unsigned normalized RGBA texel data. 764e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK specifies a four-component, ASTC 765e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 766e5c31af7Sopenharmony_ci 12{times}12 rectangle of unsigned normalized RGBA texel data with sRGB 767e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 768e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 769e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK specifies a four-component, ASTC 770e5c31af7Sopenharmony_ci compressed format where each 128-bit compressed texel block encodes a 771e5c31af7Sopenharmony_ci 12{times}12 rectangle of signed floating-point RGBA texel data. 772e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 773e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 774e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G8B8G8R8_422_UNORM specifies a four-component, 32-bit 775e5c31af7Sopenharmony_ci format containing a pair of G components, an R component, and a B 776e5c31af7Sopenharmony_ci component, collectively encoding a 2{times}1 rectangle of unsigned 777e5c31af7Sopenharmony_ci normalized RGB texel data. 778e5c31af7Sopenharmony_ci One G value is present at each _i_ coordinate, with the B and R values 779e5c31af7Sopenharmony_ci shared across both G values and thus recorded at half the horizontal 780e5c31af7Sopenharmony_ci resolution of the image. 781e5c31af7Sopenharmony_ci This format has an 8-bit G component for the even _i_ coordinate in byte 782e5c31af7Sopenharmony_ci 0, an 8-bit B component in byte 1, an 8-bit G component for the odd _i_ 783e5c31af7Sopenharmony_ci coordinate in byte 2, and an 8-bit R component in byte 3. 784e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 785e5c31af7Sopenharmony_ci For the purposes of the constraints on copy extents, this format is 786e5c31af7Sopenharmony_ci treated as a compressed format with a 2{times}1 compressed texel block. 787e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8G8_422_UNORM specifies a four-component, 32-bit 788e5c31af7Sopenharmony_ci format containing a pair of G components, an R component, and a B 789e5c31af7Sopenharmony_ci component, collectively encoding a 2{times}1 rectangle of unsigned 790e5c31af7Sopenharmony_ci normalized RGB texel data. 791e5c31af7Sopenharmony_ci One G value is present at each _i_ coordinate, with the B and R values 792e5c31af7Sopenharmony_ci shared across both G values and thus recorded at half the horizontal 793e5c31af7Sopenharmony_ci resolution of the image. 794e5c31af7Sopenharmony_ci This format has an 8-bit B component in byte 0, an 8-bit G component for 795e5c31af7Sopenharmony_ci the even _i_ coordinate in byte 1, an 8-bit R component in byte 2, and 796e5c31af7Sopenharmony_ci an 8-bit G component for the odd _i_ coordinate in byte 3. 797e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 798e5c31af7Sopenharmony_ci For the purposes of the constraints on copy extents, this format is 799e5c31af7Sopenharmony_ci treated as a compressed format with a 2{times}1 compressed texel block. 800e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM specifies an unsigned 801e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has an 8-bit G component in plane 802e5c31af7Sopenharmony_ci 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. 803e5c31af7Sopenharmony_ci The horizontal and vertical dimensions of the R and B planes are halved 804e5c31af7Sopenharmony_ci relative to the image dimensions, and each R and B component is shared 805e5c31af7Sopenharmony_ci with the G components for which latexmath:[\left\lfloor i_G \times 0.5 806e5c31af7Sopenharmony_ci \right\rfloor = i_B = i_R] and latexmath:[\left\lfloor j_G \times 0.5 807e5c31af7Sopenharmony_ci \right\rfloor = j_B = j_R]. 808e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 809e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 810e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 811e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 812e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 813e5c31af7Sopenharmony_ci This format only supports images with a width and height that is a 814e5c31af7Sopenharmony_ci multiple of two. 815e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G8_B8R8_2PLANE_420_UNORM specifies an unsigned 816e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has an 8-bit G component in plane 817e5c31af7Sopenharmony_ci 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B 818e5c31af7Sopenharmony_ci component in byte 0 and an 8-bit R component in byte 1. 819e5c31af7Sopenharmony_ci The horizontal and vertical dimensions of the BR plane are halved 820e5c31af7Sopenharmony_ci relative to the image dimensions, and each R and B value is shared with 821e5c31af7Sopenharmony_ci the G components for which latexmath:[\left\lfloor i_G \times 0.5 822e5c31af7Sopenharmony_ci \right\rfloor = i_B = i_R] and latexmath:[\left\lfloor j_G \times 0.5 823e5c31af7Sopenharmony_ci \right\rfloor = j_B = j_R]. 824e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 825e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 826e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 827e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 828e5c31af7Sopenharmony_ci This format only supports images with a width and height that is a 829e5c31af7Sopenharmony_ci multiple of two. 830e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM specifies an unsigned 831e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has an 8-bit G component in plane 832e5c31af7Sopenharmony_ci 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. 833e5c31af7Sopenharmony_ci The horizontal dimension of the R and B plane is halved relative to the 834e5c31af7Sopenharmony_ci image dimensions, and each R and B value is shared with the G components 835e5c31af7Sopenharmony_ci for which latexmath:[\left\lfloor i_G \times 0.5 \right\rfloor = i_B = 836e5c31af7Sopenharmony_ci i_R]. 837e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 838e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 839e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 840e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 841e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 842e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 843e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G8_B8R8_2PLANE_422_UNORM specifies an unsigned 844e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has an 8-bit G component in plane 845e5c31af7Sopenharmony_ci 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B 846e5c31af7Sopenharmony_ci component in byte 0 and an 8-bit R component in byte 1. 847e5c31af7Sopenharmony_ci The horizontal dimension of the BR plane is halved relative to the image 848e5c31af7Sopenharmony_ci dimensions, and each R and B value is shared with the G components for 849e5c31af7Sopenharmony_ci which latexmath:[\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R]. 850e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 851e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 852e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 853e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 854e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 855e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM specifies an unsigned 856e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has an 8-bit G component in plane 857e5c31af7Sopenharmony_ci 0, an 8-bit B component in plane 1, and an 8-bit R component in plane 2. 858e5c31af7Sopenharmony_ci Each plane has the same dimensions and each R, G and B component 859e5c31af7Sopenharmony_ci contributes to a single texel. 860e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 861e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 862e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 863e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 864e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 865e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R10X6_UNORM_PACK16 specifies a one-component, 16-bit 866e5c31af7Sopenharmony_ci unsigned normalized format that has a single 10-bit R component in the 867e5c31af7Sopenharmony_ci top 10 bits of a 16-bit word, with the bottom 6 bits unused. 868e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R10X6G10X6_UNORM_2PACK16 specifies a two-component, 869e5c31af7Sopenharmony_ci 32-bit unsigned normalized format that has a 10-bit R component in the 870e5c31af7Sopenharmony_ci top 10 bits of the word in bytes 0..1, and a 10-bit G component in the 871e5c31af7Sopenharmony_ci top 10 bits of the word in bytes 2..3, with the bottom 6 bits of each 872e5c31af7Sopenharmony_ci word unused. 873e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 specifies a 874e5c31af7Sopenharmony_ci four-component, 64-bit unsigned normalized format that has a 10-bit R 875e5c31af7Sopenharmony_ci component in the top 10 bits of the word in bytes 0..1, a 10-bit G 876e5c31af7Sopenharmony_ci component in the top 10 bits of the word in bytes 2..3, a 10-bit B 877e5c31af7Sopenharmony_ci component in the top 10 bits of the word in bytes 4..5, and a 10-bit A 878e5c31af7Sopenharmony_ci component in the top 10 bits of the word in bytes 6..7, with the bottom 879e5c31af7Sopenharmony_ci 6 bits of each word unused. 880e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 specifies a 881e5c31af7Sopenharmony_ci four-component, 64-bit format containing a pair of G components, an R 882e5c31af7Sopenharmony_ci component, and a B component, collectively encoding a 2{times}1 883e5c31af7Sopenharmony_ci rectangle of unsigned normalized RGB texel data. 884e5c31af7Sopenharmony_ci One G value is present at each _i_ coordinate, with the B and R values 885e5c31af7Sopenharmony_ci shared across both G values and thus recorded at half the horizontal 886e5c31af7Sopenharmony_ci resolution of the image. 887e5c31af7Sopenharmony_ci This format has a 10-bit G component for the even _i_ coordinate in the 888e5c31af7Sopenharmony_ci top 10 bits of the word in bytes 0..1, a 10-bit B component in the top 889e5c31af7Sopenharmony_ci 10 bits of the word in bytes 2..3, a 10-bit G component for the odd _i_ 890e5c31af7Sopenharmony_ci coordinate in the top 10 bits of the word in bytes 4..5, and a 10-bit R 891e5c31af7Sopenharmony_ci component in the top 10 bits of the word in bytes 6..7, with the bottom 892e5c31af7Sopenharmony_ci 6 bits of each word unused. 893e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 894e5c31af7Sopenharmony_ci For the purposes of the constraints on copy extents, this format is 895e5c31af7Sopenharmony_ci treated as a compressed format with a 2{times}1 compressed texel block. 896e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 specifies a 897e5c31af7Sopenharmony_ci four-component, 64-bit format containing a pair of G components, an R 898e5c31af7Sopenharmony_ci component, and a B component, collectively encoding a 2{times}1 899e5c31af7Sopenharmony_ci rectangle of unsigned normalized RGB texel data. 900e5c31af7Sopenharmony_ci One G value is present at each _i_ coordinate, with the B and R values 901e5c31af7Sopenharmony_ci shared across both G values and thus recorded at half the horizontal 902e5c31af7Sopenharmony_ci resolution of the image. 903e5c31af7Sopenharmony_ci This format has a 10-bit B component in the top 10 bits of the word in 904e5c31af7Sopenharmony_ci bytes 0..1, a 10-bit G component for the even _i_ coordinate in the top 905e5c31af7Sopenharmony_ci 10 bits of the word in bytes 2..3, a 10-bit R component in the top 10 906e5c31af7Sopenharmony_ci bits of the word in bytes 4..5, and a 10-bit G component for the odd _i_ 907e5c31af7Sopenharmony_ci coordinate in the top 10 bits of the word in bytes 6..7, with the bottom 908e5c31af7Sopenharmony_ci 6 bits of each word unused. 909e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 910e5c31af7Sopenharmony_ci For the purposes of the constraints on copy extents, this format is 911e5c31af7Sopenharmony_ci treated as a compressed format with a 2{times}1 compressed texel block. 912e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 specifies an 913e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 10-bit G component 914e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component 915e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R 916e5c31af7Sopenharmony_ci component in the top 10 bits of each 16-bit word of plane 2, with the 917e5c31af7Sopenharmony_ci bottom 6 bits of each word unused. 918e5c31af7Sopenharmony_ci The horizontal and vertical dimensions of the R and B planes are halved 919e5c31af7Sopenharmony_ci relative to the image dimensions, and each R and B component is shared 920e5c31af7Sopenharmony_ci with the G components for which latexmath:[\left\lfloor i_G \times 0.5 921e5c31af7Sopenharmony_ci \right\rfloor = i_B = i_R] and latexmath:[\left\lfloor j_G \times 0.5 922e5c31af7Sopenharmony_ci \right\rfloor = j_B = j_R]. 923e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 924e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 925e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 926e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 927e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 928e5c31af7Sopenharmony_ci This format only supports images with a width and height that is a 929e5c31af7Sopenharmony_ci multiple of two. 930e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 specifies an 931e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 10-bit G component 932e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 0, and a two-component, 933e5c31af7Sopenharmony_ci 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits 934e5c31af7Sopenharmony_ci of the word in bytes 0..1, and a 10-bit R component in the top 10 bits 935e5c31af7Sopenharmony_ci of the word in bytes 2..3, with the bottom 6 bits of each word unused. 936e5c31af7Sopenharmony_ci The horizontal and vertical dimensions of the BR plane are halved 937e5c31af7Sopenharmony_ci relative to the image dimensions, and each R and B value is shared with 938e5c31af7Sopenharmony_ci the G components for which latexmath:[\left\lfloor i_G \times 0.5 939e5c31af7Sopenharmony_ci \right\rfloor = i_B = i_R] and latexmath:[\left\lfloor j_G \times 0.5 940e5c31af7Sopenharmony_ci \right\rfloor = j_B = j_R]. 941e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 942e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 943e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 944e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 945e5c31af7Sopenharmony_ci This format only supports images with a width and height that is a 946e5c31af7Sopenharmony_ci multiple of two. 947e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 specifies an 948e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 10-bit G component 949e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component 950e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R 951e5c31af7Sopenharmony_ci component in the top 10 bits of each 16-bit word of plane 2, with the 952e5c31af7Sopenharmony_ci bottom 6 bits of each word unused. 953e5c31af7Sopenharmony_ci The horizontal dimension of the R and B plane is halved relative to the 954e5c31af7Sopenharmony_ci image dimensions, and each R and B value is shared with the G components 955e5c31af7Sopenharmony_ci for which latexmath:[\left\lfloor i_G \times 0.5 \right\rfloor = i_B = 956e5c31af7Sopenharmony_ci i_R]. 957e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 958e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 959e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 960e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 961e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 962e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 963e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 specifies an 964e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 10-bit G component 965e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 0, and a two-component, 966e5c31af7Sopenharmony_ci 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits 967e5c31af7Sopenharmony_ci of the word in bytes 0..1, and a 10-bit R component in the top 10 bits 968e5c31af7Sopenharmony_ci of the word in bytes 2..3, with the bottom 6 bits of each word unused. 969e5c31af7Sopenharmony_ci The horizontal dimension of the BR plane is halved relative to the image 970e5c31af7Sopenharmony_ci dimensions, and each R and B value is shared with the G components for 971e5c31af7Sopenharmony_ci which latexmath:[\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R]. 972e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 973e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 974e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 975e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 976e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 977e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 specifies an 978e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 10-bit G component 979e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 0, a 10-bit B component 980e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R 981e5c31af7Sopenharmony_ci component in the top 10 bits of each 16-bit word of plane 2, with the 982e5c31af7Sopenharmony_ci bottom 6 bits of each word unused. 983e5c31af7Sopenharmony_ci Each plane has the same dimensions and each R, G and B component 984e5c31af7Sopenharmony_ci contributes to a single texel. 985e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 986e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 987e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 988e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 989e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 990e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R12X4_UNORM_PACK16 specifies a one-component, 16-bit 991e5c31af7Sopenharmony_ci unsigned normalized format that has a single 12-bit R component in the 992e5c31af7Sopenharmony_ci top 12 bits of a 16-bit word, with the bottom 4 bits unused. 993e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R12X4G12X4_UNORM_2PACK16 specifies a two-component, 994e5c31af7Sopenharmony_ci 32-bit unsigned normalized format that has a 12-bit R component in the 995e5c31af7Sopenharmony_ci top 12 bits of the word in bytes 0..1, and a 12-bit G component in the 996e5c31af7Sopenharmony_ci top 12 bits of the word in bytes 2..3, with the bottom 4 bits of each 997e5c31af7Sopenharmony_ci word unused. 998e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 specifies a 999e5c31af7Sopenharmony_ci four-component, 64-bit unsigned normalized format that has a 12-bit R 1000e5c31af7Sopenharmony_ci component in the top 12 bits of the word in bytes 0..1, a 12-bit G 1001e5c31af7Sopenharmony_ci component in the top 12 bits of the word in bytes 2..3, a 12-bit B 1002e5c31af7Sopenharmony_ci component in the top 12 bits of the word in bytes 4..5, and a 12-bit A 1003e5c31af7Sopenharmony_ci component in the top 12 bits of the word in bytes 6..7, with the bottom 1004e5c31af7Sopenharmony_ci 4 bits of each word unused. 1005e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 specifies a 1006e5c31af7Sopenharmony_ci four-component, 64-bit format containing a pair of G components, an R 1007e5c31af7Sopenharmony_ci component, and a B component, collectively encoding a 2{times}1 1008e5c31af7Sopenharmony_ci rectangle of unsigned normalized RGB texel data. 1009e5c31af7Sopenharmony_ci One G value is present at each _i_ coordinate, with the B and R values 1010e5c31af7Sopenharmony_ci shared across both G values and thus recorded at half the horizontal 1011e5c31af7Sopenharmony_ci resolution of the image. 1012e5c31af7Sopenharmony_ci This format has a 12-bit G component for the even _i_ coordinate in the 1013e5c31af7Sopenharmony_ci top 12 bits of the word in bytes 0..1, a 12-bit B component in the top 1014e5c31af7Sopenharmony_ci 12 bits of the word in bytes 2..3, a 12-bit G component for the odd _i_ 1015e5c31af7Sopenharmony_ci coordinate in the top 12 bits of the word in bytes 4..5, and a 12-bit R 1016e5c31af7Sopenharmony_ci component in the top 12 bits of the word in bytes 6..7, with the bottom 1017e5c31af7Sopenharmony_ci 4 bits of each word unused. 1018e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 1019e5c31af7Sopenharmony_ci For the purposes of the constraints on copy extents, this format is 1020e5c31af7Sopenharmony_ci treated as a compressed format with a 2{times}1 compressed texel block. 1021e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 specifies a 1022e5c31af7Sopenharmony_ci four-component, 64-bit format containing a pair of G components, an R 1023e5c31af7Sopenharmony_ci component, and a B component, collectively encoding a 2{times}1 1024e5c31af7Sopenharmony_ci rectangle of unsigned normalized RGB texel data. 1025e5c31af7Sopenharmony_ci One G value is present at each _i_ coordinate, with the B and R values 1026e5c31af7Sopenharmony_ci shared across both G values and thus recorded at half the horizontal 1027e5c31af7Sopenharmony_ci resolution of the image. 1028e5c31af7Sopenharmony_ci This format has a 12-bit B component in the top 12 bits of the word in 1029e5c31af7Sopenharmony_ci bytes 0..1, a 12-bit G component for the even _i_ coordinate in the top 1030e5c31af7Sopenharmony_ci 12 bits of the word in bytes 2..3, a 12-bit R component in the top 12 1031e5c31af7Sopenharmony_ci bits of the word in bytes 4..5, and a 12-bit G component for the odd _i_ 1032e5c31af7Sopenharmony_ci coordinate in the top 12 bits of the word in bytes 6..7, with the bottom 1033e5c31af7Sopenharmony_ci 4 bits of each word unused. 1034e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 1035e5c31af7Sopenharmony_ci For the purposes of the constraints on copy extents, this format is 1036e5c31af7Sopenharmony_ci treated as a compressed format with a 2{times}1 compressed texel block. 1037e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 specifies an 1038e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 12-bit G component 1039e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component 1040e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R 1041e5c31af7Sopenharmony_ci component in the top 12 bits of each 16-bit word of plane 2, with the 1042e5c31af7Sopenharmony_ci bottom 4 bits of each word unused. 1043e5c31af7Sopenharmony_ci The horizontal and vertical dimensions of the R and B planes are halved 1044e5c31af7Sopenharmony_ci relative to the image dimensions, and each R and B component is shared 1045e5c31af7Sopenharmony_ci with the G components for which latexmath:[\left\lfloor i_G \times 0.5 1046e5c31af7Sopenharmony_ci \right\rfloor = i_B = i_R] and latexmath:[\left\lfloor j_G \times 0.5 1047e5c31af7Sopenharmony_ci \right\rfloor = j_B = j_R]. 1048e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1049e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1050e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 1051e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 1052e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 1053e5c31af7Sopenharmony_ci This format only supports images with a width and height that is a 1054e5c31af7Sopenharmony_ci multiple of two. 1055e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 specifies an 1056e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 12-bit G component 1057e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 0, and a two-component, 1058e5c31af7Sopenharmony_ci 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits 1059e5c31af7Sopenharmony_ci of the word in bytes 0..1, and a 12-bit R component in the top 12 bits 1060e5c31af7Sopenharmony_ci of the word in bytes 2..3, with the bottom 4 bits of each word unused. 1061e5c31af7Sopenharmony_ci The horizontal and vertical dimensions of the BR plane are halved 1062e5c31af7Sopenharmony_ci relative to the image dimensions, and each R and B value is shared with 1063e5c31af7Sopenharmony_ci the G components for which latexmath:[\left\lfloor i_G \times 0.5 1064e5c31af7Sopenharmony_ci \right\rfloor = i_B = i_R] and latexmath:[\left\lfloor j_G \times 0.5 1065e5c31af7Sopenharmony_ci \right\rfloor = j_B = j_R]. 1066e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1067e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1068e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 1069e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 1070e5c31af7Sopenharmony_ci This format only supports images with a width and height that is a 1071e5c31af7Sopenharmony_ci multiple of two. 1072e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 specifies an 1073e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 12-bit G component 1074e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component 1075e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R 1076e5c31af7Sopenharmony_ci component in the top 12 bits of each 16-bit word of plane 2, with the 1077e5c31af7Sopenharmony_ci bottom 4 bits of each word unused. 1078e5c31af7Sopenharmony_ci The horizontal dimension of the R and B plane is halved relative to the 1079e5c31af7Sopenharmony_ci image dimensions, and each R and B value is shared with the G components 1080e5c31af7Sopenharmony_ci for which latexmath:[\left\lfloor i_G \times 0.5 \right\rfloor = i_B = 1081e5c31af7Sopenharmony_ci i_R]. 1082e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1083e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1084e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 1085e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 1086e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 1087e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 1088e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 specifies an 1089e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 12-bit G component 1090e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 0, and a two-component, 1091e5c31af7Sopenharmony_ci 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits 1092e5c31af7Sopenharmony_ci of the word in bytes 0..1, and a 12-bit R component in the top 12 bits 1093e5c31af7Sopenharmony_ci of the word in bytes 2..3, with the bottom 4 bits of each word unused. 1094e5c31af7Sopenharmony_ci The horizontal dimension of the BR plane is halved relative to the image 1095e5c31af7Sopenharmony_ci dimensions, and each R and B value is shared with the G components for 1096e5c31af7Sopenharmony_ci which latexmath:[\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R]. 1097e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1098e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1099e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 1100e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 1101e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 1102e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 specifies an 1103e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 12-bit G component 1104e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 0, a 12-bit B component 1105e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R 1106e5c31af7Sopenharmony_ci component in the top 12 bits of each 16-bit word of plane 2, with the 1107e5c31af7Sopenharmony_ci bottom 4 bits of each word unused. 1108e5c31af7Sopenharmony_ci Each plane has the same dimensions and each R, G and B component 1109e5c31af7Sopenharmony_ci contributes to a single texel. 1110e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1111e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1112e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 1113e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 1114e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 1115e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G16B16G16R16_422_UNORM specifies a four-component, 1116e5c31af7Sopenharmony_ci 64-bit format containing a pair of G components, an R component, and a B 1117e5c31af7Sopenharmony_ci component, collectively encoding a 2{times}1 rectangle of unsigned 1118e5c31af7Sopenharmony_ci normalized RGB texel data. 1119e5c31af7Sopenharmony_ci One G value is present at each _i_ coordinate, with the B and R values 1120e5c31af7Sopenharmony_ci shared across both G values and thus recorded at half the horizontal 1121e5c31af7Sopenharmony_ci resolution of the image. 1122e5c31af7Sopenharmony_ci This format has a 16-bit G component for the even _i_ coordinate in the 1123e5c31af7Sopenharmony_ci word in bytes 0..1, a 16-bit B component in the word in bytes 2..3, a 1124e5c31af7Sopenharmony_ci 16-bit G component for the odd _i_ coordinate in the word in bytes 4..5, 1125e5c31af7Sopenharmony_ci and a 16-bit R component in the word in bytes 6..7. 1126e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 1127e5c31af7Sopenharmony_ci For the purposes of the constraints on copy extents, this format is 1128e5c31af7Sopenharmony_ci treated as a compressed format with a 2{times}1 compressed texel block. 1129e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B16G16R16G16_422_UNORM specifies a four-component, 1130e5c31af7Sopenharmony_ci 64-bit format containing a pair of G components, an R component, and a B 1131e5c31af7Sopenharmony_ci component, collectively encoding a 2{times}1 rectangle of unsigned 1132e5c31af7Sopenharmony_ci normalized RGB texel data. 1133e5c31af7Sopenharmony_ci One G value is present at each _i_ coordinate, with the B and R values 1134e5c31af7Sopenharmony_ci shared across both G values and thus recorded at half the horizontal 1135e5c31af7Sopenharmony_ci resolution of the image. 1136e5c31af7Sopenharmony_ci This format has a 16-bit B component in the word in bytes 0..1, a 16-bit 1137e5c31af7Sopenharmony_ci G component for the even _i_ coordinate in the word in bytes 2..3, a 1138e5c31af7Sopenharmony_ci 16-bit R component in the word in bytes 4..5, and a 16-bit G component 1139e5c31af7Sopenharmony_ci for the odd _i_ coordinate in the word in bytes 6..7. 1140e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 1141e5c31af7Sopenharmony_ci For the purposes of the constraints on copy extents, this format is 1142e5c31af7Sopenharmony_ci treated as a compressed format with a 2{times}1 compressed texel block. 1143e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM specifies an unsigned 1144e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has a 16-bit G component in each 1145e5c31af7Sopenharmony_ci 16-bit word of plane 0, a 16-bit B component in each 16-bit word of 1146e5c31af7Sopenharmony_ci plane 1, and a 16-bit R component in each 16-bit word of plane 2. 1147e5c31af7Sopenharmony_ci The horizontal and vertical dimensions of the R and B planes are halved 1148e5c31af7Sopenharmony_ci relative to the image dimensions, and each R and B component is shared 1149e5c31af7Sopenharmony_ci with the G components for which latexmath:[\left\lfloor i_G \times 0.5 1150e5c31af7Sopenharmony_ci \right\rfloor = i_B = i_R] and latexmath:[\left\lfloor j_G \times 0.5 1151e5c31af7Sopenharmony_ci \right\rfloor = j_B = j_R]. 1152e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1153e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1154e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 1155e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 1156e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 1157e5c31af7Sopenharmony_ci This format only supports images with a width and height that is a 1158e5c31af7Sopenharmony_ci multiple of two. 1159e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G16_B16R16_2PLANE_420_UNORM specifies an unsigned 1160e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has a 16-bit G component in each 1161e5c31af7Sopenharmony_ci 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 1162e5c31af7Sopenharmony_ci consisting of a 16-bit B component in the word in bytes 0..1, and a 1163e5c31af7Sopenharmony_ci 16-bit R component in the word in bytes 2..3. 1164e5c31af7Sopenharmony_ci The horizontal and vertical dimensions of the BR plane are halved 1165e5c31af7Sopenharmony_ci relative to the image dimensions, and each R and B value is shared with 1166e5c31af7Sopenharmony_ci the G components for which latexmath:[\left\lfloor i_G \times 0.5 1167e5c31af7Sopenharmony_ci \right\rfloor = i_B = i_R] and latexmath:[\left\lfloor j_G \times 0.5 1168e5c31af7Sopenharmony_ci \right\rfloor = j_B = j_R]. 1169e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1170e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1171e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 1172e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 1173e5c31af7Sopenharmony_ci This format only supports images with a width and height that is a 1174e5c31af7Sopenharmony_ci multiple of two. 1175e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM specifies an unsigned 1176e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has a 16-bit G component in each 1177e5c31af7Sopenharmony_ci 16-bit word of plane 0, a 16-bit B component in each 16-bit word of 1178e5c31af7Sopenharmony_ci plane 1, and a 16-bit R component in each 16-bit word of plane 2. 1179e5c31af7Sopenharmony_ci The horizontal dimension of the R and B plane is halved relative to the 1180e5c31af7Sopenharmony_ci image dimensions, and each R and B value is shared with the G components 1181e5c31af7Sopenharmony_ci for which latexmath:[\left\lfloor i_G \times 0.5 \right\rfloor = i_B = 1182e5c31af7Sopenharmony_ci i_R]. 1183e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1184e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1185e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 1186e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 1187e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 1188e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 1189e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G16_B16R16_2PLANE_422_UNORM specifies an unsigned 1190e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has a 16-bit G component in each 1191e5c31af7Sopenharmony_ci 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 1192e5c31af7Sopenharmony_ci consisting of a 16-bit B component in the word in bytes 0..1, and a 1193e5c31af7Sopenharmony_ci 16-bit R component in the word in bytes 2..3. 1194e5c31af7Sopenharmony_ci The horizontal dimension of the BR plane is halved relative to the image 1195e5c31af7Sopenharmony_ci dimensions, and each R and B value is shared with the G components for 1196e5c31af7Sopenharmony_ci which latexmath:[\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R]. 1197e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1198e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1199e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 1200e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 1201e5c31af7Sopenharmony_ci This format only supports images with a width that is a multiple of two. 1202e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM specifies an unsigned 1203e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has a 16-bit G component in each 1204e5c31af7Sopenharmony_ci 16-bit word of plane 0, a 16-bit B component in each 16-bit word of 1205e5c31af7Sopenharmony_ci plane 1, and a 16-bit R component in each 16-bit word of plane 2. 1206e5c31af7Sopenharmony_ci Each plane has the same dimensions and each R, G and B component 1207e5c31af7Sopenharmony_ci contributes to a single texel. 1208e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1209e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1210e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, 1211e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the B plane, and 1212e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_2_BIT for the R plane. 1213e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1214e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_ycbcr_2plane_444_formats[] 1215e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G8_B8R8_2PLANE_444_UNORM specifies an unsigned 1216e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has an 8-bit G component in plane 1217e5c31af7Sopenharmony_ci 0, and a two-component, 16-bit BR plane 1 consisting of an 8-bit B 1218e5c31af7Sopenharmony_ci component in byte 0 and an 8-bit R component in byte 1. 1219e5c31af7Sopenharmony_ci Both planes have the same dimensions and each R, G and B component 1220e5c31af7Sopenharmony_ci contributes to a single texel. 1221e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1222e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1223e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 1224e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 1225e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 specifies an 1226e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 10-bit G component 1227e5c31af7Sopenharmony_ci in the top 10 bits of each 16-bit word of plane 0, and a two-component, 1228e5c31af7Sopenharmony_ci 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits 1229e5c31af7Sopenharmony_ci of the word in bytes 0..1, and a 10-bit R component in the top 10 bits 1230e5c31af7Sopenharmony_ci of the word in bytes 2..3, the bottom 6 bits of each word unused. 1231e5c31af7Sopenharmony_ci Both planes have the same dimensions and each R, G and B component 1232e5c31af7Sopenharmony_ci contributes to a single texel. 1233e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1234e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1235e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 1236e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 1237e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 specifies an 1238e5c31af7Sopenharmony_ci unsigned normalized _multi-planar format_ that has a 12-bit G component 1239e5c31af7Sopenharmony_ci in the top 12 bits of each 16-bit word of plane 0, and a two-component, 1240e5c31af7Sopenharmony_ci 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits 1241e5c31af7Sopenharmony_ci of the word in bytes 0..1, and a 12-bit R component in the top 12 bits 1242e5c31af7Sopenharmony_ci of the word in bytes 2..3, the bottom 4 bits of each word unused. 1243e5c31af7Sopenharmony_ci Both planes have the same dimensions and each R, G and B component 1244e5c31af7Sopenharmony_ci contributes to a single texel. 1245e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1246e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1247e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 1248e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 1249e5c31af7Sopenharmony_ci * ename:VK_FORMAT_G16_B16R16_2PLANE_444_UNORM specifies an unsigned 1250e5c31af7Sopenharmony_ci normalized _multi-planar format_ that has a 16-bit G component in each 1251e5c31af7Sopenharmony_ci 16-bit word of plane 0, and a two-component, 32-bit BR plane 1 1252e5c31af7Sopenharmony_ci consisting of a 16-bit B component in the word in bytes 0..1, and a 1253e5c31af7Sopenharmony_ci 16-bit R component in the word in bytes 2..3. 1254e5c31af7Sopenharmony_ci Both planes have the same dimensions and each R, G and B component 1255e5c31af7Sopenharmony_ci contributes to a single texel. 1256e5c31af7Sopenharmony_ci The location of each plane when this image is in linear layout can be 1257e5c31af7Sopenharmony_ci determined via flink:vkGetImageSubresourceLayout, using 1258e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_0_BIT for the G plane, and 1259e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_PLANE_1_BIT for the BR plane. 1260e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_ycbcr_2plane_444_formats[] 1261e5c31af7Sopenharmony_ciifdef::VK_IMG_format_pvrtc[] 1262e5c31af7Sopenharmony_ci * ename:VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG specifies a four-component, 1263e5c31af7Sopenharmony_ci PVRTC compressed format where each 64-bit compressed texel block encodes 1264e5c31af7Sopenharmony_ci an 8{times}4 rectangle of unsigned normalized RGBA texel data. 1265e5c31af7Sopenharmony_ci * ename:VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG specifies a four-component, 1266e5c31af7Sopenharmony_ci PVRTC compressed format where each 64-bit compressed texel block encodes 1267e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGBA texel data. 1268e5c31af7Sopenharmony_ci * ename:VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG specifies a four-component, 1269e5c31af7Sopenharmony_ci PVRTC compressed format where each 64-bit compressed texel block encodes 1270e5c31af7Sopenharmony_ci an 8{times}4 rectangle of unsigned normalized RGBA texel data. 1271e5c31af7Sopenharmony_ci * ename:VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG specifies a four-component, 1272e5c31af7Sopenharmony_ci PVRTC compressed format where each 64-bit compressed texel block encodes 1273e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGBA texel data. 1274e5c31af7Sopenharmony_ci * ename:VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG specifies a four-component, 1275e5c31af7Sopenharmony_ci PVRTC compressed format where each 64-bit compressed texel block encodes 1276e5c31af7Sopenharmony_ci an 8{times}4 rectangle of unsigned normalized RGBA texel data with sRGB 1277e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 1278e5c31af7Sopenharmony_ci * ename:VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG specifies a four-component, 1279e5c31af7Sopenharmony_ci PVRTC compressed format where each 64-bit compressed texel block encodes 1280e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGBA texel data with sRGB 1281e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 1282e5c31af7Sopenharmony_ci * ename:VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG specifies a four-component, 1283e5c31af7Sopenharmony_ci PVRTC compressed format where each 64-bit compressed texel block encodes 1284e5c31af7Sopenharmony_ci an 8{times}4 rectangle of unsigned normalized RGBA texel data with sRGB 1285e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 1286e5c31af7Sopenharmony_ci * ename:VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG specifies a four-component, 1287e5c31af7Sopenharmony_ci PVRTC compressed format where each 64-bit compressed texel block encodes 1288e5c31af7Sopenharmony_ci a 4{times}4 rectangle of unsigned normalized RGBA texel data with sRGB 1289e5c31af7Sopenharmony_ci nonlinear encoding applied to the RGB components. 1290e5c31af7Sopenharmony_ciendif::VK_IMG_format_pvrtc[] 1291e5c31af7Sopenharmony_ciifdef::VK_NV_optical_flow[] 1292e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_S10_5_NV specifies a two-component, fixed-point 1293e5c31af7Sopenharmony_ci format where most significant bit specifies the sign bit, next 10 bits 1294e5c31af7Sopenharmony_ci specify the integer value and last 5 bits represent the fractional 1295e5c31af7Sopenharmony_ci value. 1296e5c31af7Sopenharmony_ciendif::VK_NV_optical_flow[] 1297e5c31af7Sopenharmony_ci-- 1298e5c31af7Sopenharmony_ci 1299e5c31af7Sopenharmony_ci 1300e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1301e5c31af7Sopenharmony_ci[[formats-compatible-planes]] 1302e5c31af7Sopenharmony_ci=== Compatible Formats of Planes of Multi-Planar Formats 1303e5c31af7Sopenharmony_ci 1304e5c31af7Sopenharmony_ciIndividual planes of multi-planar formats are size-compatible with 1305e5c31af7Sopenharmony_cisingle-plane color formats if they occupy the same number of bits per texel 1306e5c31af7Sopenharmony_ciblock, and are compatible with those formats if they have the same block 1307e5c31af7Sopenharmony_ciextent. 1308e5c31af7Sopenharmony_ci 1309e5c31af7Sopenharmony_ciIn the following table, individual planes of a _multi-planar_ format are 1310e5c31af7Sopenharmony_cicompatible with the format listed against the relevant plane index for that 1311e5c31af7Sopenharmony_cimulti-planar format, and any format compatible with the listed single-plane 1312e5c31af7Sopenharmony_ciformat according to <<formats-compatibility-classes, Format Compatibility 1313e5c31af7Sopenharmony_ciClasses>>. 1314e5c31af7Sopenharmony_ciThese planes are also <<formats-size-compatibility,size-compatible>> with 1315e5c31af7Sopenharmony_ciany format that is <<formats-size-compatibility, size-compatible>> with the 1316e5c31af7Sopenharmony_cilisted single-plane format. 1317e5c31af7Sopenharmony_ci 1318e5c31af7Sopenharmony_ci.Plane Format Compatibility Table 1319e5c31af7Sopenharmony_ci[width="95%",cols="1,6,3,3",options="header"] 1320e5c31af7Sopenharmony_ci|==== 1321e5c31af7Sopenharmony_ci^| Plane ^| Compatible format for plane ^| Width relative to the width _w_ of the plane with the largest dimensions ^| Height relative to the height _h_ of the plane with the largest dimensions 1322e5c31af7Sopenharmony_ciinclude::{generated}/formats/planeformat.adoc[] 1323e5c31af7Sopenharmony_ci|==== 1324e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1325e5c31af7Sopenharmony_ci 1326e5c31af7Sopenharmony_ci 1327e5c31af7Sopenharmony_ci[[formats-planes-image-aspect]] 1328e5c31af7Sopenharmony_ci=== Multi-planar Format Image Aspect 1329e5c31af7Sopenharmony_ci 1330e5c31af7Sopenharmony_ciWhen using elink:VkImageAspectFlagBits to select a plane of a multi-planar 1331e5c31af7Sopenharmony_ciformat, the following are the valid options: 1332e5c31af7Sopenharmony_ci 1333e5c31af7Sopenharmony_ci * Two planes 1334e5c31af7Sopenharmony_ci ** ename:VK_IMAGE_ASPECT_PLANE_0_BIT 1335e5c31af7Sopenharmony_ci ** ename:VK_IMAGE_ASPECT_PLANE_1_BIT 1336e5c31af7Sopenharmony_ci * Three planes 1337e5c31af7Sopenharmony_ci ** ename:VK_IMAGE_ASPECT_PLANE_0_BIT 1338e5c31af7Sopenharmony_ci ** ename:VK_IMAGE_ASPECT_PLANE_1_BIT 1339e5c31af7Sopenharmony_ci ** ename:VK_IMAGE_ASPECT_PLANE_2_BIT 1340e5c31af7Sopenharmony_ci 1341e5c31af7Sopenharmony_ci 1342e5c31af7Sopenharmony_ci[[formats-packed]] 1343e5c31af7Sopenharmony_ci=== Packed Formats 1344e5c31af7Sopenharmony_ci 1345e5c31af7Sopenharmony_ciFor the purposes of address alignment when accessing buffer memory 1346e5c31af7Sopenharmony_cicontaining vertex attribute or texel data, the following formats are 1347e5c31af7Sopenharmony_ciconsidered _packed_ - components of the texels or attributes are stored in 1348e5c31af7Sopenharmony_cibitfields packed into one or more 8-, 16-, or 32-bit fundamental data type. 1349e5c31af7Sopenharmony_ci 1350e5c31af7Sopenharmony_ciinclude::{generated}/formats/packed.adoc[] 1351e5c31af7Sopenharmony_ci 1352e5c31af7Sopenharmony_ci 1353e5c31af7Sopenharmony_ci=== Identification of Formats 1354e5c31af7Sopenharmony_ci 1355e5c31af7Sopenharmony_ciA "`format`" is represented by a single enum value. 1356e5c31af7Sopenharmony_ciThe name of a format is usually built up by using the following pattern: 1357e5c31af7Sopenharmony_ci 1358e5c31af7Sopenharmony_ci.... 1359e5c31af7Sopenharmony_ci VK_FORMAT_{component-format|compression-scheme}_{numeric-format} 1360e5c31af7Sopenharmony_ci.... 1361e5c31af7Sopenharmony_ci 1362e5c31af7Sopenharmony_ciThe component-format indicates either the size of the R, G, B, and A 1363e5c31af7Sopenharmony_cicomponents (if they are present) in the case of a color format, or the size 1364e5c31af7Sopenharmony_ciof the depth (D) and stencil (S) components (if they are present) in the 1365e5c31af7Sopenharmony_cicase of a depth/stencil format (see below). 1366e5c31af7Sopenharmony_ciAn X indicates a component that is unused, but may: be present for padding. 1367e5c31af7Sopenharmony_ci 1368e5c31af7Sopenharmony_ci<<< 1369e5c31af7Sopenharmony_ci 1370e5c31af7Sopenharmony_ci[[formats-numericformat]] 1371e5c31af7Sopenharmony_ci.Interpretation of Numeric Format 1372e5c31af7Sopenharmony_ci[width="95%",cols="2,3,3,10",options="header"] 1373e5c31af7Sopenharmony_ci|==== 1374e5c31af7Sopenharmony_ci| Numeric format | Type-Declaration instructions | Numeric type | Description 1375e5c31af7Sopenharmony_ci| etext:UNORM | OpTypeFloat | floating-point | The components are unsigned normalized values in the range [eq]#[0,1]# 1376e5c31af7Sopenharmony_ci| etext:SNORM | OpTypeFloat | floating-point | The components are signed normalized values in the range [eq]#[-1,1]# 1377e5c31af7Sopenharmony_ci| etext:USCALED | OpTypeFloat | floating-point | The components are unsigned integer values that get converted to floating-point in the range [0,2^n^-1] 1378e5c31af7Sopenharmony_ci| etext:SSCALED | OpTypeFloat | floating-point | The components are signed integer values that get converted to floating-point in the range [-2^n-1^,2^n-1^-1] 1379e5c31af7Sopenharmony_ci| etext:UINT | OpTypeInt | unsigned integer | The components are unsigned integer values in the range [0,2^n^-1] 1380e5c31af7Sopenharmony_ci| etext:SINT | OpTypeInt | signed integer | The components are signed integer values in the range [-2^n-1^,2^n-1^-1] 1381e5c31af7Sopenharmony_ci| etext:UFLOAT | OpTypeFloat | floating-point | The components are unsigned floating-point numbers (used by packed, shared exponent, and some compressed formats) 1382e5c31af7Sopenharmony_ci| etext:SFLOAT | OpTypeFloat | floating-point | The components are signed floating-point numbers 1383e5c31af7Sopenharmony_ci| etext:SRGB | OpTypeFloat | floating-point | The R, G, and B components are unsigned normalized values that represent values using sRGB nonlinear encoding, while the A component (if one exists) is a regular unsigned normalized value 1384e5c31af7Sopenharmony_ci4+| [eq]#n# is the number of bits in the component. 1385e5c31af7Sopenharmony_ci|==== 1386e5c31af7Sopenharmony_ci 1387e5c31af7Sopenharmony_ciThe suffix etext:_PACKnn indicates that the format is packed into an 1388e5c31af7Sopenharmony_ciunderlying type with etext:nn bits. 1389e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1390e5c31af7Sopenharmony_ciThe suffix etext:_mPACKnn is a short-hand that indicates that the format has 1391e5c31af7Sopenharmony_cietext:m groups of components (which may or may not be stored in separate 1392e5c31af7Sopenharmony_ci_planes_) that are each packed into an underlying type with etext:nn bits. 1393e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1394e5c31af7Sopenharmony_ci 1395e5c31af7Sopenharmony_ciThe suffix etext:_BLOCK indicates that the format is a block-compressed 1396e5c31af7Sopenharmony_ciformat, with the representation of multiple pixels encoded interdependently 1397e5c31af7Sopenharmony_ciwithin a region. 1398e5c31af7Sopenharmony_ci 1399e5c31af7Sopenharmony_ci[[formats-compressionscheme]] 1400e5c31af7Sopenharmony_ci.Interpretation of Compression Scheme 1401e5c31af7Sopenharmony_ci[width="95%",cols="2,10",options="header"] 1402e5c31af7Sopenharmony_ci|==== 1403e5c31af7Sopenharmony_ci| Compression scheme | Description 1404e5c31af7Sopenharmony_ci| etext:BC | Block Compression. See <<appendix-compressedtex-bc>>. 1405e5c31af7Sopenharmony_ci| etext:ETC2 | Ericsson Texture Compression. See <<appendix-compressedtex-etc2>>. 1406e5c31af7Sopenharmony_ci| etext:EAC | ETC2 Alpha Compression. See <<appendix-compressedtex-etc2>>. 1407e5c31af7Sopenharmony_ci| etext:ASTC | Adaptive Scalable Texture Compression (LDR Profile). See <<appendix-compressedtex-astc>>. 1408e5c31af7Sopenharmony_ci|==== 1409e5c31af7Sopenharmony_ci 1410e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1411e5c31af7Sopenharmony_ci[[formats-planes]] 1412e5c31af7Sopenharmony_ciFor _multi-planar_ images, the components in separate _planes_ are separated 1413e5c31af7Sopenharmony_ciby underscores, and the number of planes is indicated by the addition of a 1414e5c31af7Sopenharmony_cietext:_2PLANE or etext:_3PLANE suffix. 1415e5c31af7Sopenharmony_ciSimilarly, the separate aspects of depth-stencil formats are separated by 1416e5c31af7Sopenharmony_ciunderscores, although these are not considered separate planes. 1417e5c31af7Sopenharmony_ciFormats are suffixed by etext:_422 to indicate that planes other than the 1418e5c31af7Sopenharmony_cifirst are reduced in size by a factor of two horizontally or that the R and 1419e5c31af7Sopenharmony_ciB values appear at half the horizontal frequency of the G values, etext:_420 1420e5c31af7Sopenharmony_cito indicate that planes other than the first are reduced in size by a factor 1421e5c31af7Sopenharmony_ciof two both horizontally and vertically, and etext:_444 for consistency to 1422e5c31af7Sopenharmony_ciindicate that all three planes of a three-planar image are the same size. 1423e5c31af7Sopenharmony_ci 1424e5c31af7Sopenharmony_ci[NOTE] 1425e5c31af7Sopenharmony_ci.Note 1426e5c31af7Sopenharmony_ci==== 1427e5c31af7Sopenharmony_ciNo common format has a single plane containing both R and B components but 1428e5c31af7Sopenharmony_cidoes not store these components at reduced horizontal resolution. 1429e5c31af7Sopenharmony_ci==== 1430e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1431e5c31af7Sopenharmony_ci 1432e5c31af7Sopenharmony_ci 1433e5c31af7Sopenharmony_ci[[texel-block-size]] 1434e5c31af7Sopenharmony_ci=== Representation and Texel Block Size 1435e5c31af7Sopenharmony_ci 1436e5c31af7Sopenharmony_ciColor formats must: be represented in memory in exactly the form indicated 1437e5c31af7Sopenharmony_ciby the format's name. 1438e5c31af7Sopenharmony_ciThis means that promoting one format to another with more bits per component 1439e5c31af7Sopenharmony_ciand/or additional components must: not occur for color formats. 1440e5c31af7Sopenharmony_ciDepth/stencil formats have more relaxed requirements as discussed 1441e5c31af7Sopenharmony_ci<<formats-depth-stencil,below>>. 1442e5c31af7Sopenharmony_ci 1443e5c31af7Sopenharmony_ciEach format has a _texel block size_, the number of bytes used to store one 1444e5c31af7Sopenharmony_ci_texel block_ (a single addressable element of an uncompressed image, or a 1445e5c31af7Sopenharmony_cisingle compressed block of a compressed image). 1446e5c31af7Sopenharmony_ciThe texel block size for each format is shown in the 1447e5c31af7Sopenharmony_ci<<formats-compatibility, Compatible formats>> table. 1448e5c31af7Sopenharmony_ci 1449e5c31af7Sopenharmony_ciThe representation of non-packed formats is that the first component 1450e5c31af7Sopenharmony_cispecified in the name of the format is in the lowest memory addresses and 1451e5c31af7Sopenharmony_cithe last component specified is in the highest memory addresses. 1452e5c31af7Sopenharmony_ciSee <<formats-non-packed,Byte mappings for non-packed/compressed color 1453e5c31af7Sopenharmony_ciformats>>. 1454e5c31af7Sopenharmony_ciThe in-memory ordering of bytes within a component is determined by the host 1455e5c31af7Sopenharmony_ciendianness. 1456e5c31af7Sopenharmony_ci 1457e5c31af7Sopenharmony_ci[[formats-non-packed]] 1458e5c31af7Sopenharmony_ci.Byte mappings for non-packed/compressed color formats 1459e5c31af7Sopenharmony_ci[options="header",cols="16*1,10",width="100%"] 1460e5c31af7Sopenharmony_ci|==== 1461e5c31af7Sopenharmony_ci>|0 >|1 >|2 >|3 >|4 >|5 >|6 >|7 >|8 >|9 >|10 >|11 >|12 >|13 >|14 >|15 ^| {leftarrow} Byte 1462e5c31af7Sopenharmony_ci^|R 16+>s|etext:VK_FORMAT_R8_* 1463e5c31af7Sopenharmony_ci^|R ^|G 15+>s|etext:VK_FORMAT_R8G8_* 1464e5c31af7Sopenharmony_ci^|R ^|G ^|B 14+>s|etext:VK_FORMAT_R8G8B8_* 1465e5c31af7Sopenharmony_ci^|B ^|G ^|R 14+>s|etext:VK_FORMAT_B8G8R8_* 1466e5c31af7Sopenharmony_ci^|R ^|G ^|B ^|A 13+>s|etext:VK_FORMAT_R8G8B8A8_* 1467e5c31af7Sopenharmony_ci^|B ^|G ^|R ^|A 13+>s|etext:VK_FORMAT_B8G8R8A8_* 1468e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 1469e5c31af7Sopenharmony_ci^|A 16+>s|ename:VK_FORMAT_A8_UNORM_KHR 1470e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 1471e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1472e5c31af7Sopenharmony_ci^|G~0~ ^|B ^|G~1~ ^|R 13+>s|ename:VK_FORMAT_G8B8G8R8_422_UNORM 1473e5c31af7Sopenharmony_ci^|B ^|G~0~ ^|R ^|G~1~ 13+>s|ename:VK_FORMAT_B8G8R8G8_422_UNORM 1474e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1475e5c31af7Sopenharmony_ci2+^|R 15+>s|etext:VK_FORMAT_R16_* 1476e5c31af7Sopenharmony_ci2+^|R 2+^|G 13+>s|etext:VK_FORMAT_R16G16_* 1477e5c31af7Sopenharmony_ci2+^|R 2+^|G 2+^|B 11+>s|etext:VK_FORMAT_R16G16B16_* 1478e5c31af7Sopenharmony_ci2+^|R 2+^|G 2+^|B 2+^|A 9+>s|etext:VK_FORMAT_R16G16B16A16_* 1479e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1480e5c31af7Sopenharmony_ci2+^|G~0~ 2+^|B 2+^|G~1~ 2+^|R 9+>s|etext:VK_FORMAT_G10X6B10X6G10X6R10X6_4PACK16_422_UNORM 1481e5c31af7Sopenharmony_cietext:VK_FORMAT_G12X4B12X4G12X4R12X4_4PACK16_422_UNORM 1482e5c31af7Sopenharmony_cietext:VK_FORMAT_G16B16G16R16_UNORM 1483e5c31af7Sopenharmony_ci2+^|B 2+^|G~0~ 2+^|R 2+^|G~1~ 9+>s|etext:VK_FORMAT_B10X6G10X6R10X6G10X6_4PACK16_422_UNORM 1484e5c31af7Sopenharmony_cietext:VK_FORMAT_B12X4G12X4R12X4G12X4_4PACK16_422_UNORM 1485e5c31af7Sopenharmony_ciename:VK_FORMAT_B16G16R16G16_422_UNORM 1486e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1487e5c31af7Sopenharmony_ci4+^|R 13+>s|etext:VK_FORMAT_R32_* 1488e5c31af7Sopenharmony_ci4+^|R 4+^|G 9+>s|etext:VK_FORMAT_R32G32_* 1489e5c31af7Sopenharmony_ci4+^|R 4+^|G 4+^|B 5+>s|etext:VK_FORMAT_R32G32B32_* 1490e5c31af7Sopenharmony_ci4+^|R 4+^|G 4+^|B 4+^|A >s|etext:VK_FORMAT_R32G32B32A32_* 1491e5c31af7Sopenharmony_ci8+^|R 9+>s|etext:VK_FORMAT_R64_* 1492e5c31af7Sopenharmony_ci8+^|R 8+^|G >s|etext:VK_FORMAT_R64G64_* 1493e5c31af7Sopenharmony_ci17+^s|etext:VK_FORMAT_R64G64B64_* as etext:VK_FORMAT_R64G64_* but with B in bytes 16-23 1494e5c31af7Sopenharmony_ci17+^s|etext:VK_FORMAT_R64G64B64A64_* as etext:VK_FORMAT_R64G64B64_* but with A in bytes 24-31 1495e5c31af7Sopenharmony_ci|==== 1496e5c31af7Sopenharmony_ci 1497e5c31af7Sopenharmony_ciPacked formats store multiple components within one underlying type. 1498e5c31af7Sopenharmony_ciThe bit representation is that the first component specified in the name of 1499e5c31af7Sopenharmony_cithe format is in the most-significant bits and the last component specified 1500e5c31af7Sopenharmony_ciis in the least-significant bits of the underlying type. 1501e5c31af7Sopenharmony_ciThe in-memory ordering of bytes comprising the underlying type is determined 1502e5c31af7Sopenharmony_ciby the host endianness. 1503e5c31af7Sopenharmony_ci 1504e5c31af7Sopenharmony_ci[[formats-packed-8-bit]] 1505e5c31af7Sopenharmony_ci.Bit mappings for packed 8-bit formats 1506e5c31af7Sopenharmony_ci[options="header",cols="8*1",width="100%"] 1507e5c31af7Sopenharmony_ci|==== 1508e5c31af7Sopenharmony_ci8+^h| Bit 1509e5c31af7Sopenharmony_ci>|~7~ >|~6~ >|~5~ >|~4~ >|~3~ >|~2~ >|~1~ >|~0~ 1510e5c31af7Sopenharmony_ci8+^h| ename:VK_FORMAT_R4G4_UNORM_PACK8 1511e5c31af7Sopenharmony_ci4+^s|R 4+^s|G 1512e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1513e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1514e5c31af7Sopenharmony_ci|==== 1515e5c31af7Sopenharmony_ci 1516e5c31af7Sopenharmony_ci[[formats-packed-16-bit]] 1517e5c31af7Sopenharmony_ci.Bit mappings for packed 16-bit formats 1518e5c31af7Sopenharmony_ci[options="header",cols="16*1",width="100%"] 1519e5c31af7Sopenharmony_ci|==== 1520e5c31af7Sopenharmony_ci16+^h| Bit 1521e5c31af7Sopenharmony_ci>|~15~ >|~14~ >|~13~ >|~12~ >|~11~ >|~10~ >|~9~ >|~8~ >|~7~ >|~6~ >|~5~ >|~4~ >|~3~ >|~2~ >|~1~ >|~0~ 1522e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_R4G4B4A4_UNORM_PACK16 1523e5c31af7Sopenharmony_ci4+^s|R 4+^s|G 4+^s|B 4+^s|A 1524e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1525e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1526e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1527e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1528e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_B4G4R4A4_UNORM_PACK16 1529e5c31af7Sopenharmony_ci4+^s|B 4+^s|G 4+^s|R 4+^s|A 1530e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1531e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1532e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1533e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1534e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_4444_formats[] 1535e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_A4R4G4B4_UNORM_PACK16 1536e5c31af7Sopenharmony_ci4+^s|A 4+^s|R 4+^s|G 4+^s|B 1537e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1538e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1539e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1540e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1541e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_A4B4G4R4_UNORM_PACK16 1542e5c31af7Sopenharmony_ci4+^s|A 4+^s|B 4+^s|G 4+^s|R 1543e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1544e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1545e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1546e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1547e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_4444_formats[] 1548e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_R5G6B5_UNORM_PACK16 1549e5c31af7Sopenharmony_ci5+^s|R 6+^s|G 5+^s|B 1550e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1551e5c31af7Sopenharmony_ci^| ~5~ ^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1552e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1553e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_B5G6R5_UNORM_PACK16 1554e5c31af7Sopenharmony_ci5+^s|B 6+^s|G 5+^s|R 1555e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1556e5c31af7Sopenharmony_ci^| ~5~ ^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1557e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1558e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_R5G5B5A1_UNORM_PACK16 1559e5c31af7Sopenharmony_ci5+^s|R 5+^s|G 5+^s|B 1+^s|A 1560e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1561e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1562e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1563e5c31af7Sopenharmony_ci^| ~0~ 1564e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 1565e5c31af7Sopenharmony_ci5+^s|B 5+^s|G 5+^s|R 1+^s|A 1566e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1567e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1568e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1569e5c31af7Sopenharmony_ci^| ~0~ 1570e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_A1R5G5B5_UNORM_PACK16 1571e5c31af7Sopenharmony_ci1+^s|A 5+^s|R 5+^s|G 5+^s|B 1572e5c31af7Sopenharmony_ci^| ~0~ 1573e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1574e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1575e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1576e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 1577e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR 1578e5c31af7Sopenharmony_ci1+^s|A 5+^s|B 5+^s|G 5+^s|R 1579e5c31af7Sopenharmony_ci^| ~0~ 1580e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1581e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1582e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1583e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 1584e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1585e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_R10X6_UNORM_PACK16 1586e5c31af7Sopenharmony_ci10+^s|R 6+^s|X 1587e5c31af7Sopenharmony_ci^| ~9~ ^| ~8~ ^| ~7~ ^| ~6~ ^| ~5~ 1588e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1589e5c31af7Sopenharmony_ci^| ~5~ ^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1590e5c31af7Sopenharmony_ci16+^h|ename:VK_FORMAT_R12X4_UNORM_PACK16 1591e5c31af7Sopenharmony_ci12+^s|R 4+^s|X 1592e5c31af7Sopenharmony_ci^| ~11~ ^| ~10~ 1593e5c31af7Sopenharmony_ci^| ~9~ ^| ~8~ ^| ~7~ ^| ~6~ ^| ~5~ 1594e5c31af7Sopenharmony_ci^| ~4~ ^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1595e5c31af7Sopenharmony_ci^| ~3~ ^| ~2~ ^| ~1~ ^| ~0~ 1596e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1597e5c31af7Sopenharmony_ci|==== 1598e5c31af7Sopenharmony_ci 1599e5c31af7Sopenharmony_ci[[formats-packed-32-bit]] 1600e5c31af7Sopenharmony_ci.Bit mappings for packed 32-bit formats 1601e5c31af7Sopenharmony_ci[cols="32*1",options="header"] 1602e5c31af7Sopenharmony_ci|==== 1603e5c31af7Sopenharmony_ci32+^h|Bit 1604e5c31af7Sopenharmony_ci>|~31~ >|~30~ >|~29~ >|~28~ >|~27~ >|~26~ >|~25~ >|~24~ >|~23~ >|~22~ >|~21~ >|~20~ >|~19~ >|~18~ >|~17~ >|~16~ 1605e5c31af7Sopenharmony_ci>|~15~ >|~14~ >|~13~ >|~12~ >|~11~ >|~10~ >|~9~ >|~8~ >|~7~ >|~6~ >|~5~ >|~4~ >|~3~ >|~2~ >|~1~ >|~0~ 1606e5c31af7Sopenharmony_ci32+^h|etext:VK_FORMAT_A8B8G8R8_*_PACK32 1607e5c31af7Sopenharmony_ci8+^s|A 8+^s|B 8+^s|G 8+^s|R 1608e5c31af7Sopenharmony_ci^|~7~ ^|~6~ ^|~5~ ^|~4~ 1609e5c31af7Sopenharmony_ci^|~3~ ^|~2~ ^|~1~ ^|~0~ 1610e5c31af7Sopenharmony_ci^|~7~ ^|~6~ ^|~5~ ^|~4~ 1611e5c31af7Sopenharmony_ci^|~3~ ^|~2~ ^|~1~ ^|~0~ 1612e5c31af7Sopenharmony_ci^|~7~ ^|~6~ ^|~5~ ^|~4~ 1613e5c31af7Sopenharmony_ci^|~3~ ^|~2~ ^|~1~ ^|~0~ 1614e5c31af7Sopenharmony_ci^|~7~ ^|~6~ ^|~5~ ^|~4~ 1615e5c31af7Sopenharmony_ci^|~3~ ^|~2~ ^|~1~ ^|~0~ 1616e5c31af7Sopenharmony_ci32+^h|etext:VK_FORMAT_A2R10G10B10_*_PACK32 1617e5c31af7Sopenharmony_ci2+^s|A 10+^s|R 10+^s|G 10+^s|B 1618e5c31af7Sopenharmony_ci^|~1~ ^|~0~ 1619e5c31af7Sopenharmony_ci^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1620e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1621e5c31af7Sopenharmony_ci^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1622e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1623e5c31af7Sopenharmony_ci^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1624e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1625e5c31af7Sopenharmony_ci32+^h|etext:VK_FORMAT_A2B10G10R10_*_PACK32 1626e5c31af7Sopenharmony_ci2+^s|A 10+^s|B 10+^s|G 10+^s|R 1627e5c31af7Sopenharmony_ci^|~1~ ^|~0~ 1628e5c31af7Sopenharmony_ci^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1629e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1630e5c31af7Sopenharmony_ci^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1631e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1632e5c31af7Sopenharmony_ci^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1633e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1634e5c31af7Sopenharmony_ci32+^h|ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32 1635e5c31af7Sopenharmony_ci10+^s|B 11+^s|G 11+^s|R 1636e5c31af7Sopenharmony_ci^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1637e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1638e5c31af7Sopenharmony_ci^|~10~ ^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1639e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1640e5c31af7Sopenharmony_ci^|~10~ ^|~9~ ^|~8~ ^|~7~ ^|~6~ ^|~5~ 1641e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1642e5c31af7Sopenharmony_ci32+^h|ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 1643e5c31af7Sopenharmony_ci5+^s|E 9+^s|B 9+^s|G 9+^s|R 1644e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1645e5c31af7Sopenharmony_ci^|~8~ ^|~7~ ^|~6~ ^|~5~ 1646e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1647e5c31af7Sopenharmony_ci^|~8~ ^|~7~ ^|~6~ ^|~5~ 1648e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1649e5c31af7Sopenharmony_ci^|~8~ ^|~7~ ^|~6~ ^|~5~ 1650e5c31af7Sopenharmony_ci^|~4~ ^|~3~ ^|~2~ ^|~1~ ^|~0~ 1651e5c31af7Sopenharmony_ci32+^h|ename:VK_FORMAT_X8_D24_UNORM_PACK32 1652e5c31af7Sopenharmony_ci8+^s|X 24+^s|D 1653e5c31af7Sopenharmony_ci^|~7~ ^|~6~ ^|~5~ ^|~4~ 1654e5c31af7Sopenharmony_ci^|~3~ ^|~2~ ^|~1~ ^|~0~ 1655e5c31af7Sopenharmony_ci^|~23~ ^|~22~ ^|~21~ ^|~20~ 1656e5c31af7Sopenharmony_ci^|~19~ ^|~18~ ^|~17~ ^|~16~ 1657e5c31af7Sopenharmony_ci^|~15~ ^|~14~ ^|~13~ ^|~12~ 1658e5c31af7Sopenharmony_ci^|~11~ ^|~10~ ^|~9~ ^|~8~ 1659e5c31af7Sopenharmony_ci^|~7~ ^|~6~ ^|~5~ ^|~4~ 1660e5c31af7Sopenharmony_ci^|~3~ ^|~2~ ^|~1~ ^|~0~ 1661e5c31af7Sopenharmony_ci|==== 1662e5c31af7Sopenharmony_ci 1663e5c31af7Sopenharmony_ci 1664e5c31af7Sopenharmony_ci[[formats-depth-stencil]] 1665e5c31af7Sopenharmony_ci=== Depth/Stencil Formats 1666e5c31af7Sopenharmony_ci 1667e5c31af7Sopenharmony_ciDepth/stencil formats are considered opaque and need not be stored in the 1668e5c31af7Sopenharmony_ciexact number of bits per texel or component ordering indicated by the format 1669e5c31af7Sopenharmony_cienum. 1670e5c31af7Sopenharmony_ciHowever, implementations must: not substitute a different depth or stencil 1671e5c31af7Sopenharmony_ciprecision than is described in the format (e.g. D16 must: not be implemented 1672e5c31af7Sopenharmony_cias D24 or D32). 1673e5c31af7Sopenharmony_ci 1674e5c31af7Sopenharmony_ci 1675e5c31af7Sopenharmony_ci[[formats-compatibility-classes]] 1676e5c31af7Sopenharmony_ci=== Format Compatibility Classes 1677e5c31af7Sopenharmony_ci 1678e5c31af7Sopenharmony_ciUncompressed color formats are _compatible_ with each other if they occupy 1679e5c31af7Sopenharmony_cithe same number of bits per texel block 1680e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 1681e5c31af7Sopenharmony_cias long as neither or both are alpha formats (e.g., 1682e5c31af7Sopenharmony_ciename:VK_FORMAT_A8_UNORM_KHR) 1683e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 1684e5c31af7Sopenharmony_ci. 1685e5c31af7Sopenharmony_ciCompressed color formats are compatible with each other if the only 1686e5c31af7Sopenharmony_cidifference between them is the <<formats-numericformat, numeric format>> of 1687e5c31af7Sopenharmony_cithe uncompressed pixels. 1688e5c31af7Sopenharmony_ciEach depth/stencil format is only compatible with itself. 1689e5c31af7Sopenharmony_ciIn the <<formats-compatibility,following>> table, all the formats in the 1690e5c31af7Sopenharmony_cisame row are compatible. 1691e5c31af7Sopenharmony_ciEach format has a defined _texel block extent_ specifying how many texels 1692e5c31af7Sopenharmony_cieach texel block represents in each dimension. 1693e5c31af7Sopenharmony_ci 1694e5c31af7Sopenharmony_ci 1695e5c31af7Sopenharmony_ci[[formats-compatibility]] 1696e5c31af7Sopenharmony_ci.Compatible Formats 1697e5c31af7Sopenharmony_ci[width="90%",cols="4,10",options="header"] 1698e5c31af7Sopenharmony_ci|==== 1699e5c31af7Sopenharmony_ci| Class, Texel Block Size, Texel Block Extent, # Texels/Block | Formats 1700e5c31af7Sopenharmony_ciinclude::{generated}/formats/compatibility.adoc[] 1701e5c31af7Sopenharmony_ci|==== 1702e5c31af7Sopenharmony_ci 1703e5c31af7Sopenharmony_ci 1704e5c31af7Sopenharmony_ci[[formats-size-compatibility]] 1705e5c31af7Sopenharmony_ci==== Size Compatibility 1706e5c31af7Sopenharmony_ci 1707e5c31af7Sopenharmony_ciColor formats with the same texel block size are considered 1708e5c31af7Sopenharmony_ciifndef::VK_KHR_maintenance5[] 1709e5c31af7Sopenharmony_ci_size-compatible_. 1710e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 1711e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 1712e5c31af7Sopenharmony_ci_size-compatible_ as long as neither or both are alpha formats (e.g., 1713e5c31af7Sopenharmony_ciename:VK_FORMAT_A8_UNORM_KHR). 1714e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 1715e5c31af7Sopenharmony_ciIf two size-compatible formats have different block extents (i.e. for 1716e5c31af7Sopenharmony_cicompressed formats), then an image with size [eq]#A {times} B {times} C# in 1717e5c31af7Sopenharmony_cione format with a block extent of [eq]#a {times} b {times} c# can be 1718e5c31af7Sopenharmony_cirepresented as an image with size [eq]#X {times} Y {times} Z# in the other 1719e5c31af7Sopenharmony_ciformat with block extent [eq]#x {times} y {times} z# at the ratio between 1720e5c31af7Sopenharmony_cithe block extents for each format, where 1721e5c31af7Sopenharmony_ci 1722e5c31af7Sopenharmony_ci {empty}:: [eq]#{lceil}A/a{rceil} = {lceil}X/x{rceil}# 1723e5c31af7Sopenharmony_ci {empty}:: [eq]#{lceil}B/b{rceil} = {lceil}Y/y{rceil}# 1724e5c31af7Sopenharmony_ci {empty}:: [eq]#{lceil}C/c{rceil} = {lceil}Z/z{rceil}# 1725e5c31af7Sopenharmony_ci 1726e5c31af7Sopenharmony_ci[NOTE] 1727e5c31af7Sopenharmony_ci.Note 1728e5c31af7Sopenharmony_ci==== 1729e5c31af7Sopenharmony_ciFor example, a 7x3 image in the ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK format 1730e5c31af7Sopenharmony_cican be represented as a 1x1 ename:VK_FORMAT_R64G64_UINT image. 1731e5c31af7Sopenharmony_ci==== 1732e5c31af7Sopenharmony_ci 1733e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance2[] 1734e5c31af7Sopenharmony_ciImages created with the 1735e5c31af7Sopenharmony_ciename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag can have 1736e5c31af7Sopenharmony_cisize-compatible views created from them to enable access via different 1737e5c31af7Sopenharmony_cisize-compatible formats. 1738e5c31af7Sopenharmony_ciImage views created in this way will be sized to match the expectations of 1739e5c31af7Sopenharmony_cithe block extents noted above. 1740e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance2[] 1741e5c31af7Sopenharmony_ci 1742e5c31af7Sopenharmony_ciCopy operations are able to copy between size-compatible formats in 1743e5c31af7Sopenharmony_cidifferent resources to enable manipulation of data in different formats. 1744e5c31af7Sopenharmony_ciThe extent used in these copy operations always matches the source image, 1745e5c31af7Sopenharmony_ciand is resized to the expectations of the block extents noted above for the 1746e5c31af7Sopenharmony_cidestination image. 1747e5c31af7Sopenharmony_ci 1748e5c31af7Sopenharmony_ci 1749e5c31af7Sopenharmony_ci[[formats-properties]] 1750e5c31af7Sopenharmony_ci== Format Properties 1751e5c31af7Sopenharmony_ci 1752e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFormatProperties',desc='Lists physical device\'s format capabilities',type='protos'] 1753e5c31af7Sopenharmony_ci-- 1754e5c31af7Sopenharmony_ciTo query supported format features which are properties of the physical 1755e5c31af7Sopenharmony_cidevice, call: 1756e5c31af7Sopenharmony_ci 1757e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFormatProperties.adoc[] 1758e5c31af7Sopenharmony_ci 1759e5c31af7Sopenharmony_ci * pname:physicalDevice is the physical device from which to query the 1760e5c31af7Sopenharmony_ci format properties. 1761e5c31af7Sopenharmony_ci * pname:format is the format whose properties are queried. 1762e5c31af7Sopenharmony_ci * pname:pFormatProperties is a pointer to a slink:VkFormatProperties 1763e5c31af7Sopenharmony_ci structure in which physical device properties for pname:format are 1764e5c31af7Sopenharmony_ci returned. 1765e5c31af7Sopenharmony_ci 1766e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFormatProperties.adoc[] 1767e5c31af7Sopenharmony_ci-- 1768e5c31af7Sopenharmony_ci 1769e5c31af7Sopenharmony_ci[open,refpage='VkFormatProperties',desc='Structure specifying image format properties',type='structs'] 1770e5c31af7Sopenharmony_ci-- 1771e5c31af7Sopenharmony_ciThe sname:VkFormatProperties structure is defined as: 1772e5c31af7Sopenharmony_ci 1773e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkFormatProperties.adoc[] 1774e5c31af7Sopenharmony_ci 1775e5c31af7Sopenharmony_ci * pname:linearTilingFeatures is a bitmask of elink:VkFormatFeatureFlagBits 1776e5c31af7Sopenharmony_ci specifying features supported by images created with a pname:tiling 1777e5c31af7Sopenharmony_ci parameter of ename:VK_IMAGE_TILING_LINEAR. 1778e5c31af7Sopenharmony_ci * pname:optimalTilingFeatures is a bitmask of 1779e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits specifying features supported by images 1780e5c31af7Sopenharmony_ci created with a pname:tiling parameter of ename:VK_IMAGE_TILING_OPTIMAL. 1781e5c31af7Sopenharmony_ci * pname:bufferFeatures is a bitmask of elink:VkFormatFeatureFlagBits 1782e5c31af7Sopenharmony_ci specifying features supported by buffers. 1783e5c31af7Sopenharmony_ci 1784e5c31af7Sopenharmony_ci[NOTE] 1785e5c31af7Sopenharmony_ci.Note 1786e5c31af7Sopenharmony_ci==== 1787e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_1,VK_KHR_maintenance1[] 1788e5c31af7Sopenharmony_ciIf no format feature flags are supported, then the only possible use would 1789e5c31af7Sopenharmony_cibe image transfers - which alone are not useful. 1790e5c31af7Sopenharmony_ciAs such, if no format feature flags are supported, the format itself is not 1791e5c31af7Sopenharmony_cisupported, and images of that format cannot be created. 1792e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance1[] 1793e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 1794e5c31af7Sopenharmony_ciIf no format feature flags are supported, the format itself is not 1795e5c31af7Sopenharmony_cisupported, and images of that format cannot be created. 1796e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance1[] 1797e5c31af7Sopenharmony_ci==== 1798e5c31af7Sopenharmony_ci 1799e5c31af7Sopenharmony_ciIf pname:format is a block-compressed format, then pname:bufferFeatures 1800e5c31af7Sopenharmony_cimust: not support any features for the format. 1801e5c31af7Sopenharmony_ci 1802e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1803e5c31af7Sopenharmony_ciIf pname:format is not a multi-plane format then pname:linearTilingFeatures 1804e5c31af7Sopenharmony_ciand pname:optimalTilingFeatures must: not contain 1805e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_DISJOINT_BIT. 1806e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1807e5c31af7Sopenharmony_ci 1808e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkFormatProperties.adoc[] 1809e5c31af7Sopenharmony_ci-- 1810e5c31af7Sopenharmony_ci 1811e5c31af7Sopenharmony_ci[open,refpage='VkFormatFeatureFlagBits',desc='Bitmask specifying features supported by a buffer',type='enums'] 1812e5c31af7Sopenharmony_ci-- 1813e5c31af7Sopenharmony_ciBits which can: be set in the slink:VkFormatProperties features 1814e5c31af7Sopenharmony_cipname:linearTilingFeatures, pname:optimalTilingFeatures, 1815e5c31af7Sopenharmony_ciifdef::VK_EXT_image_drm_format_modifier[] 1816e5c31af7Sopenharmony_cislink:VkDrmFormatModifierPropertiesEXT::pname:drmFormatModifierTilingFeatures, 1817e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[] 1818e5c31af7Sopenharmony_ciand pname:bufferFeatures are: 1819e5c31af7Sopenharmony_ci 1820e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkFormatFeatureFlagBits.adoc[] 1821e5c31af7Sopenharmony_ci 1822e5c31af7Sopenharmony_ciThese values 1823e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 1824e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 1825e5c31af7Sopenharmony_ciall have the same meaning as the equivalently named values for 1826e5c31af7Sopenharmony_citlink:VkFormatFeatureFlags2 and 1827e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 1828e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 1829e5c31af7Sopenharmony_cimay: be set in 1830e5c31af7Sopenharmony_ciifndef::VK_EXT_image_drm_format_modifier[] 1831e5c31af7Sopenharmony_cipname:linearTilingFeatures and pname:optimalTilingFeatures, 1832e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[] 1833e5c31af7Sopenharmony_ciifdef::VK_EXT_image_drm_format_modifier[] 1834e5c31af7Sopenharmony_cipname:linearTilingFeatures, pname:optimalTilingFeatures, and 1835e5c31af7Sopenharmony_cislink:VkDrmFormatModifierPropertiesEXT::pname:drmFormatModifierTilingFeatures, 1836e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[] 1837e5c31af7Sopenharmony_cispecifying that the features are supported by <<VkImage,images>> or 1838e5c31af7Sopenharmony_ci<<VkImageView,image views>> 1839e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1840e5c31af7Sopenharmony_cior <<VkSamplerYcbcrConversion,sampler {YCbCr} conversion objects>> 1841e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1842e5c31af7Sopenharmony_cicreated with the queried 1843e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties::pname:format: 1844e5c31af7Sopenharmony_ci 1845e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT specifies that an image view 1846e5c31af7Sopenharmony_ci can: be <<descriptorsets-sampledimage, sampled from>>. 1847e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT specifies that an image view 1848e5c31af7Sopenharmony_ci can: be used as a <<descriptorsets-storageimage, storage image>>. 1849e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT specifies that an image 1850e5c31af7Sopenharmony_ci view can: be used as storage image that supports atomic operations. 1851e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT specifies that an image 1852e5c31af7Sopenharmony_ci view can: be used as a framebuffer color attachment and as an input 1853e5c31af7Sopenharmony_ci attachment. 1854e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT specifies that an 1855e5c31af7Sopenharmony_ci image view can: be used as a framebuffer color attachment that supports 1856e5c31af7Sopenharmony_ci blending. 1857e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT specifies that an 1858e5c31af7Sopenharmony_ci image view can: be used as a framebuffer depth/stencil attachment and as 1859e5c31af7Sopenharmony_ci an input attachment. 1860e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT specifies that an image can: be 1861e5c31af7Sopenharmony_ci used as pname:srcImage for the 1862e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1863e5c31af7Sopenharmony_ci fname:vkCmdBlitImage command. 1864e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1865e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1866e5c31af7Sopenharmony_ci fname:vkCmdBlitImage2 and fname:vkCmdBlitImage commands. 1867e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1868e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_BLIT_DST_BIT specifies that an image can: be 1869e5c31af7Sopenharmony_ci used as pname:dstImage for the 1870e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1871e5c31af7Sopenharmony_ci fname:vkCmdBlitImage command. 1872e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1873e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1874e5c31af7Sopenharmony_ci fname:vkCmdBlitImage2 and fname:vkCmdBlitImage commands. 1875e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1876e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT specifies that 1877e5c31af7Sopenharmony_ci if ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT is also set, an image view 1878e5c31af7Sopenharmony_ci can: be used with a sampler that has either of pname:magFilter or 1879e5c31af7Sopenharmony_ci pname:minFilter set to ename:VK_FILTER_LINEAR, or pname:mipmapMode set 1880e5c31af7Sopenharmony_ci to ename:VK_SAMPLER_MIPMAP_MODE_LINEAR. 1881e5c31af7Sopenharmony_ci If ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT is also set, an image can be 1882e5c31af7Sopenharmony_ci used as the pname:srcImage to 1883e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1884e5c31af7Sopenharmony_ci fname:vkCmdBlitImage 1885e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1886e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1887e5c31af7Sopenharmony_ci fname:vkCmdBlitImage2 and fname:vkCmdBlitImage 1888e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[] 1889e5c31af7Sopenharmony_ci with a pname:filter of ename:VK_FILTER_LINEAR. 1890e5c31af7Sopenharmony_ci This bit must: only be exposed for formats that also support the 1891e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT or 1892e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT. 1893e5c31af7Sopenharmony_ci+ 1894e5c31af7Sopenharmony_ciIf the format being queried is a depth/stencil format, this bit only 1895e5c31af7Sopenharmony_cispecifies that the depth aspect (not the stencil aspect) of an image of this 1896e5c31af7Sopenharmony_ciformat supports linear filtering, and that linear filtering of the depth 1897e5c31af7Sopenharmony_ciaspect is supported whether depth compare is enabled in the sampler or not. 1898e5c31af7Sopenharmony_ciWhere depth comparison is supported it may: be linear filtered whether this 1899e5c31af7Sopenharmony_cibit is present or not, but where this bit is not present the filtered value 1900e5c31af7Sopenharmony_cimay: be computed in an implementation-dependent manner which differs from 1901e5c31af7Sopenharmony_cithe normal rules of linear filtering. 1902e5c31af7Sopenharmony_ciThe resulting value must: be in the range [eq]#[0,1]# and should: be 1903e5c31af7Sopenharmony_ciproportional to, or a weighted average of, the number of comparison passes 1904e5c31af7Sopenharmony_cior failures. 1905e5c31af7Sopenharmony_ci 1906e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 1907e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT specifies that an image can: be 1908e5c31af7Sopenharmony_ci used as a source image for <<copies, copy commands>>. 1909e5c31af7Sopenharmony_ci If the application pname:apiVersion is Vulkan 1.0 and 1910e5c31af7Sopenharmony_ci `apiext:VK_KHR_maintenance1` is not supported, 1911e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT is implied to be set when the 1912e5c31af7Sopenharmony_ci format feature flag is not 0. 1913e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT specifies that an image can: be 1914e5c31af7Sopenharmony_ci used as a destination image for <<copies, copy commands>> and <<clears, 1915e5c31af7Sopenharmony_ci clear commands>>. 1916e5c31af7Sopenharmony_ci If the application pname:apiVersion is Vulkan 1.0 and 1917e5c31af7Sopenharmony_ci `apiext:VK_KHR_maintenance1` is not supported, 1918e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT is implied to be set when the 1919e5c31af7Sopenharmony_ci format feature flag is not 0. 1920e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance1[] 1921e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[] 1922e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT specifies 1923e5c31af7Sopenharmony_ci sname:VkImage can: be used as a sampled image with a min or max 1924e5c31af7Sopenharmony_ci elink:VkSamplerReductionMode. 1925e5c31af7Sopenharmony_ci This bit must: only be exposed for formats that also support the 1926e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT. 1927e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[] 1928e5c31af7Sopenharmony_ciifdef::VK_IMG_filter_cubic,VK_EXT_filter_cubic[] 1929e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT specifies 1930e5c31af7Sopenharmony_ci that sname:VkImage can: be used with a sampler that has either of 1931e5c31af7Sopenharmony_ci pname:magFilter or pname:minFilter set to ename:VK_FILTER_CUBIC_EXT, or 1932e5c31af7Sopenharmony_ci be the source image for a blit with pname:filter set to 1933e5c31af7Sopenharmony_ci ename:VK_FILTER_CUBIC_EXT. 1934e5c31af7Sopenharmony_ci This bit must: only be exposed for formats that also support the 1935e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT. 1936e5c31af7Sopenharmony_ci If the format being queried is a depth/stencil format, this only 1937e5c31af7Sopenharmony_ci specifies that the depth aspect is cubic filterable. 1938e5c31af7Sopenharmony_ciendif::VK_IMG_filter_cubic,VK_EXT_filter_cubic[] 1939e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1940e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT specifies that an 1941e5c31af7Sopenharmony_ci application can: define a <<samplers-YCbCr-conversion,sampler {YCbCr} 1942e5c31af7Sopenharmony_ci conversion>> using this format as a source, and that an image of this 1943e5c31af7Sopenharmony_ci format can: be used with a slink:VkSamplerYcbcrConversionCreateInfo 1944e5c31af7Sopenharmony_ci pname:xChromaOffset and/or pname:yChromaOffset of 1945e5c31af7Sopenharmony_ci ename:VK_CHROMA_LOCATION_MIDPOINT. 1946e5c31af7Sopenharmony_ci Otherwise both pname:xChromaOffset and pname:yChromaOffset must: be 1947e5c31af7Sopenharmony_ci ename:VK_CHROMA_LOCATION_COSITED_EVEN. 1948e5c31af7Sopenharmony_ci If a format does not incorporate chroma downsampling (it is not a 1949e5c31af7Sopenharmony_ci "`422`" or "`420`" format) but the implementation supports sampler 1950e5c31af7Sopenharmony_ci {YCbCr} conversion for this format, the implementation must: set 1951e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT. 1952e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT specifies that an 1953e5c31af7Sopenharmony_ci application can: define a <<samplers-YCbCr-conversion,sampler {YCbCr} 1954e5c31af7Sopenharmony_ci conversion>> using this format as a source, and that an image of this 1955e5c31af7Sopenharmony_ci format can: be used with a slink:VkSamplerYcbcrConversionCreateInfo 1956e5c31af7Sopenharmony_ci pname:xChromaOffset and/or pname:yChromaOffset of 1957e5c31af7Sopenharmony_ci ename:VK_CHROMA_LOCATION_COSITED_EVEN. 1958e5c31af7Sopenharmony_ci Otherwise both pname:xChromaOffset and pname:yChromaOffset must: be 1959e5c31af7Sopenharmony_ci ename:VK_CHROMA_LOCATION_MIDPOINT. 1960e5c31af7Sopenharmony_ci If neither ename:VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT nor 1961e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT is set, the 1962e5c31af7Sopenharmony_ci application must: not define a <<samplers-YCbCr-conversion,sampler 1963e5c31af7Sopenharmony_ci {YCbCr} conversion>> using this format as a source. 1964e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT 1965e5c31af7Sopenharmony_ci specifies that an application can: define a 1966e5c31af7Sopenharmony_ci <<samplers-YCbCr-conversion,sampler {YCbCr} conversion>> using this 1967e5c31af7Sopenharmony_ci format as a source with pname:chromaFilter set to 1968e5c31af7Sopenharmony_ci ename:VK_FILTER_LINEAR. 1969e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT 1970e5c31af7Sopenharmony_ci specifies that the format can have different chroma, min, and mag 1971e5c31af7Sopenharmony_ci filters. 1972e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT 1973e5c31af7Sopenharmony_ci specifies that reconstruction is explicit, as described in 1974e5c31af7Sopenharmony_ci <<textures-chroma-reconstruction>>. 1975e5c31af7Sopenharmony_ci If this bit is not present, reconstruction is implicit by default. 1976e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT 1977e5c31af7Sopenharmony_ci specifies that reconstruction can: be forcibly made explicit by setting 1978e5c31af7Sopenharmony_ci slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction 1979e5c31af7Sopenharmony_ci to ename:VK_TRUE. 1980e5c31af7Sopenharmony_ci If the format being queried supports 1981e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT 1982e5c31af7Sopenharmony_ci it must: also support 1983e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT. 1984e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_DISJOINT_BIT specifies that a multi-planar image 1985e5c31af7Sopenharmony_ci can: have the ename:VK_IMAGE_CREATE_DISJOINT_BIT set during image 1986e5c31af7Sopenharmony_ci creation. 1987e5c31af7Sopenharmony_ci An implementation must: not set ename:VK_FORMAT_FEATURE_DISJOINT_BIT for 1988e5c31af7Sopenharmony_ci _single-plane formats_. 1989e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1990e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[] 1991e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT specifies that an 1992e5c31af7Sopenharmony_ci image view can: be used as a 1993e5c31af7Sopenharmony_ci <<renderpass-fragmentdensitymapattachment,fragment density map 1994e5c31af7Sopenharmony_ci attachment>>. 1995e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[] 1996e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 1997e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR 1998e5c31af7Sopenharmony_ci specifies that an image view can: be used as a 1999e5c31af7Sopenharmony_ci <<primsrast-fragment-shading-rate-attachment, fragment shading rate 2000e5c31af7Sopenharmony_ci attachment>>. 2001e5c31af7Sopenharmony_ci An implementation must: not set this feature for formats with a 2002e5c31af7Sopenharmony_ci <<formats-numericformat, numeric format>> other than etext:UINT, or set 2003e5c31af7Sopenharmony_ci it as a buffer feature. 2004e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 2005e5c31af7Sopenharmony_ciifdef::VK_KHR_video_decode_queue[] 2006e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR specifies that an 2007e5c31af7Sopenharmony_ci image view with this format can: be used as a <<decode-output-picture, 2008e5c31af7Sopenharmony_ci decode output picture>> in <<video-decode-operations, video decode 2009e5c31af7Sopenharmony_ci operations>>. 2010e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR specifies that an image 2011e5c31af7Sopenharmony_ci view with this format can: be used as an output <<reconstructed-picture, 2012e5c31af7Sopenharmony_ci reconstructed picture>> or an input <<reference-picture,reference 2013e5c31af7Sopenharmony_ci picture>> in <<video-decode-operations,video decode operations>>. 2014e5c31af7Sopenharmony_ciendif::VK_KHR_video_decode_queue[] 2015e5c31af7Sopenharmony_ciifdef::VK_KHR_video_encode_queue[] 2016e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR specifies that an 2017e5c31af7Sopenharmony_ci image view with this format can: be used as an <<encode-input-picture, 2018e5c31af7Sopenharmony_ci encode input picture>> in <<video-encode-operations,video encode 2019e5c31af7Sopenharmony_ci operations>>. 2020e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR specifies that an image 2021e5c31af7Sopenharmony_ci view with this format can: be used as an output <<reconstructed-picture, 2022e5c31af7Sopenharmony_ci reconstructed picture>> or an input <<reference-picture,reference 2023e5c31af7Sopenharmony_ci picture>> in <<video-encode-operations,video encode operations>>. 2024e5c31af7Sopenharmony_ciendif::VK_KHR_video_encode_queue[] 2025e5c31af7Sopenharmony_ciifdef::VK_KHR_video_decode_queue,VK_KHR_video_encode_queue[] 2026e5c31af7Sopenharmony_ci+ 2027e5c31af7Sopenharmony_ci[NOTE] 2028e5c31af7Sopenharmony_ci.Note 2029e5c31af7Sopenharmony_ci==== 2030e5c31af7Sopenharmony_ciSpecific <<video-profiles,video profiles>> may: have additional restrictions 2031e5c31af7Sopenharmony_cion the format and other image creation parameters corresponding to image 2032e5c31af7Sopenharmony_civiews used by video coding operations that can: be enumerated using the 2033e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceVideoFormatPropertiesKHR command. 2034e5c31af7Sopenharmony_ci==== 2035e5c31af7Sopenharmony_ciendif::VK_KHR_video_decode_queue,VK_KHR_video_encode_queue[] 2036e5c31af7Sopenharmony_ci 2037e5c31af7Sopenharmony_ci[[buffer-compatible-format-features]] 2038e5c31af7Sopenharmony_ci 2039e5c31af7Sopenharmony_ciThe following bits may: be set in pname:bufferFeatures, specifying that the 2040e5c31af7Sopenharmony_cifeatures are supported by <<VkBuffer,buffers>> or <<VkBufferView,buffer 2041e5c31af7Sopenharmony_civiews>> created with the queried 2042e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties::pname:format: 2043e5c31af7Sopenharmony_ci 2044e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT specifies that the 2045e5c31af7Sopenharmony_ci format can: be used to create a buffer view that can: be bound to a 2046e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER descriptor. 2047e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT specifies that the 2048e5c31af7Sopenharmony_ci format can: be used to create a buffer view that can: be bound to a 2049e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor. 2050e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT specifies that 2051e5c31af7Sopenharmony_ci atomic operations are supported on 2052e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER with this format. 2053e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT specifies that the format can: 2054e5c31af7Sopenharmony_ci be used as a vertex attribute format 2055e5c31af7Sopenharmony_ci (sname:VkVertexInputAttributeDescription::pname:format). 2056e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 2057e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR 2058e5c31af7Sopenharmony_ci specifies that the format can: be used as the vertex format when 2059e5c31af7Sopenharmony_ci creating an <<acceleration-structure,acceleration structure>> 2060e5c31af7Sopenharmony_ci (sname:VkAccelerationStructureGeometryTrianglesDataKHR::pname:vertexFormat). 2061e5c31af7Sopenharmony_ci This format can: also be used as the vertex format in host memory when 2062e5c31af7Sopenharmony_ci doing <<host-acceleration-structure, host acceleration structure>> 2063e5c31af7Sopenharmony_ci builds. 2064e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 2065e5c31af7Sopenharmony_ci 2066e5c31af7Sopenharmony_ci[NOTE] 2067e5c31af7Sopenharmony_ci.Note 2068e5c31af7Sopenharmony_ci==== 2069e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT and 2070e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT are only intended to 2071e5c31af7Sopenharmony_cibe advertised for single-component formats, since SPIR-V atomic operations 2072e5c31af7Sopenharmony_cirequire a scalar type. 2073e5c31af7Sopenharmony_ci==== 2074e5c31af7Sopenharmony_ci-- 2075e5c31af7Sopenharmony_ci 2076e5c31af7Sopenharmony_ci[open,refpage='VkFormatFeatureFlags',desc='Bitmask of VkFormatFeatureFlagBits',type='flags'] 2077e5c31af7Sopenharmony_ci-- 2078e5c31af7Sopenharmony_ciinclude::{generated}/api/flags/VkFormatFeatureFlags.adoc[] 2079e5c31af7Sopenharmony_ci 2080e5c31af7Sopenharmony_citname:VkFormatFeatureFlags is a bitmask type for setting a mask of zero or 2081e5c31af7Sopenharmony_cimore elink:VkFormatFeatureFlagBits. 2082e5c31af7Sopenharmony_ci-- 2083e5c31af7Sopenharmony_ci 2084e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 2085e5c31af7Sopenharmony_ci 2086e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFormatProperties2',desc='Lists physical device\'s format capabilities',type='protos'] 2087e5c31af7Sopenharmony_ci-- 2088e5c31af7Sopenharmony_ciTo query supported format features which are properties of the physical 2089e5c31af7Sopenharmony_cidevice, call: 2090e5c31af7Sopenharmony_ci 2091e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 2092e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFormatProperties2.adoc[] 2093e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 2094e5c31af7Sopenharmony_ci 2095e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1+VK_KHR_get_physical_device_properties2[or the equivalent command] 2096e5c31af7Sopenharmony_ci 2097e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[] 2098e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFormatProperties2KHR.adoc[] 2099e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[] 2100e5c31af7Sopenharmony_ci 2101e5c31af7Sopenharmony_ci * pname:physicalDevice is the physical device from which to query the 2102e5c31af7Sopenharmony_ci format properties. 2103e5c31af7Sopenharmony_ci * pname:format is the format whose properties are queried. 2104e5c31af7Sopenharmony_ci * pname:pFormatProperties is a pointer to a slink:VkFormatProperties2 2105e5c31af7Sopenharmony_ci structure in which physical device properties for pname:format are 2106e5c31af7Sopenharmony_ci returned. 2107e5c31af7Sopenharmony_ci 2108e5c31af7Sopenharmony_cifname:vkGetPhysicalDeviceFormatProperties2 behaves similarly to 2109e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties, with the ability to return 2110e5c31af7Sopenharmony_ciextended information in a pname:pNext chain of output structures. 2111e5c31af7Sopenharmony_ci 2112e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFormatProperties2.adoc[] 2113e5c31af7Sopenharmony_ci-- 2114e5c31af7Sopenharmony_ci 2115e5c31af7Sopenharmony_ci[open,refpage='VkFormatProperties2',desc='Structure specifying image format properties',type='structs'] 2116e5c31af7Sopenharmony_ci-- 2117e5c31af7Sopenharmony_ciThe sname:VkFormatProperties2 structure is defined as: 2118e5c31af7Sopenharmony_ci 2119e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkFormatProperties2.adoc[] 2120e5c31af7Sopenharmony_ci 2121e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[] 2122e5c31af7Sopenharmony_cior the equivalent 2123e5c31af7Sopenharmony_ci 2124e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkFormatProperties2KHR.adoc[] 2125e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[] 2126e5c31af7Sopenharmony_ci 2127e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2128e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2129e5c31af7Sopenharmony_ci structure. 2130e5c31af7Sopenharmony_ci * pname:formatProperties is a slink:VkFormatProperties structure 2131e5c31af7Sopenharmony_ci describing features supported by the requested format. 2132e5c31af7Sopenharmony_ci 2133e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkFormatProperties2.adoc[] 2134e5c31af7Sopenharmony_ci-- 2135e5c31af7Sopenharmony_ci 2136e5c31af7Sopenharmony_ciifdef::VK_EXT_image_drm_format_modifier[] 2137e5c31af7Sopenharmony_ci[open,refpage='VkDrmFormatModifierPropertiesListEXT',desc='Structure specifying the list of DRM format modifiers supported for a format',type='structs'] 2138e5c31af7Sopenharmony_ci-- 2139e5c31af7Sopenharmony_ciTo obtain the list of <<glossary-drm-format-modifier,Linux DRM format 2140e5c31af7Sopenharmony_cimodifiers>> compatible with a elink:VkFormat, add a 2141e5c31af7Sopenharmony_cislink:VkDrmFormatModifierPropertiesListEXT structure to the pname:pNext 2142e5c31af7Sopenharmony_cichain of slink:VkFormatProperties2. 2143e5c31af7Sopenharmony_ci 2144e5c31af7Sopenharmony_ciThe slink:VkDrmFormatModifierPropertiesListEXT structure is defined as: 2145e5c31af7Sopenharmony_ci 2146e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkDrmFormatModifierPropertiesListEXT.adoc[] 2147e5c31af7Sopenharmony_ci 2148e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2149e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2150e5c31af7Sopenharmony_ci structure. 2151e5c31af7Sopenharmony_ci * pname:drmFormatModifierCount is an inout parameter related to the number 2152e5c31af7Sopenharmony_ci of modifiers compatible with the pname:format, as described below. 2153e5c31af7Sopenharmony_ci * pname:pDrmFormatModifierProperties is either `NULL` or a pointer to an 2154e5c31af7Sopenharmony_ci array of slink:VkDrmFormatModifierPropertiesEXT structures. 2155e5c31af7Sopenharmony_ci 2156e5c31af7Sopenharmony_ciIf pname:pDrmFormatModifierProperties is `NULL`, then the function returns 2157e5c31af7Sopenharmony_ciin pname:drmFormatModifierCount the number of modifiers compatible with the 2158e5c31af7Sopenharmony_ciqueried pname:format. 2159e5c31af7Sopenharmony_ciOtherwise, the application must: set pname:drmFormatModifierCount to the 2160e5c31af7Sopenharmony_cilength of the array pname:pDrmFormatModifierProperties; the function will 2161e5c31af7Sopenharmony_ciwrite at most pname:drmFormatModifierCount elements to the array, and will 2162e5c31af7Sopenharmony_cireturn in pname:drmFormatModifierCount the number of elements written. 2163e5c31af7Sopenharmony_ci 2164e5c31af7Sopenharmony_ciAmong the elements in array pname:pDrmFormatModifierProperties, each 2165e5c31af7Sopenharmony_cireturned pname:drmFormatModifier must: be unique. 2166e5c31af7Sopenharmony_ci 2167e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkDrmFormatModifierPropertiesListEXT.adoc[] 2168e5c31af7Sopenharmony_ci-- 2169e5c31af7Sopenharmony_ci 2170e5c31af7Sopenharmony_ci[open,refpage='VkDrmFormatModifierPropertiesEXT',desc='Structure specifying properties of a format when combined with a DRM format modifier',type='structs'] 2171e5c31af7Sopenharmony_ci-- 2172e5c31af7Sopenharmony_ciThe slink:VkDrmFormatModifierPropertiesEXT structure describes properties of 2173e5c31af7Sopenharmony_cia elink:VkFormat when that format is combined with a 2174e5c31af7Sopenharmony_ci<<glossary-drm-format-modifier,Linux DRM format modifier>>. 2175e5c31af7Sopenharmony_ciThese properties, like those of slink:VkFormatProperties2, are independent 2176e5c31af7Sopenharmony_ciof any particular image. 2177e5c31af7Sopenharmony_ci 2178e5c31af7Sopenharmony_ciThe slink:VkDrmFormatModifierPropertiesEXT structure is defined as: 2179e5c31af7Sopenharmony_ci 2180e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkDrmFormatModifierPropertiesEXT.adoc[] 2181e5c31af7Sopenharmony_ci 2182e5c31af7Sopenharmony_ci * pname:drmFormatModifier is a _Linux DRM format modifier_. 2183e5c31af7Sopenharmony_ci * pname:drmFormatModifierPlaneCount is the number of _memory planes_ in 2184e5c31af7Sopenharmony_ci any image created with pname:format and pname:drmFormatModifier. 2185e5c31af7Sopenharmony_ci An image's _memory planecount_ is distinct from its _format planecount_, 2186e5c31af7Sopenharmony_ci as explained below. 2187e5c31af7Sopenharmony_ci * pname:drmFormatModifierTilingFeatures is a bitmask of 2188e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits that are supported by any image created 2189e5c31af7Sopenharmony_ci with pname:format and pname:drmFormatModifier. 2190e5c31af7Sopenharmony_ci 2191e5c31af7Sopenharmony_ciThe returned pname:drmFormatModifierTilingFeatures must: contain at least 2192e5c31af7Sopenharmony_cione bit. 2193e5c31af7Sopenharmony_ci 2194e5c31af7Sopenharmony_ciThe implementation must: not return etext:DRM_FORMAT_MOD_INVALID in 2195e5c31af7Sopenharmony_cipname:drmFormatModifier. 2196e5c31af7Sopenharmony_ci 2197e5c31af7Sopenharmony_ciAn image's _memory planecount_ (as returned by 2198e5c31af7Sopenharmony_cipname:drmFormatModifierPlaneCount) is distinct from its _format planecount_ 2199e5c31af7Sopenharmony_ci(in the sense of <<formats-requiring-sampler-ycbcr-conversion,multi-planar>> 2200e5c31af7Sopenharmony_ci{YCbCr} formats). 2201e5c31af7Sopenharmony_ciIn tlink:VkImageAspectFlags, each 2202e5c31af7Sopenharmony_ci`VK_IMAGE_ASPECT_MEMORY_PLANE__{ibit}__BIT_EXT` represents a _memory plane_ 2203e5c31af7Sopenharmony_ciand each `VK_IMAGE_ASPECT_PLANE__{ibit}__BIT` a _format plane_. 2204e5c31af7Sopenharmony_ci 2205e5c31af7Sopenharmony_ciAn image's set of _format planes_ is an ordered partition of the image's 2206e5c31af7Sopenharmony_ci*content* into separable groups of format components. 2207e5c31af7Sopenharmony_ciThe ordered partition is encoded in the name of each elink:VkFormat. 2208e5c31af7Sopenharmony_ciFor example, ename:VK_FORMAT_G8_B8R8_2PLANE_420_UNORM contains two _format 2209e5c31af7Sopenharmony_ciplanes_; the first plane contains the green component and the second plane 2210e5c31af7Sopenharmony_cicontains the blue component and red component. 2211e5c31af7Sopenharmony_ciIf the format name does not contain `PLANE`, then the format contains a 2212e5c31af7Sopenharmony_cisingle plane; for example, ename:VK_FORMAT_R8G8B8A8_UNORM. 2213e5c31af7Sopenharmony_ciSome commands, such as flink:vkCmdCopyBufferToImage, do not operate on all 2214e5c31af7Sopenharmony_ciformat components in the image, but instead operate only on the _format 2215e5c31af7Sopenharmony_ciplanes_ explicitly chosen by the application and operate on each _format 2216e5c31af7Sopenharmony_ciplane_ independently. 2217e5c31af7Sopenharmony_ci 2218e5c31af7Sopenharmony_ciAn image's set of _memory planes_ is an ordered partition of the image's 2219e5c31af7Sopenharmony_ci*memory* rather than the image's *content*. 2220e5c31af7Sopenharmony_ciEach _memory plane_ is a contiguous range of memory. 2221e5c31af7Sopenharmony_ciThe union of an image's _memory planes_ is not necessarily contiguous. 2222e5c31af7Sopenharmony_ci 2223e5c31af7Sopenharmony_ciIf an image is <<glossary-linear-resource,linear>>, then the partition is 2224e5c31af7Sopenharmony_cithe same for _memory planes_ and for _format planes_. 2225e5c31af7Sopenharmony_ciTherefore, if the returned pname:drmFormatModifier is 2226e5c31af7Sopenharmony_cicode:DRM_FORMAT_MOD_LINEAR, then pname:drmFormatModifierPlaneCount must: 2227e5c31af7Sopenharmony_ciequal the _format planecount_, and pname:drmFormatModifierTilingFeatures 2228e5c31af7Sopenharmony_cimust: be identical to the 2229e5c31af7Sopenharmony_cislink:VkFormatProperties2::pname:linearTilingFeatures returned in the same 2230e5c31af7Sopenharmony_cipname:pNext chain. 2231e5c31af7Sopenharmony_ci 2232e5c31af7Sopenharmony_ciIf an image is <<glossary-linear-resource,non-linear>>, then the partition 2233e5c31af7Sopenharmony_ciof the image's *memory* into _memory planes_ is implementation-specific and 2234e5c31af7Sopenharmony_cimay: be unrelated to the partition of the image's *content* into _format 2235e5c31af7Sopenharmony_ciplanes_. 2236e5c31af7Sopenharmony_ciFor example, consider an image whose pname:format is 2237e5c31af7Sopenharmony_ciename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, pname:tiling is 2238e5c31af7Sopenharmony_ciename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, whose pname:drmFormatModifier 2239e5c31af7Sopenharmony_ciis not code:DRM_FORMAT_MOD_LINEAR, and pname:flags lacks 2240e5c31af7Sopenharmony_ciename:VK_IMAGE_CREATE_DISJOINT_BIT. 2241e5c31af7Sopenharmony_ciThe image has 3 _format planes_, and commands such 2242e5c31af7Sopenharmony_ciflink:vkCmdCopyBufferToImage act on each _format plane_ independently as if 2243e5c31af7Sopenharmony_cithe data of each _format plane_ were separable from the data of the other 2244e5c31af7Sopenharmony_ciplanes. 2245e5c31af7Sopenharmony_ciIn a straightforward implementation, the implementation may: store the 2246e5c31af7Sopenharmony_ciimage's content in 3 adjacent _memory planes_ where each _memory plane_ 2247e5c31af7Sopenharmony_cicorresponds exactly to a _format plane_. 2248e5c31af7Sopenharmony_ciHowever, the implementation may: also store the image's content in a single 2249e5c31af7Sopenharmony_ci_memory plane_ where all format components are combined using an 2250e5c31af7Sopenharmony_ciimplementation-private block-compressed format; or the implementation may: 2251e5c31af7Sopenharmony_cistore the image's content in a collection of 7 adjacent _memory planes_ 2252e5c31af7Sopenharmony_ciusing an implementation-private sharding technique. 2253e5c31af7Sopenharmony_ciBecause the image is non-linear and non-disjoint, the implementation has 2254e5c31af7Sopenharmony_cimuch freedom when choosing the image's placement in memory. 2255e5c31af7Sopenharmony_ci 2256e5c31af7Sopenharmony_ciThe _memory planecount_ applies to function parameters and structures only 2257e5c31af7Sopenharmony_ciwhen the API specifies an explicit requirement on 2258e5c31af7Sopenharmony_cipname:drmFormatModifierPlaneCount. 2259e5c31af7Sopenharmony_ciIn all other cases, the _memory planecount_ is ignored. 2260e5c31af7Sopenharmony_ci 2261e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkDrmFormatModifierPropertiesEXT.adoc[] 2262e5c31af7Sopenharmony_ci-- 2263e5c31af7Sopenharmony_ci 2264e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2265e5c31af7Sopenharmony_ci[open,refpage='VkDrmFormatModifierPropertiesList2EXT',desc='Structure specifying the list of DRM format modifiers supported for a format',type='structs'] 2266e5c31af7Sopenharmony_ci-- 2267e5c31af7Sopenharmony_ciThe list of <<glossary-drm-format-modifier,Linux DRM format modifiers>> 2268e5c31af7Sopenharmony_cicompatible with a elink:VkFormat can: be obtained by adding a 2269e5c31af7Sopenharmony_cislink:VkDrmFormatModifierPropertiesList2EXT structure to the pname:pNext 2270e5c31af7Sopenharmony_cichain of slink:VkFormatProperties2. 2271e5c31af7Sopenharmony_ci 2272e5c31af7Sopenharmony_ciThe slink:VkDrmFormatModifierPropertiesList2EXT structure is defined as: 2273e5c31af7Sopenharmony_ci 2274e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkDrmFormatModifierPropertiesList2EXT.adoc[] 2275e5c31af7Sopenharmony_ci 2276e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2277e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2278e5c31af7Sopenharmony_ci structure. 2279e5c31af7Sopenharmony_ci * pname:drmFormatModifierCount is an inout parameter related to the number 2280e5c31af7Sopenharmony_ci of modifiers compatible with the pname:format, as described below. 2281e5c31af7Sopenharmony_ci * pname:pDrmFormatModifierProperties is either `NULL` or a pointer to an 2282e5c31af7Sopenharmony_ci array of slink:VkDrmFormatModifierProperties2EXT structures. 2283e5c31af7Sopenharmony_ci 2284e5c31af7Sopenharmony_ciIf pname:pDrmFormatModifierProperties is `NULL`, the number of modifiers 2285e5c31af7Sopenharmony_cicompatible with the queried pname:format is returned in 2286e5c31af7Sopenharmony_cipname:drmFormatModifierCount. 2287e5c31af7Sopenharmony_ciOtherwise, the application must: set pname:drmFormatModifierCount to the 2288e5c31af7Sopenharmony_cilength of the array pname:pDrmFormatModifierProperties; the function will 2289e5c31af7Sopenharmony_ciwrite at most pname:drmFormatModifierCount elements to the array, and will 2290e5c31af7Sopenharmony_cireturn in pname:drmFormatModifierCount the number of elements written. 2291e5c31af7Sopenharmony_ci 2292e5c31af7Sopenharmony_ciAmong the elements in array pname:pDrmFormatModifierProperties, each 2293e5c31af7Sopenharmony_cireturned pname:drmFormatModifier must: be unique. 2294e5c31af7Sopenharmony_ci 2295e5c31af7Sopenharmony_ciAmong the elements in array pname:pDrmFormatModifierProperties, the bits 2296e5c31af7Sopenharmony_cireported in pname:drmFormatModifierTilingFeatures must: include the bits 2297e5c31af7Sopenharmony_cireported in the corresponding element of 2298e5c31af7Sopenharmony_cisname:VkDrmFormatModifierPropertiesListEXT::pname:pDrmFormatModifierProperties. 2299e5c31af7Sopenharmony_ci 2300e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkDrmFormatModifierPropertiesList2EXT.adoc[] 2301e5c31af7Sopenharmony_ci-- 2302e5c31af7Sopenharmony_ci 2303e5c31af7Sopenharmony_ci[open,refpage='VkDrmFormatModifierProperties2EXT',desc='Structure specifying properties of a format when combined with a DRM format modifier',type='structs'] 2304e5c31af7Sopenharmony_ci-- 2305e5c31af7Sopenharmony_ciThe slink:VkDrmFormatModifierProperties2EXT structure describes properties 2306e5c31af7Sopenharmony_ciof a elink:VkFormat when that format is combined with a 2307e5c31af7Sopenharmony_ci<<glossary-drm-format-modifier,Linux DRM format modifier>>. 2308e5c31af7Sopenharmony_ciThese properties, like those of slink:VkFormatProperties2, are independent 2309e5c31af7Sopenharmony_ciof any particular image. 2310e5c31af7Sopenharmony_ci 2311e5c31af7Sopenharmony_ciThe slink:VkDrmFormatModifierPropertiesEXT structure is defined as: 2312e5c31af7Sopenharmony_ci 2313e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkDrmFormatModifierProperties2EXT.adoc[] 2314e5c31af7Sopenharmony_ci 2315e5c31af7Sopenharmony_ci * pname:drmFormatModifier is a _Linux DRM format modifier_. 2316e5c31af7Sopenharmony_ci * pname:drmFormatModifierPlaneCount is the number of _memory planes_ in 2317e5c31af7Sopenharmony_ci any image created with pname:format and pname:drmFormatModifier. 2318e5c31af7Sopenharmony_ci An image's _memory planecount_ is distinct from its _format planecount_, 2319e5c31af7Sopenharmony_ci as explained below. 2320e5c31af7Sopenharmony_ci * pname:drmFormatModifierTilingFeatures is a bitmask of 2321e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits2 that are supported by any image created 2322e5c31af7Sopenharmony_ci with pname:format and pname:drmFormatModifier. 2323e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkDrmFormatModifierProperties2EXT.adoc[] 2324e5c31af7Sopenharmony_ci-- 2325e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2326e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[] 2327e5c31af7Sopenharmony_ci 2328e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2329e5c31af7Sopenharmony_ci[open,refpage='VkFormatProperties3',desc='Structure specifying image format properties',type='structs',alias='VkFormatProperties3KHR'] 2330e5c31af7Sopenharmony_ci-- 2331e5c31af7Sopenharmony_ciTo query supported format extended features which are properties of the 2332e5c31af7Sopenharmony_ciphysical device, add slink:VkFormatProperties3 structure to the pname:pNext 2333e5c31af7Sopenharmony_cichain of slink:VkFormatProperties2. 2334e5c31af7Sopenharmony_ci 2335e5c31af7Sopenharmony_ciThe slink:VkFormatProperties3 structure is defined as: 2336e5c31af7Sopenharmony_ci 2337e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkFormatProperties3.adoc[] 2338e5c31af7Sopenharmony_ci 2339e5c31af7Sopenharmony_ciifdef::VK_KHR_format_feature_flags2[] 2340e5c31af7Sopenharmony_cior the equivalent 2341e5c31af7Sopenharmony_ci 2342e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkFormatProperties3KHR.adoc[] 2343e5c31af7Sopenharmony_ciendif::VK_KHR_format_feature_flags2[] 2344e5c31af7Sopenharmony_ci 2345e5c31af7Sopenharmony_ci * pname:linearTilingFeatures is a bitmask of 2346e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits2 specifying features supported by images 2347e5c31af7Sopenharmony_ci created with a pname:tiling parameter of ename:VK_IMAGE_TILING_LINEAR. 2348e5c31af7Sopenharmony_ci * pname:optimalTilingFeatures is a bitmask of 2349e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits2 specifying features supported by images 2350e5c31af7Sopenharmony_ci created with a pname:tiling parameter of ename:VK_IMAGE_TILING_OPTIMAL. 2351e5c31af7Sopenharmony_ci * pname:bufferFeatures is a bitmask of elink:VkFormatFeatureFlagBits2 2352e5c31af7Sopenharmony_ci specifying features supported by buffers. 2353e5c31af7Sopenharmony_ci 2354e5c31af7Sopenharmony_ciThe bits reported in pname:linearTilingFeatures, pname:optimalTilingFeatures 2355e5c31af7Sopenharmony_ciand pname:bufferFeatures must: include the bits reported in the 2356e5c31af7Sopenharmony_cicorresponding fields of sname:VkFormatProperties2::pname:formatProperties. 2357e5c31af7Sopenharmony_ci 2358e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkFormatProperties3.adoc[] 2359e5c31af7Sopenharmony_ci-- 2360e5c31af7Sopenharmony_ci 2361e5c31af7Sopenharmony_ci[open,refpage='VkFormatFeatureFlagBits2',desc='Bitmask specifying features supported by a buffer',type='enums',alias='VkFormatFeatureFlagBits2KHR'] 2362e5c31af7Sopenharmony_ci-- 2363e5c31af7Sopenharmony_ciBits which can: be set in the slink:VkFormatProperties3 features 2364e5c31af7Sopenharmony_cipname:linearTilingFeatures, pname:optimalTilingFeatures, and 2365e5c31af7Sopenharmony_cipname:bufferFeatures are: 2366e5c31af7Sopenharmony_ci 2367e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkFormatFeatureFlagBits2.adoc[] 2368e5c31af7Sopenharmony_ci 2369e5c31af7Sopenharmony_ciifdef::VK_KHR_format_feature_flags2[] 2370e5c31af7Sopenharmony_cior the equivalent 2371e5c31af7Sopenharmony_ci 2372e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkFormatFeatureFlagBits2KHR.adoc[] 2373e5c31af7Sopenharmony_ciendif::VK_KHR_format_feature_flags2[] 2374e5c31af7Sopenharmony_ci 2375e5c31af7Sopenharmony_ciThe following bits may: be set in pname:linearTilingFeatures and 2376e5c31af7Sopenharmony_cipname:optimalTilingFeatures, specifying that the features are supported by 2377e5c31af7Sopenharmony_ci<<VkImage,images>> or <<VkImageView,image views>> 2378e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 2379e5c31af7Sopenharmony_cior <<VkSamplerYcbcrConversion,sampler {YCbCr} conversion objects>> 2380e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 2381e5c31af7Sopenharmony_cicreated with the queried 2382e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties2::pname:format: 2383e5c31af7Sopenharmony_ci 2384e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT specifies that an image view 2385e5c31af7Sopenharmony_ci can: be <<descriptorsets-sampledimage, sampled from>>. 2386e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT specifies that an image view 2387e5c31af7Sopenharmony_ci can: be used as a <<descriptorsets-storageimage, storage image>>. 2388e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT specifies that an 2389e5c31af7Sopenharmony_ci image view can: be used as storage image that supports atomic 2390e5c31af7Sopenharmony_ci operations. 2391e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT specifies that an image 2392e5c31af7Sopenharmony_ci view can: be used as a framebuffer color attachment and as an input 2393e5c31af7Sopenharmony_ci attachment. 2394e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT specifies that an 2395e5c31af7Sopenharmony_ci image view can: be used as a framebuffer color attachment that supports 2396e5c31af7Sopenharmony_ci blending. 2397e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT specifies that an 2398e5c31af7Sopenharmony_ci image view can: be used as a framebuffer depth/stencil attachment and as 2399e5c31af7Sopenharmony_ci an input attachment. 2400e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_BLIT_SRC_BIT specifies that an image can: be 2401e5c31af7Sopenharmony_ci used as the pname:srcImage for 2402e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_copy_commands2[flink:vkCmdBlitImage2 and] 2403e5c31af7Sopenharmony_ci flink:vkCmdBlitImage. 2404e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_BLIT_DST_BIT specifies that an image can: be 2405e5c31af7Sopenharmony_ci used as the pname:dstImage for 2406e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_copy_commands2[flink:vkCmdBlitImage2 and] 2407e5c31af7Sopenharmony_ci flink:vkCmdBlitImage. 2408e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT specifies that 2409e5c31af7Sopenharmony_ci if ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT is also set, an image 2410e5c31af7Sopenharmony_ci view can: be used with a sampler that has either of pname:magFilter or 2411e5c31af7Sopenharmony_ci pname:minFilter set to ename:VK_FILTER_LINEAR, or pname:mipmapMode set 2412e5c31af7Sopenharmony_ci to ename:VK_SAMPLER_MIPMAP_MODE_LINEAR. 2413e5c31af7Sopenharmony_ci If ename:VK_FORMAT_FEATURE_2_BLIT_SRC_BIT is also set, an image can be 2414e5c31af7Sopenharmony_ci used as the pname:srcImage for 2415e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_copy_commands2[flink:vkCmdBlitImage2 and] 2416e5c31af7Sopenharmony_ci fname:vkCmdBlitImage with a pname:filter of ename:VK_FILTER_LINEAR. 2417e5c31af7Sopenharmony_ci This bit must: only be exposed for formats that also support the 2418e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT or 2419e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_2_BLIT_SRC_BIT. 2420e5c31af7Sopenharmony_ci+ 2421e5c31af7Sopenharmony_ciIf the format being queried is a depth/stencil format, this bit only 2422e5c31af7Sopenharmony_cispecifies that the depth aspect (not the stencil aspect) of an image of this 2423e5c31af7Sopenharmony_ciformat supports linear filtering. 2424e5c31af7Sopenharmony_ciWhere depth comparison is supported it may: be linear filtered whether this 2425e5c31af7Sopenharmony_cibit is present or not, but where this bit is not present the filtered value 2426e5c31af7Sopenharmony_cimay: be computed in an implementation-dependent manner which differs from 2427e5c31af7Sopenharmony_cithe normal rules of linear filtering. 2428e5c31af7Sopenharmony_ciThe resulting value must: be in the range [eq]#[0,1]# and should: be 2429e5c31af7Sopenharmony_ciproportional to, or a weighted average of, the number of comparison passes 2430e5c31af7Sopenharmony_cior failures. 2431e5c31af7Sopenharmony_ci 2432e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 2433e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT specifies that an image can: 2434e5c31af7Sopenharmony_ci be used as a source image for <<copies, copy commands>>. 2435e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT specifies that an image can: 2436e5c31af7Sopenharmony_ci be used as a destination image for <<copies, copy commands>> and 2437e5c31af7Sopenharmony_ci <<clears, clear commands>>. 2438e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance1[] 2439e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[] 2440e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT specifies 2441e5c31af7Sopenharmony_ci sname:VkImage can: be used as a sampled image with a min or max 2442e5c31af7Sopenharmony_ci elink:VkSamplerReductionMode. 2443e5c31af7Sopenharmony_ci This bit must: only be exposed for formats that also support the 2444e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT. 2445e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[] 2446e5c31af7Sopenharmony_ciifdef::VK_IMG_filter_cubic,VK_EXT_filter_cubic[] 2447e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT specifies that 2448e5c31af7Sopenharmony_ci sname:VkImage can: be used with a sampler that has either of 2449e5c31af7Sopenharmony_ci pname:magFilter or pname:minFilter set to ename:VK_FILTER_CUBIC_EXT, or 2450e5c31af7Sopenharmony_ci be the source image for a blit with pname:filter set to 2451e5c31af7Sopenharmony_ci ename:VK_FILTER_CUBIC_EXT. 2452e5c31af7Sopenharmony_ci This bit must: only be exposed for formats that also support the 2453e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT. 2454e5c31af7Sopenharmony_ci If the format being queried is a depth/stencil format, this only 2455e5c31af7Sopenharmony_ci specifies that the depth aspect is cubic filterable. 2456e5c31af7Sopenharmony_ciendif::VK_IMG_filter_cubic,VK_EXT_filter_cubic[] 2457e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 2458e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT specifies that an 2459e5c31af7Sopenharmony_ci application can: define a <<samplers-YCbCr-conversion,sampler {YCbCr} 2460e5c31af7Sopenharmony_ci conversion>> using this format as a source, and that an image of this 2461e5c31af7Sopenharmony_ci format can: be used with a slink:VkSamplerYcbcrConversionCreateInfo 2462e5c31af7Sopenharmony_ci pname:xChromaOffset and/or pname:yChromaOffset of 2463e5c31af7Sopenharmony_ci ename:VK_CHROMA_LOCATION_MIDPOINT. 2464e5c31af7Sopenharmony_ci Otherwise both pname:xChromaOffset and pname:yChromaOffset must: be 2465e5c31af7Sopenharmony_ci ename:VK_CHROMA_LOCATION_COSITED_EVEN. 2466e5c31af7Sopenharmony_ci If a format does not incorporate chroma downsampling (it is not a 2467e5c31af7Sopenharmony_ci "`422`" or "`420`" format) but the implementation supports sampler 2468e5c31af7Sopenharmony_ci {YCbCr} conversion for this format, the implementation must: set 2469e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT. 2470e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT specifies that an 2471e5c31af7Sopenharmony_ci application can: define a <<samplers-YCbCr-conversion,sampler {YCbCr} 2472e5c31af7Sopenharmony_ci conversion>> using this format as a source, and that an image of this 2473e5c31af7Sopenharmony_ci format can: be used with a slink:VkSamplerYcbcrConversionCreateInfo 2474e5c31af7Sopenharmony_ci pname:xChromaOffset and/or pname:yChromaOffset of 2475e5c31af7Sopenharmony_ci ename:VK_CHROMA_LOCATION_COSITED_EVEN. 2476e5c31af7Sopenharmony_ci Otherwise both pname:xChromaOffset and pname:yChromaOffset must: be 2477e5c31af7Sopenharmony_ci ename:VK_CHROMA_LOCATION_MIDPOINT. 2478e5c31af7Sopenharmony_ci If neither ename:VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT nor 2479e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT is set, the 2480e5c31af7Sopenharmony_ci application must: not define a <<samplers-YCbCr-conversion,sampler 2481e5c31af7Sopenharmony_ci {YCbCr} conversion>> using this format as a source. 2482e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT 2483e5c31af7Sopenharmony_ci specifies that an application can: define a 2484e5c31af7Sopenharmony_ci <<samplers-YCbCr-conversion,sampler {YCbCr} conversion>> using this 2485e5c31af7Sopenharmony_ci format as a source with pname:chromaFilter set to 2486e5c31af7Sopenharmony_ci ename:VK_FILTER_LINEAR. 2487e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT 2488e5c31af7Sopenharmony_ci specifies that the format can have different chroma, min, and mag 2489e5c31af7Sopenharmony_ci filters. 2490e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT 2491e5c31af7Sopenharmony_ci specifies that reconstruction is explicit, as described in 2492e5c31af7Sopenharmony_ci <<textures-chroma-reconstruction>>. 2493e5c31af7Sopenharmony_ci If this bit is not present, reconstruction is implicit by default. 2494e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT 2495e5c31af7Sopenharmony_ci specifies that reconstruction can: be forcibly made explicit by setting 2496e5c31af7Sopenharmony_ci slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction 2497e5c31af7Sopenharmony_ci to ename:VK_TRUE. 2498e5c31af7Sopenharmony_ci If the format being queried supports 2499e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT 2500e5c31af7Sopenharmony_ci it must: also support 2501e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT. 2502e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_DISJOINT_BIT specifies that a multi-planar 2503e5c31af7Sopenharmony_ci image can: have the ename:VK_IMAGE_CREATE_DISJOINT_BIT set during image 2504e5c31af7Sopenharmony_ci creation. 2505e5c31af7Sopenharmony_ci An implementation must: not set ename:VK_FORMAT_FEATURE_2_DISJOINT_BIT 2506e5c31af7Sopenharmony_ci for _single-plane formats_. 2507e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 2508e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[] 2509e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT specifies that an 2510e5c31af7Sopenharmony_ci image view can: be used as a 2511e5c31af7Sopenharmony_ci <<renderpass-fragmentdensitymapattachment,fragment density map 2512e5c31af7Sopenharmony_ci attachment>>. 2513e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[] 2514e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 2515e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR 2516e5c31af7Sopenharmony_ci specifies that an image view can: be used as a 2517e5c31af7Sopenharmony_ci <<primsrast-fragment-shading-rate-attachment, fragment shading rate 2518e5c31af7Sopenharmony_ci attachment>>. 2519e5c31af7Sopenharmony_ci An implementation must: not set this feature for formats with a 2520e5c31af7Sopenharmony_ci <<formats-numericformat, numeric format>> other than etext:UINT, or set 2521e5c31af7Sopenharmony_ci it as a buffer feature. 2522e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 2523e5c31af7Sopenharmony_ciifdef::VK_KHR_video_decode_queue[] 2524e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR specifies that an 2525e5c31af7Sopenharmony_ci image view with this format can: be used as a <<decode-output-picture, 2526e5c31af7Sopenharmony_ci decode output picture>> in <<video-decode-operations, video decode 2527e5c31af7Sopenharmony_ci operations>>. 2528e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR specifies that an 2529e5c31af7Sopenharmony_ci image view with this format can: be used as an output 2530e5c31af7Sopenharmony_ci <<reconstructed-picture, reconstructed picture>> or an input 2531e5c31af7Sopenharmony_ci <<reference-picture,reference picture>> in 2532e5c31af7Sopenharmony_ci <<video-decode-operations,video decode operations>>. 2533e5c31af7Sopenharmony_ciendif::VK_KHR_video_decode_queue[] 2534e5c31af7Sopenharmony_ciifdef::VK_KHR_video_encode_queue[] 2535e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR specifies that an 2536e5c31af7Sopenharmony_ci image view with this format can: be used as an <<encode-input-picture, 2537e5c31af7Sopenharmony_ci encode input picture>> in <<video-encode-operations,video encode 2538e5c31af7Sopenharmony_ci operations>>. 2539e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR specifies that an 2540e5c31af7Sopenharmony_ci image view with this format can: be used as an output 2541e5c31af7Sopenharmony_ci <<reconstructed-picture, reconstructed picture>> or an input 2542e5c31af7Sopenharmony_ci <<reference-picture,reference picture>> in 2543e5c31af7Sopenharmony_ci <<video-encode-operations,video encode operations>>. 2544e5c31af7Sopenharmony_ciendif::VK_KHR_video_encode_queue[] 2545e5c31af7Sopenharmony_ciifdef::VK_KHR_video_decode_queue,VK_KHR_video_encode_queue[] 2546e5c31af7Sopenharmony_ci+ 2547e5c31af7Sopenharmony_ci[NOTE] 2548e5c31af7Sopenharmony_ci.Note 2549e5c31af7Sopenharmony_ci==== 2550e5c31af7Sopenharmony_ciSpecific <<video-profiles,video profiles>> may: have additional restrictions 2551e5c31af7Sopenharmony_cion the format and other image creation parameters corresponding to image 2552e5c31af7Sopenharmony_civiews used by video coding operations that can: be enumerated using the 2553e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceVideoFormatPropertiesKHR command. 2554e5c31af7Sopenharmony_ci==== 2555e5c31af7Sopenharmony_ciendif::VK_KHR_video_decode_queue,VK_KHR_video_encode_queue[] 2556e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT specifies that 2557e5c31af7Sopenharmony_ci image views or buffer views created with this format can: be used as 2558e5c31af7Sopenharmony_ci <<descriptorsets-storageimage, storage images>> or 2559e5c31af7Sopenharmony_ci <<descriptorsets-storagetexelbuffer, storage texel buffers>> 2560e5c31af7Sopenharmony_ci respectively for read operations without specifying a format. 2561e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT specifies 2562e5c31af7Sopenharmony_ci that image views or buffer views created with this format can: be used 2563e5c31af7Sopenharmony_ci as <<descriptorsets-storageimage, storage images>> or 2564e5c31af7Sopenharmony_ci <<descriptorsets-storagetexelbuffer, storage texel buffers>> 2565e5c31af7Sopenharmony_ci respectively for write operations without specifying a format. 2566e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT specifies 2567e5c31af7Sopenharmony_ci that image views created with this format can: be used for depth 2568e5c31af7Sopenharmony_ci comparison performed by code:OpImage*Dref* instructions. 2569e5c31af7Sopenharmony_ciifdef::VK_NV_linear_color_attachment[] 2570e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV specifies that 2571e5c31af7Sopenharmony_ci the format is supported as a renderable 2572e5c31af7Sopenharmony_ci <<glossary-linear-color-attachment, Linear Color Attachment>>. 2573e5c31af7Sopenharmony_ci This bit will be set for renderable color formats in the 2574e5c31af7Sopenharmony_ci pname:linearTilingFeatures. 2575e5c31af7Sopenharmony_ci This must: not be set in the pname:optimalTilingFeatures or 2576e5c31af7Sopenharmony_ci pname:bufferFeatures members. 2577e5c31af7Sopenharmony_ciendif::VK_NV_linear_color_attachment[] 2578e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing[] 2579e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM specifies that image 2580e5c31af7Sopenharmony_ci views created with this format can: be used as the 2581e5c31af7Sopenharmony_ci <<descriptorsets-weightimage, weight image>> input to 2582e5c31af7Sopenharmony_ci <<textures-weightimage,weight image sampling>> operations. 2583e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM specifies that 2584e5c31af7Sopenharmony_ci image views created with this format can: be sampled in 2585e5c31af7Sopenharmony_ci <<textures-weightimage,weight image sampling>> operations. 2586e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM specifies that image 2587e5c31af7Sopenharmony_ci views created with this format can: be used in 2588e5c31af7Sopenharmony_ci <<textures-blockmatch,block matching>> operations. 2589e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM specifies that 2590e5c31af7Sopenharmony_ci image views created with this format can: be sampled in 2591e5c31af7Sopenharmony_ci <<textures-boxfilter,box filter sampling>> operations. 2592e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing[] 2593e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[] 2594e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT specifies that an 2595e5c31af7Sopenharmony_ci image can: be created with ename:VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT. 2596e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[] 2597e5c31af7Sopenharmony_ci 2598e5c31af7Sopenharmony_ciThe following bits may: be set in pname:bufferFeatures, specifying that the 2599e5c31af7Sopenharmony_cifeatures are supported by <<VkBuffer,buffers>> or <<VkBufferView,buffer 2600e5c31af7Sopenharmony_civiews>> created with the queried 2601e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties2::pname:format: 2602e5c31af7Sopenharmony_ci 2603e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT specifies that the 2604e5c31af7Sopenharmony_ci format can: be used to create a buffer view that can: be bound to a 2605e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER descriptor. 2606e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT specifies that the 2607e5c31af7Sopenharmony_ci format can: be used to create a buffer view that can: be bound to a 2608e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor. 2609e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT specifies that 2610e5c31af7Sopenharmony_ci atomic operations are supported on 2611e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER with this format. 2612e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT specifies that the format 2613e5c31af7Sopenharmony_ci can: be used as a vertex attribute format 2614e5c31af7Sopenharmony_ci (sname:VkVertexInputAttributeDescription::pname:format). 2615e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 2616e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR 2617e5c31af7Sopenharmony_ci specifies that the format can: be used as the vertex format when 2618e5c31af7Sopenharmony_ci creating an <<acceleration-structure,acceleration structure>> 2619e5c31af7Sopenharmony_ci (sname:VkAccelerationStructureGeometryTrianglesDataKHR::pname:vertexFormat). 2620e5c31af7Sopenharmony_ci This format can: also be used as the vertex format in host memory when 2621e5c31af7Sopenharmony_ci doing <<host-acceleration-structure, host acceleration structure>> 2622e5c31af7Sopenharmony_ci builds. 2623e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 2624e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2625e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT specifies that 2626e5c31af7Sopenharmony_ci buffer views created with this format can: be used as 2627e5c31af7Sopenharmony_ci <<descriptorsets-storagetexelbuffer, storage texel buffers>> for read 2628e5c31af7Sopenharmony_ci operations without specifying a format. 2629e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT specifies 2630e5c31af7Sopenharmony_ci that buffer views created with this format can: be used as 2631e5c31af7Sopenharmony_ci <<descriptorsets-storagetexelbuffer, storage texel buffers>> for write 2632e5c31af7Sopenharmony_ci operations without specifying a format. 2633e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2634e5c31af7Sopenharmony_ciifdef::VK_NV_optical_flow[] 2635e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV specifies that an 2636e5c31af7Sopenharmony_ci image view with this format can: be used as an input or reference to 2637e5c31af7Sopenharmony_ci <<opticalflow-operations,optical flow operations>> 2638e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV specifies that an 2639e5c31af7Sopenharmony_ci image view with this format can: be used as a flow vector map (either as 2640e5c31af7Sopenharmony_ci hint, output or global flow) for <<opticalflow-operations,optical flow 2641e5c31af7Sopenharmony_ci operations>> 2642e5c31af7Sopenharmony_ci * ename:VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV specifies that an 2643e5c31af7Sopenharmony_ci image view with this format can: be used as an output cost map for 2644e5c31af7Sopenharmony_ci <<opticalflow-operations,optical flow operations>> 2645e5c31af7Sopenharmony_ciendif::VK_NV_optical_flow[] 2646e5c31af7Sopenharmony_ci-- 2647e5c31af7Sopenharmony_ci 2648e5c31af7Sopenharmony_ci[open,refpage='VkFormatFeatureFlags2',desc='Bitmask of VkFormatFeatureFlagBits2',type='flags',alias='VkFormatFeatureFlags2KHR'] 2649e5c31af7Sopenharmony_ci-- 2650e5c31af7Sopenharmony_ciinclude::{generated}/api/flags/VkFormatFeatureFlags2.adoc[] 2651e5c31af7Sopenharmony_ci 2652e5c31af7Sopenharmony_ciifdef::VK_KHR_format_feature_flags2[] 2653e5c31af7Sopenharmony_cior the equivalent 2654e5c31af7Sopenharmony_ci 2655e5c31af7Sopenharmony_ciinclude::{generated}/api/flags/VkFormatFeatureFlags2KHR.adoc[] 2656e5c31af7Sopenharmony_ciendif::VK_KHR_format_feature_flags2[] 2657e5c31af7Sopenharmony_ci 2658e5c31af7Sopenharmony_citname:VkFormatFeatureFlags2 is a bitmask type for setting a mask of zero or 2659e5c31af7Sopenharmony_cimore elink:VkFormatFeatureFlagBits2. 2660e5c31af7Sopenharmony_ci-- 2661e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2662e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 2663e5c31af7Sopenharmony_ci 2664e5c31af7Sopenharmony_ciifdef::VK_EXT_multisampled_render_to_single_sampled[] 2665e5c31af7Sopenharmony_ci[open,refpage='VkSubpassResolvePerformanceQueryEXT',desc='Structure specifying the efficiency of subpass resolve for an attachment with a format',type='structs'] 2666e5c31af7Sopenharmony_ci-- 2667e5c31af7Sopenharmony_ciTo query the performance characteristics of a <<renderpass-subpass,subpass 2668e5c31af7Sopenharmony_ciresolve>> operation for an attachment with a elink:VkFormat, add a 2669e5c31af7Sopenharmony_cislink:VkSubpassResolvePerformanceQueryEXT structure to the pname:pNext chain 2670e5c31af7Sopenharmony_ciof slink:VkFormatProperties2. 2671e5c31af7Sopenharmony_ci 2672e5c31af7Sopenharmony_ciThe slink:VkSubpassResolvePerformanceQueryEXT structure is defined as: 2673e5c31af7Sopenharmony_ci 2674e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkSubpassResolvePerformanceQueryEXT.adoc[] 2675e5c31af7Sopenharmony_ci 2676e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2677e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2678e5c31af7Sopenharmony_ci structure. 2679e5c31af7Sopenharmony_ci * pname:optimal specifies that a subpass resolve operation is optimally 2680e5c31af7Sopenharmony_ci performed. 2681e5c31af7Sopenharmony_ci 2682e5c31af7Sopenharmony_ciIf pname:optimal is ename:VK_FALSE for a elink:VkFormat, using a subpass 2683e5c31af7Sopenharmony_ciresolve operation on a multisampled attachment with this format can incur 2684e5c31af7Sopenharmony_ciadditional costs, including additional memory bandwidth usage and a higher 2685e5c31af7Sopenharmony_cimemory footprint. 2686e5c31af7Sopenharmony_ciIf an attachment with such a format is used in a 2687e5c31af7Sopenharmony_ci<<subpass-multisampledrendertosinglesampled,multisampled-render-to-single-sampled>> 2688e5c31af7Sopenharmony_cisubpass, the additional memory and memory bandwidth usage can nullify the 2689e5c31af7Sopenharmony_cibenefits of using the `apiext:VK_EXT_multisampled_render_to_single_sampled` 2690e5c31af7Sopenharmony_ciextension. 2691e5c31af7Sopenharmony_ci 2692e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkSubpassResolvePerformanceQueryEXT.adoc[] 2693e5c31af7Sopenharmony_ci-- 2694e5c31af7Sopenharmony_ciendif::VK_EXT_multisampled_render_to_single_sampled[] 2695e5c31af7Sopenharmony_ci 2696e5c31af7Sopenharmony_ci 2697e5c31af7Sopenharmony_ci[[potential-format-features]] 2698e5c31af7Sopenharmony_ci=== Potential Format Features 2699e5c31af7Sopenharmony_ci 2700e5c31af7Sopenharmony_ciSome <<fundamentals-validusage,valid usage conditions>> depend on the format 2701e5c31af7Sopenharmony_cifeatures supported by a slink:VkImage whose elink:VkImageTiling is unknown. 2702e5c31af7Sopenharmony_ciIn such cases the exact elink:VkFormatFeatureFlagBits supported by the 2703e5c31af7Sopenharmony_cislink:VkImage cannot be determined, so the valid usage conditions are 2704e5c31af7Sopenharmony_ciexpressed in terms of the _potential format features_ of the slink:VkImage 2705e5c31af7Sopenharmony_ciformat. 2706e5c31af7Sopenharmony_ci 2707e5c31af7Sopenharmony_ciThe _potential format features_ of a elink:VkFormat are defined as follows: 2708e5c31af7Sopenharmony_ci 2709e5c31af7Sopenharmony_ci * The union of elink:VkFormatFeatureFlagBits 2710e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2711e5c31af7Sopenharmony_ci and elink:VkFormatFeatureFlagBits2, 2712e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2713e5c31af7Sopenharmony_ci supported when the elink:VkImageTiling is ename:VK_IMAGE_TILING_OPTIMAL 2714e5c31af7Sopenharmony_ciifdef::VK_EXT_image_drm_format_modifier[] 2715e5c31af7Sopenharmony_ci , ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, 2716e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[] 2717e5c31af7Sopenharmony_ci or ename:VK_IMAGE_TILING_LINEAR 2718e5c31af7Sopenharmony_ciifdef::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[] 2719e5c31af7Sopenharmony_ci if elink:VkFormat is not ename:VK_FORMAT_UNDEFINED 2720e5c31af7Sopenharmony_ciendif::VK_ANDROID_external_memory_android_hardware_buffer,VK_QNX_external_memory_screen_buffer[] 2721e5c31af7Sopenharmony_ciifdef::VK_ANDROID_external_memory_android_hardware_buffer[] 2722e5c31af7Sopenharmony_ci * slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures 2723e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2724e5c31af7Sopenharmony_ci and 2725e5c31af7Sopenharmony_ci slink:VkAndroidHardwareBufferFormatProperties2ANDROID::pname:formatFeatures 2726e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 2727e5c31af7Sopenharmony_ci of a valid external format if elink:VkFormat is 2728e5c31af7Sopenharmony_ci ename:VK_FORMAT_UNDEFINED 2729e5c31af7Sopenharmony_ciendif::VK_ANDROID_external_memory_android_hardware_buffer[] 2730e5c31af7Sopenharmony_ciifdef::VK_QNX_external_memory_screen_buffer[] 2731e5c31af7Sopenharmony_ci * slink:VkScreenBufferFormatPropertiesQNX::pname:formatFeatures of a valid 2732e5c31af7Sopenharmony_ci external format if elink:VkFormat is ename:VK_FORMAT_UNDEFINED 2733e5c31af7Sopenharmony_ciendif::VK_QNX_external_memory_screen_buffer[] 2734e5c31af7Sopenharmony_ci 2735e5c31af7Sopenharmony_ci 2736e5c31af7Sopenharmony_ci[[features-required-format-support]] 2737e5c31af7Sopenharmony_ci== Required Format Support 2738e5c31af7Sopenharmony_ci 2739e5c31af7Sopenharmony_ci// Jon 1.3 TBD - add any appropriate required formats for 1.3 2740e5c31af7Sopenharmony_ci 2741e5c31af7Sopenharmony_ciImplementations must: support at least the following set of features on the 2742e5c31af7Sopenharmony_cilisted formats. 2743e5c31af7Sopenharmony_ciFor images, these features must: be supported for every elink:VkImageType 2744e5c31af7Sopenharmony_ci(including arrayed and cube variants) unless otherwise noted. 2745e5c31af7Sopenharmony_ciThese features are supported on existing formats without needing to 2746e5c31af7Sopenharmony_ciadvertise an extension or needing to explicitly enable them. 2747e5c31af7Sopenharmony_ciSupport for additional functionality beyond the requirements listed here is 2748e5c31af7Sopenharmony_ciqueried using the flink:vkGetPhysicalDeviceFormatProperties command. 2749e5c31af7Sopenharmony_ci 2750e5c31af7Sopenharmony_ci[NOTE] 2751e5c31af7Sopenharmony_ci.Note 2752e5c31af7Sopenharmony_ci==== 2753e5c31af7Sopenharmony_ciUnless otherwise excluded below, the required formats are supported for all 2754e5c31af7Sopenharmony_citlink:VkImageCreateFlags values as long as those flag values are otherwise 2755e5c31af7Sopenharmony_ciallowed. 2756e5c31af7Sopenharmony_ci==== 2757e5c31af7Sopenharmony_ci 2758e5c31af7Sopenharmony_ciThe following tables show which feature bits must: be supported for each 2759e5c31af7Sopenharmony_ciformat. 2760e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 2761e5c31af7Sopenharmony_ciFormats that are required to support 2762e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT must: also support 2763e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT and 2764e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT. 2765e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance1[] 2766e5c31af7Sopenharmony_ci 2767e5c31af7Sopenharmony_ci.Key for format feature tables 2768e5c31af7Sopenharmony_ci[width="70%",cols="1,10"] 2769e5c31af7Sopenharmony_ci|==== 2770e5c31af7Sopenharmony_ci^|{sym1} | This feature must: be supported on the named format 2771e5c31af7Sopenharmony_ci^|{sym2} | This feature must: be supported on at least some 2772e5c31af7Sopenharmony_ciof the named formats, with more information in the table 2773e5c31af7Sopenharmony_ciwhere the symbol appears 2774e5c31af7Sopenharmony_ci^|{sym3} | This feature must: be supported with some caveats or 2775e5c31af7Sopenharmony_cipreconditions, with more information in the table where the symbol appears 2776e5c31af7Sopenharmony_ci|==== 2777e5c31af7Sopenharmony_ci 2778e5c31af7Sopenharmony_ci.Feature bits in pname:optimalTilingFeatures 2779e5c31af7Sopenharmony_ci[width="70%"] 2780e5c31af7Sopenharmony_ci|==== 2781e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] 2782e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT 2783e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT 2784e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance1[] 2785e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT 2786e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT 2787e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT 2788e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT 2789e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT 2790e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT 2791e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_BLIT_DST_BIT 2792e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT 2793e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT 2794e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[] 2795e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT 2796e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[] 2797e5c31af7Sopenharmony_ci|==== 2798e5c31af7Sopenharmony_ci 2799e5c31af7Sopenharmony_ci.Feature bits in pname:bufferFeatures 2800e5c31af7Sopenharmony_ci[width="70%"] 2801e5c31af7Sopenharmony_ci|==== 2802e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT 2803e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT 2804e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT 2805e5c31af7Sopenharmony_ci|ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT 2806e5c31af7Sopenharmony_ci|==== 2807e5c31af7Sopenharmony_ci 2808e5c31af7Sopenharmony_ci<<< 2809e5c31af7Sopenharmony_ci 2810e5c31af7Sopenharmony_ci[[formats-mandatory-features-subbyte]] 2811e5c31af7Sopenharmony_ci.Mandatory format support: sub-byte components 2812e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 2813e5c31af7Sopenharmony_ci|==== 2814e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 2815e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 2816e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 2817e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 2818e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 2819e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 2820e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 2821e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 2822e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 2823e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 2824e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 2825e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 2826e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 2827e5c31af7Sopenharmony_cis| Format 2828e5c31af7Sopenharmony_ci| ename:VK_FORMAT_UNDEFINED | | | | | | | | | | | | | 2829e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R4G4_UNORM_PACK8 | | | | | | | | | | | | | 2830e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R4G4B4A4_UNORM_PACK16 | | | | | | | | | | | | | 2831e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B4G4R4A4_UNORM_PACK16 | {sym1} | {sym1} | {sym1} | | | | | | | | | | 2832e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R5G6B5_UNORM_PACK16 | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | | | | | 2833e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B5G6R5_UNORM_PACK16 | | | | | | | | | | | | | 2834e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R5G5B5A1_UNORM_PACK16 | | | | | | | | | | | | | 2835e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 | | | | | | | | | | | | | 2836e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A1R5G5B5_UNORM_PACK16 | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | | | | | 2837e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 2838e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR | | | | | | | | | | | | | 2839e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 2840e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_4444_formats[] 2841e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A4R4G4B4_UNORM_PACK16 | {sym2} | {sym2} | {sym2} | | | | | | | | | | 2842e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A4B4G4R4_UNORM_PACK16 | {sym3} | {sym3} | {sym3} | | | | | | | | | | 2843e5c31af7Sopenharmony_ci// Jon 1.3 TBD - define interaction with 1.3 core here 2844e5c31af7Sopenharmony_ci14+| Format features marked {sym2} must: be supported for 2845e5c31af7Sopenharmony_cipname:optimalTilingFeatures if the sname:VkPhysicalDevice supports the 2846e5c31af7Sopenharmony_cislink:VkPhysicalDevice4444FormatsFeaturesEXT::pname:formatA4R4G4B4 feature. 2847e5c31af7Sopenharmony_ci14+| Format features marked {sym3} must: be supported for 2848e5c31af7Sopenharmony_cipname:optimalTilingFeatures if the sname:VkPhysicalDevice supports the 2849e5c31af7Sopenharmony_cislink:VkPhysicalDevice4444FormatsFeaturesEXT::pname:formatA4B4G4R4 feature. 2850e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_4444_formats[] 2851e5c31af7Sopenharmony_ci|==== 2852e5c31af7Sopenharmony_ci 2853e5c31af7Sopenharmony_ci<<< 2854e5c31af7Sopenharmony_ci 2855e5c31af7Sopenharmony_ci[[formats-mandatory-features-2byte]] 2856e5c31af7Sopenharmony_ci.Mandatory format support: 1-3 byte-sized components 2857e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 2858e5c31af7Sopenharmony_ci|==== 2859e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 2860e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 2861e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 2862e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 2863e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 2864e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 2865e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 2866e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 2867e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 2868e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 2869e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 2870e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 2871e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 2872e5c31af7Sopenharmony_cis| Format 2873e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8_UNORM | {sym1} | {sym1} | {sym1} | {sym3} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | | 2874e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8_SNORM | {sym1} | {sym1} | {sym1} | {sym3} | | | | | | {sym1} | {sym1} | | 2875e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8_USCALED | | | | | | | | | | | | | 2876e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8_SSCALED | | | | | | | | | | | | | 2877e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8_UINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | | 2878e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8_SINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | | 2879e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8_SRGB | | | | | | | | | | | | | 2880e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8_UNORM | {sym1} | {sym1} | {sym1} | {sym3} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | | 2881e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8_SNORM | {sym1} | {sym1} | {sym1} | {sym3} | | | | | | {sym1} | {sym1} | | 2882e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8_USCALED | | | | | | | | | | | | | 2883e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8_SSCALED | | | | | | | | | | | | | 2884e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8_UINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | | 2885e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8_SINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | | 2886e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8_SRGB | | | | | | | | | | | | | 2887e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8_UNORM | | | | | | | | | | | | | 2888e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8_SNORM | | | | | | | | | | | | | 2889e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8_USCALED | | | | | | | | | | | | | 2890e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8_SSCALED | | | | | | | | | | | | | 2891e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8_UINT | | | | | | | | | | | | | 2892e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8_SINT | | | | | | | | | | | | | 2893e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8_SRGB | | | | | | | | | | | | | 2894e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8_UNORM | | | | | | | | | | | | | 2895e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8_SNORM | | | | | | | | | | | | | 2896e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8_USCALED | | | | | | | | | | | | | 2897e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8_SSCALED | | | | | | | | | | | | | 2898e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8_UINT | | | | | | | | | | | | | 2899e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8_SINT | | | | | | | | | | | | | 2900e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8_SRGB | | | | | | | | | | | | | 2901e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 2902e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A8_UNORM_KHR | | | | | | | | | | | | | 2903e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 2904e5c31af7Sopenharmony_ci14+| Format features marked with {sym3} must: be supported for 2905e5c31af7Sopenharmony_cipname:optimalTilingFeatures if the sname:VkPhysicalDevice supports the 2906e5c31af7Sopenharmony_ci<<features-shaderStorageImageExtendedFormats, 2907e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats>> feature. 2908e5c31af7Sopenharmony_ci|==== 2909e5c31af7Sopenharmony_ci 2910e5c31af7Sopenharmony_ci<<< 2911e5c31af7Sopenharmony_ci 2912e5c31af7Sopenharmony_ci[[formats-mandatory-features-4byte]] 2913e5c31af7Sopenharmony_ci.Mandatory format support: 4 byte-sized components 2914e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 2915e5c31af7Sopenharmony_ci|==== 2916e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 2917e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 2918e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 2919e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 2920e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 2921e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 2922e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 2923e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 2924e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 2925e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 2926e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 2927e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 2928e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 2929e5c31af7Sopenharmony_cis| Format 2930e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8A8_UNORM | {sym1} | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | 2931e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8A8_SNORM | {sym1} | {sym1} | {sym1} | {sym1} | | | | | | {sym1} | {sym1} | {sym1} | 2932e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8A8_USCALED | | | | | | | | | | | | | 2933e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8A8_SSCALED | | | | | | | | | | | | | 2934e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8A8_UINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 2935e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8A8_SINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 2936e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R8G8B8A8_SRGB | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | | | | | 2937e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8A8_UNORM | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | | 2938e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8A8_SNORM | | | | | | | | | | | | | 2939e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8A8_USCALED | | | | | | | | | | | | | 2940e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8A8_SSCALED | | | | | | | | | | | | | 2941e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8A8_UINT | | | | | | | | | | | | | 2942e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8A8_SINT | | | | | | | | | | | | | 2943e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8A8_SRGB | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | | | | | 2944e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A8B8G8R8_UNORM_PACK32 | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | 2945e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A8B8G8R8_SNORM_PACK32 | {sym1} | {sym1} | {sym1} | | | | | | | {sym1} | {sym1} | {sym1} | 2946e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A8B8G8R8_USCALED_PACK32 | | | | | | | | | | | | | 2947e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A8B8G8R8_SSCALED_PACK32 | | | | | | | | | | | | | 2948e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A8B8G8R8_UINT_PACK32 | {sym1} | {sym1} | | | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 2949e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A8B8G8R8_SINT_PACK32 | {sym1} | {sym1} | | | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 2950e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A8B8G8R8_SRGB_PACK32 | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | | | | | 2951e5c31af7Sopenharmony_ci|==== 2952e5c31af7Sopenharmony_ci 2953e5c31af7Sopenharmony_ci<<< 2954e5c31af7Sopenharmony_ci 2955e5c31af7Sopenharmony_ci[[formats-mandatory-features-10bit]] 2956e5c31af7Sopenharmony_ci.Mandatory format support: 10- and 12-bit components 2957e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 2958e5c31af7Sopenharmony_ci|==== 2959e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 2960e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 2961e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 2962e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 2963e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 2964e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 2965e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 2966e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 2967e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 2968e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 2969e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 2970e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 2971e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 2972e5c31af7Sopenharmony_cis| Format 2973e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2R10G10B10_UNORM_PACK32 | | | | | | | | | | | | | 2974e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2R10G10B10_SNORM_PACK32 | | | | | | | | | | | | | 2975e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2R10G10B10_USCALED_PACK32 | | | | | | | | | | | | | 2976e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2R10G10B10_SSCALED_PACK32 | | | | | | | | | | | | | 2977e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2R10G10B10_UINT_PACK32 | | | | | | | | | | | | | 2978e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2R10G10B10_SINT_PACK32 | | | | | | | | | | | | | 2979e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2B10G10R10_UNORM_PACK32 | {sym1} | {sym1} | {sym1} | {sym3} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | | 2980e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2B10G10R10_SNORM_PACK32 | | | | | | | | | | | | | 2981e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2B10G10R10_USCALED_PACK32 | | | | | | | | | | | | | 2982e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2B10G10R10_SSCALED_PACK32 | | | | | | | | | | | | | 2983e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2B10G10R10_UINT_PACK32 | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | | {sym1} | | 2984e5c31af7Sopenharmony_ci| ename:VK_FORMAT_A2B10G10R10_SINT_PACK32 | | | | | | | | | | | | | 2985e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 2986e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R10X6_UNORM_PACK16 | | | | | | | | | | | | | 2987e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R10X6G10X6_UNORM_2PACK16 | | | | | | | | | | | | | 2988e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R12X4_UNORM_PACK16 | | | | | | | | | | | | | 2989e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R12X4G12X4_UNORM_2PACK16 | | | | | | | | | | | | | 2990e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 2991e5c31af7Sopenharmony_ci14+| Format features marked with {sym3} must: be supported for 2992e5c31af7Sopenharmony_cipname:optimalTilingFeatures if the sname:VkPhysicalDevice supports the 2993e5c31af7Sopenharmony_ci<<features-shaderStorageImageExtendedFormats, 2994e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats>> feature. 2995e5c31af7Sopenharmony_ci|==== 2996e5c31af7Sopenharmony_ci 2997e5c31af7Sopenharmony_ci<<< 2998e5c31af7Sopenharmony_ci 2999e5c31af7Sopenharmony_ci[[formats-mandatory-features-16bit]] 3000e5c31af7Sopenharmony_ci.Mandatory format support: 16-bit components 3001e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 3002e5c31af7Sopenharmony_ci|==== 3003e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 3004e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 3005e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 3006e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 3007e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 3008e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 3009e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 3010e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 3011e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 3012e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 3013e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 3014e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 3015e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 3016e5c31af7Sopenharmony_cis| Format 3017e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16_UNORM | | | | {sym3} | | | | | | {sym1} | | | 3018e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16_SNORM | | | | {sym3} | | | | | | {sym1} | | | 3019e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16_USCALED | | | | | | | | | | | | | 3020e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16_SSCALED | | | | | | | | | | | | | 3021e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16_UINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | | 3022e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16_SINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | | 3023e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym3} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | | 3024e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16_UNORM | | | | {sym3} | | | | | | {sym1} | | | 3025e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16_SNORM | | | | {sym3} | | | | | | {sym1} | | | 3026e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16_USCALED | | | | | | | | | | | | | 3027e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16_SSCALED | | | | | | | | | | | | | 3028e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16_UINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | | 3029e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16_SINT | {sym1} | {sym1} | | {sym3} | | {sym1} | {sym1} | | | {sym1} | {sym1} | | 3030e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym3} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | | 3031e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16_UNORM | | | | | | | | | | | | | 3032e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16_SNORM | | | | | | | | | | | | | 3033e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16_USCALED | | | | | | | | | | | | | 3034e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16_SSCALED | | | | | | | | | | | | | 3035e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16_UINT | | | | | | | | | | | | | 3036e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16_SINT | | | | | | | | | | | | | 3037e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16_SFLOAT | | | | | | | | | | | | | 3038e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16A16_UNORM | | | | {sym3} | | | | | | {sym1} | | | 3039e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16A16_SNORM | | | | {sym3} | | | | | | {sym1} | | | 3040e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16A16_USCALED | | | | | | | | | | | | | 3041e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16A16_SSCALED | | | | | | | | | | | | | 3042e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16A16_UINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3043e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16A16_SINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3044e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R16G16B16A16_SFLOAT | {sym1} | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | 3045e5c31af7Sopenharmony_ci14+| Format features marked with {sym3} must: be supported for 3046e5c31af7Sopenharmony_cipname:optimalTilingFeatures if the sname:VkPhysicalDevice supports the 3047e5c31af7Sopenharmony_ci<<features-shaderStorageImageExtendedFormats, 3048e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats>> feature. 3049e5c31af7Sopenharmony_ci|==== 3050e5c31af7Sopenharmony_ci 3051e5c31af7Sopenharmony_ci<<< 3052e5c31af7Sopenharmony_ci 3053e5c31af7Sopenharmony_ci[[formats-mandatory-features-32bit]] 3054e5c31af7Sopenharmony_ci.Mandatory format support: 32-bit components 3055e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 3056e5c31af7Sopenharmony_ci|==== 3057e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 3058e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 3059e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 3060e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 3061e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 3062e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 3063e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 3064e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 3065e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 3066e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 3067e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 3068e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 3069e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 3070e5c31af7Sopenharmony_cis| Format 3071e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32_UINT | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | {sym1} 3072e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32_SINT | {sym1} | {sym1} | | {sym1} | {sym1} | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | {sym1} 3073e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32_SFLOAT | {sym1} | {sym1} | | {sym1} 3074e5c31af7Sopenharmony_ci| 3075e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[{sym2}] 3076e5c31af7Sopenharmony_ci | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3077e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32_UINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3078e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32_SINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3079e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32_SFLOAT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3080e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32B32_UINT | | | | | | | | | | {sym1} | | | 3081e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32B32_SINT | | | | | | | | | | {sym1} | | | 3082e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32B32_SFLOAT | | | | | | | | | | {sym1} | | | 3083e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32B32A32_UINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3084e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32B32A32_SINT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3085e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R32G32B32A32_SFLOAT | {sym1} | {sym1} | | {sym1} | | {sym1} | {sym1} | | | {sym1} | {sym1} | {sym1} | 3086e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[] 3087e5c31af7Sopenharmony_ci14+| Format features marked with {sym2} must: be supported for 3088e5c31af7Sopenharmony_cipname:optimalTilingFeatures if the sname:VkPhysicalDevice supports 3089e5c31af7Sopenharmony_cithe <<features-shaderImageFloat32Atomics, pname:shaderImageFloat32Atomics>> 3090e5c31af7Sopenharmony_cior the <<features-shaderImageFloat32AtomicAdd, pname:shaderImageFloat32AtomicAdd>> 3091e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[] 3092e5c31af7Sopenharmony_cior the <<features-shaderImageFloat32AtomicMinMax, pname:shaderImageFloat32AtomicMinMax>> 3093e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[] 3094e5c31af7Sopenharmony_cifeature. 3095e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[] 3096e5c31af7Sopenharmony_ci|==== 3097e5c31af7Sopenharmony_ci 3098e5c31af7Sopenharmony_ci<<< 3099e5c31af7Sopenharmony_ci 3100e5c31af7Sopenharmony_ci[[formats-mandatory-features-64bit]] 3101e5c31af7Sopenharmony_ci.Mandatory format support: 64-bit/uneven components 3102e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 3103e5c31af7Sopenharmony_ci|==== 3104e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 3105e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 3106e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 3107e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 3108e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 3109e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 3110e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 3111e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 3112e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 3113e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 3114e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 3115e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 3116e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 3117e5c31af7Sopenharmony_cis| Format 3118e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64_UINT | | | 3119e5c31af7Sopenharmony_ci| 3120e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[{sym2}] 3121e5c31af7Sopenharmony_ci| 3122e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[{sym2}] 3123e5c31af7Sopenharmony_ci | | | | | | | | 3124e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64_SINT | | | 3125e5c31af7Sopenharmony_ci| 3126e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[{sym2}] 3127e5c31af7Sopenharmony_ci| 3128e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[{sym2}] 3129e5c31af7Sopenharmony_ci | | | | | | | | 3130e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64_SFLOAT | | | | | | | | | | | | | 3131e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64_UINT | | | | | | | | | | | | | 3132e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64_SINT | | | | | | | | | | | | | 3133e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64_SFLOAT | | | | | | | | | | | | | 3134e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64B64_UINT | | | | | | | | | | | | | 3135e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64B64_SINT | | | | | | | | | | | | | 3136e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64B64_SFLOAT | | | | | | | | | | | | | 3137e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64B64A64_UINT | | | | | | | | | | | | | 3138e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64B64A64_SINT | | | | | | | | | | | | | 3139e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R64G64B64A64_SFLOAT | | | | | | | | | | | | | 3140e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32 | {sym1} | {sym1} | {sym1} | {sym3} | | | | | | | {sym1} | | 3141e5c31af7Sopenharmony_ci| ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 | {sym1} | {sym1} | {sym1} | | | | | | | | | | 3142e5c31af7Sopenharmony_ci14+| Format features marked with {sym3} must: be supported for 3143e5c31af7Sopenharmony_cipname:optimalTilingFeatures if the sname:VkPhysicalDevice supports the 3144e5c31af7Sopenharmony_ci<<features-shaderStorageImageExtendedFormats, 3145e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats>> feature. 3146e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[] 3147e5c31af7Sopenharmony_ci14+| 3148e5c31af7Sopenharmony_ciIf the <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>> 3149e5c31af7Sopenharmony_cifeature is supported, ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT and 3150e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT must: be advertised in 3151e5c31af7Sopenharmony_cipname:optimalTilingFeatures for both ename:VK_FORMAT_R64_UINT and 3152e5c31af7Sopenharmony_ciename:VK_FORMAT_R64_SINT. 3153e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[] 3154e5c31af7Sopenharmony_ci|==== 3155e5c31af7Sopenharmony_ci 3156e5c31af7Sopenharmony_ci<<< 3157e5c31af7Sopenharmony_ci 3158e5c31af7Sopenharmony_ci[[formats-mandatory-features-depth-stencil]] 3159e5c31af7Sopenharmony_ci.Mandatory format support: depth/stencil with `VkImageType` ename:VK_IMAGE_TYPE_2D 3160e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 3161e5c31af7Sopenharmony_ci|==== 3162e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 3163e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 3164e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 3165e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 3166e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 3167e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 3168e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 3169e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 3170e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 3171e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 3172e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 3173e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 3174e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 3175e5c31af7Sopenharmony_cis| Format 3176e5c31af7Sopenharmony_ci| ename:VK_FORMAT_D16_UNORM | {sym1} | {sym1} | | | | | | | {sym1} | | | | 3177e5c31af7Sopenharmony_ci| ename:VK_FORMAT_X8_D24_UNORM_PACK32 | | | | | | | | | {sym2} | | | | 3178e5c31af7Sopenharmony_ci| ename:VK_FORMAT_D32_SFLOAT | {sym1} | {sym1} | | | | | | | {sym2} | | | | 3179e5c31af7Sopenharmony_ci| ename:VK_FORMAT_S8_UINT | | | | | | | | | | | | | 3180e5c31af7Sopenharmony_ci| ename:VK_FORMAT_D16_UNORM_S8_UINT | | | | | | | | | | | | | 3181e5c31af7Sopenharmony_ci| ename:VK_FORMAT_D24_UNORM_S8_UINT | | | | | | | | | {sym2} | | | | 3182e5c31af7Sopenharmony_ci| ename:VK_FORMAT_D32_SFLOAT_S8_UINT | | | | | | | | | {sym2} | | | | 3183e5c31af7Sopenharmony_ci14+| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT feature must: be 3184e5c31af7Sopenharmony_cisupported for at least one of ename:VK_FORMAT_X8_D24_UNORM_PACK32 and 3185e5c31af7Sopenharmony_ciename:VK_FORMAT_D32_SFLOAT, and must: be supported for at least one of 3186e5c31af7Sopenharmony_ciename:VK_FORMAT_D24_UNORM_S8_UINT and ename:VK_FORMAT_D32_SFLOAT_S8_UINT. 3187e5c31af7Sopenharmony_ci14+| pname:bufferFeatures must: not support any features for these formats 3188e5c31af7Sopenharmony_ci|==== 3189e5c31af7Sopenharmony_ci 3190e5c31af7Sopenharmony_ci<<< 3191e5c31af7Sopenharmony_ci 3192e5c31af7Sopenharmony_ci[[formats-mandatory-features-bcn]] 3193e5c31af7Sopenharmony_ci.Mandatory format support: BC compressed formats with `VkImageType` ename:VK_IMAGE_TYPE_2D and ename:VK_IMAGE_TYPE_3D 3194e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 3195e5c31af7Sopenharmony_ci|==== 3196e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 3197e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 3198e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 3199e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 3200e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 3201e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 3202e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 3203e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 3204e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 3205e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 3206e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 3207e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 3208e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 3209e5c31af7Sopenharmony_cis| Format 3210e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3211e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3212e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3213e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3214e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC2_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3215e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC2_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3216e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC3_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3217e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC3_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3218e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC4_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3219e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC4_SNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3220e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC5_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3221e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC5_SNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3222e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC6H_UFLOAT_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3223e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC6H_SFLOAT_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3224e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC7_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3225e5c31af7Sopenharmony_ci| ename:VK_FORMAT_BC7_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3226e5c31af7Sopenharmony_ci14+| The ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 3227e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 3228e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: be 3229e5c31af7Sopenharmony_cisupported in pname:optimalTilingFeatures for all the formats in at least 3230e5c31af7Sopenharmony_cione of: this table, <<formats-mandatory-features-etc>>, or 3231e5c31af7Sopenharmony_ci<<formats-mandatory-features-astc>>. 3232e5c31af7Sopenharmony_ci|==== 3233e5c31af7Sopenharmony_ci 3234e5c31af7Sopenharmony_ci<<< 3235e5c31af7Sopenharmony_ci 3236e5c31af7Sopenharmony_ci[[formats-mandatory-features-etc]] 3237e5c31af7Sopenharmony_ci.Mandatory format support: ETC2 and EAC compressed formats with `VkImageType` ename:VK_IMAGE_TYPE_2D 3238e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 3239e5c31af7Sopenharmony_ci|==== 3240e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 3241e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 3242e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 3243e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 3244e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 3245e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 3246e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 3247e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 3248e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 3249e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 3250e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 3251e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 3252e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 3253e5c31af7Sopenharmony_cis| Format 3254e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3255e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3256e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3257e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3258e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3259e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3260e5c31af7Sopenharmony_ci| ename:VK_FORMAT_EAC_R11_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3261e5c31af7Sopenharmony_ci| ename:VK_FORMAT_EAC_R11_SNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3262e5c31af7Sopenharmony_ci| ename:VK_FORMAT_EAC_R11G11_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3263e5c31af7Sopenharmony_ci| ename:VK_FORMAT_EAC_R11G11_SNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3264e5c31af7Sopenharmony_ci14+|The ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 3265e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 3266e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: be 3267e5c31af7Sopenharmony_cisupported in pname:optimalTilingFeatures for all the formats in at least 3268e5c31af7Sopenharmony_cione of: this table, <<formats-mandatory-features-bcn>>, or 3269e5c31af7Sopenharmony_ci<<formats-mandatory-features-astc>>. 3270e5c31af7Sopenharmony_ci|==== 3271e5c31af7Sopenharmony_ci 3272e5c31af7Sopenharmony_ci<<< 3273e5c31af7Sopenharmony_ci 3274e5c31af7Sopenharmony_ci[[formats-mandatory-features-astc]] 3275e5c31af7Sopenharmony_ci.Mandatory format support: ASTC LDR compressed formats with `VkImageType` ename:VK_IMAGE_TYPE_2D 3276e5c31af7Sopenharmony_ci[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 3277e5c31af7Sopenharmony_ci|==== 3278e5c31af7Sopenharmony_ci13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow} 3279e5c31af7Sopenharmony_ci12+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT .13+^.^| {downarrow} 3280e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT .12+^.^| {downarrow} 3281e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT .11+^.^| {downarrow} 3282e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT .10+^.^| {downarrow} 3283e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT .9+^.^| {downarrow} 3284e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_BLIT_DST_BIT .8+^.^| {downarrow} 3285e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT .7+^.^| {downarrow} 3286e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT .6+^.^| {downarrow} 3287e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT .5+^.^| {downarrow} 3288e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT .4+^.^| {downarrow} 3289e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT .3+^.^| {downarrow} 3290e5c31af7Sopenharmony_ci1+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .2+^.^| {downarrow} 3291e5c31af7Sopenharmony_cis| Format 3292e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3293e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3294e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3295e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3296e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3297e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3298e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3299e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3300e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3301e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3302e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3303e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3304e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3305e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3306e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3307e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3308e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3309e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3310e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3311e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3312e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3313e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3314e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3315e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3316e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3317e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3318e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3319e5c31af7Sopenharmony_ci| ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK | {sym2} | {sym2} | {sym2} | | | | | | | | | | 3320e5c31af7Sopenharmony_ci14+|The ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 3321e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 3322e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: be 3323e5c31af7Sopenharmony_cisupported in pname:optimalTilingFeatures for all the formats in at least 3324e5c31af7Sopenharmony_cione of: this table, <<formats-mandatory-features-bcn>>, or 3325e5c31af7Sopenharmony_ci<<formats-mandatory-features-etc>>. 3326e5c31af7Sopenharmony_ci|==== 3327e5c31af7Sopenharmony_ci 3328e5c31af7Sopenharmony_ciifdef::VK_IMG_filter_cubic,VK_EXT_filter_cubic[] 3329e5c31af7Sopenharmony_ciIf cubic filtering is supported, 3330e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT must: be 3331e5c31af7Sopenharmony_cisupported for the following image view types: 3332e5c31af7Sopenharmony_ci 3333e5c31af7Sopenharmony_ci * ename:VK_IMAGE_VIEW_TYPE_2D 3334e5c31af7Sopenharmony_ci * ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY 3335e5c31af7Sopenharmony_ci 3336e5c31af7Sopenharmony_cifor the following formats: 3337e5c31af7Sopenharmony_ci 3338e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R4G4_UNORM_PACK8 3339e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R4G4B4A4_UNORM_PACK16 3340e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B4G4R4A4_UNORM_PACK16 3341e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R5G6B5_UNORM_PACK16 3342e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B5G6R5_UNORM_PACK16 3343e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R5G5B5A1_UNORM_PACK16 3344e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 3345e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A1R5G5B5_UNORM_PACK16 3346e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_UNORM 3347e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_SNORM 3348e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_SRGB 3349e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_UNORM 3350e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_SNORM 3351e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_SRGB 3352e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_UNORM 3353e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_SNORM 3354e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8_SRGB 3355e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_UNORM 3356e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_SNORM 3357e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8_SRGB 3358e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_UNORM 3359e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_SNORM 3360e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_SRGB 3361e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_UNORM 3362e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_SNORM 3363e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B8G8R8A8_SRGB 3364e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_UNORM_PACK32 3365e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_SNORM_PACK32 3366e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8B8G8R8_SRGB_PACK32 3367e5c31af7Sopenharmony_ci 3368e5c31af7Sopenharmony_ciIf ETC compressed formats are supported, 3369e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT must: be 3370e5c31af7Sopenharmony_cisupported for the following image view types: 3371e5c31af7Sopenharmony_ci 3372e5c31af7Sopenharmony_ci * ename:VK_IMAGE_VIEW_TYPE_2D 3373e5c31af7Sopenharmony_ci * ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY 3374e5c31af7Sopenharmony_ci 3375e5c31af7Sopenharmony_cifor the following additional formats: 3376e5c31af7Sopenharmony_ci 3377e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK 3378e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK 3379e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK 3380e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK 3381e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK 3382e5c31af7Sopenharmony_ci * ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK 3383e5c31af7Sopenharmony_ci 3384e5c31af7Sopenharmony_ciIf cubic filtering is supported for any other formats, the following image 3385e5c31af7Sopenharmony_ciview types must: be supported for those formats: 3386e5c31af7Sopenharmony_ci 3387e5c31af7Sopenharmony_ci * ename:VK_IMAGE_VIEW_TYPE_2D 3388e5c31af7Sopenharmony_ci * ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY 3389e5c31af7Sopenharmony_ci 3390e5c31af7Sopenharmony_ciendif::VK_IMG_filter_cubic,VK_EXT_filter_cubic[] 3391e5c31af7Sopenharmony_ci 3392e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 3393e5c31af7Sopenharmony_ci 3394e5c31af7Sopenharmony_ciTo be used with sname:VkImageView with pname:subresourceRange.aspectMask 3395e5c31af7Sopenharmony_ciequal to ename:VK_IMAGE_ASPECT_COLOR_BIT, <<samplers-YCbCr-conversion, 3396e5c31af7Sopenharmony_cisampler {YCbCr} conversion>> must: be enabled for the following formats: 3397e5c31af7Sopenharmony_ci 3398e5c31af7Sopenharmony_ci[[formats-requiring-sampler-ycbcr-conversion]] 3399e5c31af7Sopenharmony_ci.Formats requiring sampler {YCbCr} conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT image views 3400e5c31af7Sopenharmony_ci[width="100%",cols="18,^3,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"] 3401e5c31af7Sopenharmony_ci|==== 3402e5c31af7Sopenharmony_ci11+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT .11+^.^| {downarrow} 3403e5c31af7Sopenharmony_ci10+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT .10+^.^| {downarrow} 3404e5c31af7Sopenharmony_ci9+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT .9+^.^| {downarrow} 3405e5c31af7Sopenharmony_ci8+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT .8+^.^| {downarrow} 3406e5c31af7Sopenharmony_ci7+>| ename:VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT .7+^.^| {downarrow} 3407e5c31af7Sopenharmony_ci6+>| ename:VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT .6+^.^| {downarrow} 3408e5c31af7Sopenharmony_ci5+>| ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT .5+^.^| {downarrow} 3409e5c31af7Sopenharmony_ci4+>| ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT .4+^.^| {downarrow} 3410e5c31af7Sopenharmony_ci3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .3+^.^| {downarrow} 3411e5c31af7Sopenharmony_ci2+>| ename:VK_FORMAT_FEATURE_DISJOINT_BIT .2+^.^| {downarrow} 3412e5c31af7Sopenharmony_cis| Format s| Planes 3413e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G8B8G8R8_422_UNORM | 1 | | | | | | | | | | 3414e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B8G8R8G8_422_UNORM | 1 | | | | | | | | | | 3415e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM | 3 | | {sym2} | {sym2} | {sym2} | {sym2} | | | | | 3416e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G8_B8R8_2PLANE_420_UNORM | 2 | | {sym2} | {sym2} | {sym2} | {sym2} | | | | | 3417e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM | 3 | | | | | | | | | | 3418e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G8_B8R8_2PLANE_422_UNORM | 2 | | | | | | | | | | 3419e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM | 3 | | | | | | | | | | 3420e5c31af7Sopenharmony_ciifdef::VK_EXT_rgba10x6_formats[] 3421e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 {sym3} | 1 | | | | | | | | | | 3422e5c31af7Sopenharmony_ciendif::VK_EXT_rgba10x6_formats[] 3423e5c31af7Sopenharmony_ciifndef::VK_EXT_rgba10x6_formats[] 3424e5c31af7Sopenharmony_ci | ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 | 1 | | | | | | | | | | 3425e5c31af7Sopenharmony_ciendif::VK_EXT_rgba10x6_formats[] 3426e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 | 1 | | | | | | | | | | 3427e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 | 1 | | | | | | | | | | 3428e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 | 3 | | | | | | | | | | 3429e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 | 2 | | | | | | | | | | 3430e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 | 3 | | | | | | | | | | 3431e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 | 2 | | | | | | | | | | 3432e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 | 3 | | | | | | | | | | 3433e5c31af7Sopenharmony_ci| ename:VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 | 1 | | | | | | | | | | 3434e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 | 1 | | | | | | | | | | 3435e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 | 1 | | | | | | | | | | 3436e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 | 3 | | | | | | | | | | 3437e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 | 2 | | | | | | | | | | 3438e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 | 3 | | | | | | | | | | 3439e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 | 2 | | | | | | | | | | 3440e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 | 3 | | | | | | | | | | 3441e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G16B16G16R16_422_UNORM | 1 | | | | | | | | | | 3442e5c31af7Sopenharmony_ci| ename:VK_FORMAT_B16G16R16G16_422_UNORM | 1 | | | | | | | | | | 3443e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM | 3 | | | | | | | | | | 3444e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G16_B16R16_2PLANE_420_UNORM | 2 | | | | | | | | | | 3445e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM | 3 | | | | | | | | | | 3446e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G16_B16R16_2PLANE_422_UNORM | 2 | | | | | | | | | | 3447e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM | 3 | | | | | | | | | | 3448e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_ycbcr_2plane_444_formats[] 3449e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G8_B8R8_2PLANE_444_UNORM | 2 | | | | | | | | | | 3450e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 | 2 | | | | | | | | | | 3451e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 | 2 | | | | | | | | | | 3452e5c31af7Sopenharmony_ci| ename:VK_FORMAT_G16_B16R16_2PLANE_444_UNORM | 2 | | | | | | | | | | 3453e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_ycbcr_2plane_444_formats[] 3454e5c31af7Sopenharmony_ci12+| Format features marked {sym2} must: be supported for 3455e5c31af7Sopenharmony_cipname:optimalTilingFeatures with elink:VkImageType 3456e5c31af7Sopenharmony_ciename:VK_IMAGE_TYPE_2D if the sname:VkPhysicalDevice supports the 3457e5c31af7Sopenharmony_cislink:VkPhysicalDeviceSamplerYcbcrConversionFeatures feature. 3458e5c31af7Sopenharmony_ciifdef::VK_EXT_rgba10x6_formats[] 3459e5c31af7Sopenharmony_ci12+| Formats marked {sym3} do not require a sampler {YCbCr} conversion for 3460e5c31af7Sopenharmony_ciename:VK_IMAGE_ASPECT_COLOR_BIT image views if the 3461e5c31af7Sopenharmony_cislink:VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT::pname:formatRgba10x6WithoutYCbCrSampler 3462e5c31af7Sopenharmony_cifeature is enabled. 3463e5c31af7Sopenharmony_ciendif::VK_EXT_rgba10x6_formats[] 3464e5c31af7Sopenharmony_ci|==== 3465e5c31af7Sopenharmony_ci 3466e5c31af7Sopenharmony_ciImplementations are not required to support the 3467e5c31af7Sopenharmony_ciename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT, 3468e5c31af7Sopenharmony_ciename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or 3469e5c31af7Sopenharmony_ciename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT tlink:VkImageCreateFlags for the 3470e5c31af7Sopenharmony_ciabove formats that require <<samplers-YCbCr-conversion,sampler {YCbCr} 3471e5c31af7Sopenharmony_ciconversion>>. 3472e5c31af7Sopenharmony_ciTo determine whether the implementation supports sparse image creation flags 3473e5c31af7Sopenharmony_ciwith these formats use flink:vkGetPhysicalDeviceImageFormatProperties or 3474e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties2. 3475e5c31af7Sopenharmony_ci 3476e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 3477e5c31af7Sopenharmony_ci 3478e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[] 3479e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT must: be supported for 3480e5c31af7Sopenharmony_cithe following formats if the <<features-fragmentDensityMap, 3481e5c31af7Sopenharmony_cipname:fragmentDensityMap>> feature is enabled: 3482e5c31af7Sopenharmony_ci 3483e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_UNORM 3484e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[] 3485e5c31af7Sopenharmony_ci 3486e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 3487e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR must: 3488e5c31af7Sopenharmony_cibe supported in pname:bufferFeatures for the following formats if the 3489e5c31af7Sopenharmony_ci<<features-accelerationStructure, pname:accelerationStructure>> feature is 3490e5c31af7Sopenharmony_cisupported: 3491e5c31af7Sopenharmony_ci 3492e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32_SFLOAT 3493e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32_SFLOAT 3494e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SFLOAT 3495e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SFLOAT 3496e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SNORM 3497e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SNORM 3498e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 3499e5c31af7Sopenharmony_ci 3500e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 3501e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR must: be 3502e5c31af7Sopenharmony_cisupported for the following formats if the 3503e5c31af7Sopenharmony_ci<<features-attachmentFragmentShadingRate, 3504e5c31af7Sopenharmony_cipname:attachmentFragmentShadingRate>> feature is supported: 3505e5c31af7Sopenharmony_ci 3506e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_UINT 3507e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 3508e5c31af7Sopenharmony_ci 3509e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[] 3510e5c31af7Sopenharmony_ciIf `apiext:VK_EXT_host_image_copy` is supported and 3511e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT is supported in 3512e5c31af7Sopenharmony_cipname:optimalTilingFeatures or pname:linearTilingFeatures for a color 3513e5c31af7Sopenharmony_ciformat, ename:VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT must: also be 3514e5c31af7Sopenharmony_cisupported in pname:optimalTilingFeatures or pname:linearTilingFeatures 3515e5c31af7Sopenharmony_cirespectively. 3516e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[] 3517e5c31af7Sopenharmony_ci 3518e5c31af7Sopenharmony_ci 3519e5c31af7Sopenharmony_ci[[formats-without-shader-storage-format]] 3520e5c31af7Sopenharmony_ci=== Formats Without Shader Storage Format 3521e5c31af7Sopenharmony_ci 3522e5c31af7Sopenharmony_ciThe device-level features for using a storage image or a storage texel 3523e5c31af7Sopenharmony_cibuffer with an image format of code:Unknown, 3524e5c31af7Sopenharmony_ci<<features-shaderStorageImageReadWithoutFormat, 3525e5c31af7Sopenharmony_cipname:shaderStorageImageReadWithoutFormat>> and 3526e5c31af7Sopenharmony_ci<<features-shaderStorageImageWriteWithoutFormat, 3527e5c31af7Sopenharmony_cipname:shaderStorageImageWriteWithoutFormat>>, only apply to the following 3528e5c31af7Sopenharmony_ciformats: 3529e5c31af7Sopenharmony_ci 3530e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_UNORM 3531e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_SNORM 3532e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_UINT 3533e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8B8A8_SINT 3534e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32_UINT 3535e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32_SINT 3536e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32_SFLOAT 3537e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32_UINT 3538e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32_SINT 3539e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32_SFLOAT 3540e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32A32_UINT 3541e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32A32_SINT 3542e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R32G32B32A32_SFLOAT 3543e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_UINT 3544e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SINT 3545e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SFLOAT 3546e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SFLOAT 3547e5c31af7Sopenharmony_ci * ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32 3548e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_SFLOAT 3549e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_UNORM 3550e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2B10G10R10_UNORM_PACK32 3551e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_UNORM 3552e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_UNORM 3553e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_UNORM 3554e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_UNORM 3555e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16B16A16_SNORM 3556e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SNORM 3557e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_SNORM 3558e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_SNORM 3559e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_SNORM 3560e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_SINT 3561e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_SINT 3562e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_SINT 3563e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_SINT 3564e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A2B10G10R10_UINT_PACK32 3565e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16G16_UINT 3566e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8G8_UINT 3567e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R16_UINT 3568e5c31af7Sopenharmony_ci * ename:VK_FORMAT_R8_UINT 3569e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 3570e5c31af7Sopenharmony_ci * ename:VK_FORMAT_A8_UNORM_KHR 3571e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 3572e5c31af7Sopenharmony_ci 3573e5c31af7Sopenharmony_ci[NOTE] 3574e5c31af7Sopenharmony_ci.Note 3575e5c31af7Sopenharmony_ci==== 3576e5c31af7Sopenharmony_ciThis list of formats is the union of required storage formats from 3577e5c31af7Sopenharmony_ci<<features-required-format-support, Required Format Support>> section and 3578e5c31af7Sopenharmony_ciformats listed in <<features-shaderStorageImageExtendedFormats, 3579e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats>>. 3580e5c31af7Sopenharmony_ci==== 3581e5c31af7Sopenharmony_ci 3582e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 3583e5c31af7Sopenharmony_ciAn implementation that supports ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT 3584e5c31af7Sopenharmony_cifor any format from the given list of formats and supports 3585e5c31af7Sopenharmony_ci<<features-shaderStorageImageReadWithoutFormat, 3586e5c31af7Sopenharmony_cipname:shaderStorageImageReadWithoutFormat>> must: support 3587e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT for that same 3588e5c31af7Sopenharmony_ciformat if Vulkan 1.3 or the `apiext:VK_KHR_format_feature_flags2` extension 3589e5c31af7Sopenharmony_ciis supported. 3590e5c31af7Sopenharmony_ci 3591e5c31af7Sopenharmony_ciAn implementation that supports ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT 3592e5c31af7Sopenharmony_cifor any format from the given list of formats and supports 3593e5c31af7Sopenharmony_ci<<features-shaderStorageImageWriteWithoutFormat, 3594e5c31af7Sopenharmony_cipname:shaderStorageImageWriteWithoutFormat>> must: support 3595e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT for that same 3596e5c31af7Sopenharmony_ciformat if Vulkan 1.3 or the `apiext:VK_KHR_format_feature_flags2` extension 3597e5c31af7Sopenharmony_ciis supported. 3598e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 3599e5c31af7Sopenharmony_ci 3600e5c31af7Sopenharmony_ci 3601e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 3602e5c31af7Sopenharmony_ci=== Depth Comparison Format Support 3603e5c31af7Sopenharmony_ci 3604e5c31af7Sopenharmony_ciIf Vulkan 1.3 or the `apiext:VK_KHR_format_feature_flags2` extension is 3605e5c31af7Sopenharmony_cisupported, a depth/stencil format with a depth component supporting 3606e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT must: support 3607e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT. 3608e5c31af7Sopenharmony_ci 3609e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 3610e5c31af7Sopenharmony_ci 3611e5c31af7Sopenharmony_ci 3612e5c31af7Sopenharmony_ci[[format-feature-dependent-usage-flags]] 3613e5c31af7Sopenharmony_ci=== Format Feature Dependent Usage Flags 3614e5c31af7Sopenharmony_ci 3615e5c31af7Sopenharmony_ciCertain resource usage flags depend on support for the corresponding format 3616e5c31af7Sopenharmony_cifeature flag for the format in question. 3617e5c31af7Sopenharmony_ciThe following tables list the elink:VkBufferUsageFlagBits and 3618e5c31af7Sopenharmony_cielink:VkImageUsageFlagBits that have such dependencies, and the format 3619e5c31af7Sopenharmony_cifeature flags they depend on. 3620e5c31af7Sopenharmony_ciAdditional restrictions, including, but not limited to, further required 3621e5c31af7Sopenharmony_ciformat feature flags specific to the particular use of the resource may: 3622e5c31af7Sopenharmony_ciapply, as described in the respective sections of this specification. 3623e5c31af7Sopenharmony_ci 3624e5c31af7Sopenharmony_ci.Format feature dependent buffer usage flags 3625e5c31af7Sopenharmony_ci[cols="50%,50%",options="header"] 3626e5c31af7Sopenharmony_ci|==== 3627e5c31af7Sopenharmony_ci|Buffer usage flag | Required format feature flag 3628e5c31af7Sopenharmony_ci|ename:VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | ename:VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT 3629e5c31af7Sopenharmony_ci|ename:VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT 3630e5c31af7Sopenharmony_ci|ename:VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | ename:VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT 3631e5c31af7Sopenharmony_ci|==== 3632e5c31af7Sopenharmony_ci 3633e5c31af7Sopenharmony_ci.Format feature dependent image usage flags 3634e5c31af7Sopenharmony_ci[cols="50%,50%",options="header"] 3635e5c31af7Sopenharmony_ci|==== 3636e5c31af7Sopenharmony_ci|Image usage flag | Required format feature flag 3637e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_SAMPLED_BIT | ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT 3638e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_STORAGE_BIT | ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT 3639e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT 3640e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT 3641e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT | ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT 3642e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 3643e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR | ename:VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR 3644e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 3645e5c31af7Sopenharmony_ciifdef::VK_KHR_video_decode_queue[] 3646e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR | ename:VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR 3647e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR | ename:VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR 3648e5c31af7Sopenharmony_ciendif::VK_KHR_video_decode_queue[] 3649e5c31af7Sopenharmony_ciifdef::VK_KHR_video_encode_queue[] 3650e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR | ename:VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR 3651e5c31af7Sopenharmony_ci|ename:VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR | ename:VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR 3652e5c31af7Sopenharmony_ciendif::VK_KHR_video_encode_queue[] 3653e5c31af7Sopenharmony_ci|==== 3654