1// Copyright (c) 2017-2018 Khronos Group. This work is licensed under a 2// Creative Commons Attribution 4.0 International License; see 3// http://creativecommons.org/licenses/by/4.0/ 4 5include::meta/VK_KHR_sampler_ycbcr_conversion.txt[] 6 7*Last Modified Date*:: 8 2017-08-11 9*IP Status*:: 10 No known IP claims. 11*Interactions and External Dependencies*:: 12 - Promoted to Vulkan 1.1 Core 13 - This extension interacts with `<<VK_EXT_debug_report>>` 14*Contributors*:: 15 - Andrew Garrard, Samsung Electronics 16 - Tobias Hector, Imagination Technologies 17 - James Jones, NVIDIA 18 - Daniel Koch, NVIDIA 19 - Daniel Rakos, AMD 20 - Romain Guy, Google 21 - Jesse Hall, Google 22 - Tom Cooksey, ARM Ltd 23 - Jeff Leger, Qualcomm Technologies, Inc 24 - Jan-Harald Fredriksen, ARM Ltd 25 - Jan Outters, Samsung Electronics 26 - Alon Or-bach, Samsung Electronics 27 - Michael Worcester, Imagination Technologies 28 - Jeff Bolz, NVIDIA 29 - Tony Zlatinski, NVIDIA 30 - Matthew Netsch, Qualcomm Technologies, Inc 31 32This extension provides the ability to perform specified color space 33conversions during texture sampling operations. 34It also adds a selection of multi-planar formats, including the ability to 35bind memory to the planes of an image collectively or separately. 36 37=== New Enum Constants 38 39 * Extending elink:VkStructureType: 40 ** ename:VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR 41 ** ename:VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR 42 ** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR 43 ** ename:VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR 44 ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR 45 * Extending elink:VkFormat: 46 ** ename:VK_FORMAT_G8B8G8R8_422_UNORM_KHR 47 ** ename:VK_FORMAT_B8G8R8G8_422_UNORM_KHR 48 ** ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR 49 ** ename:VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR 50 ** ename:VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR 51 ** ename:VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR 52 ** ename:VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR 53 ** ename:VK_FORMAT_R10X6_UNORM_PACK16_KHR 54 ** ename:VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR 55 ** ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR 56 ** ename:VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR 57 ** ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR 58 ** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR 59 ** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR 60 ** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR 61 ** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR 62 ** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR 63 ** ename:VK_FORMAT_R12X4_UNORM_PACK16_KHR 64 ** ename:VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR 65 ** ename:VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR 66 ** ename:VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR 67 ** ename:VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR 68 ** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR 69 ** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR 70 ** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR 71 ** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR 72 ** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR 73 ** ename:VK_FORMAT_G16B16G16R16_422_UNORM_KHR 74 ** ename:VK_FORMAT_B16G16R16G16_422_UNORM_KHR 75 ** ename:VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR 76 ** ename:VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR 77 ** ename:VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR 78 ** ename:VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR 79 ** ename:VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR 80 * Extending elink:VkImageAspectFlagBits: 81 ** ename:VK_IMAGE_ASPECT_PLANE_0_BIT_KHR 82 ** ename:VK_IMAGE_ASPECT_PLANE_1_BIT_KHR 83 ** ename:VK_IMAGE_ASPECT_PLANE_2_BIT_KHR 84 * Extending elink:VkImageCreateFlagBits: 85 ** ename:VK_IMAGE_CREATE_DISJOINT_BIT_KHR 86 * Extending elink:VkFormatFeatureFlagBits: 87 ** ename:VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR 88 ** ename:VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR 89 ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR 90 ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR 91 ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR 92 ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR 93 ** ename:VK_FORMAT_FEATURE_DISJOINT_BIT_KHR 94 95=== New Enums 96 97 * elink:VkSamplerYcbcrModelConversionKHR 98 * elink:VkSamplerYcbcrRangeKHR 99 * elink:VkChromaLocationKHR 100 101=== New Structures 102 103 * slink:VkSamplerYcbcrConversionInfoKHR 104 * slink:VkSamplerYcbcrConversionCreateInfoKHR 105 * slink:VkBindImagePlaneMemoryInfoKHR 106 * slink:VkImagePlaneMemoryRequirementsInfoKHR 107 * slink:VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR 108 * slink:VkSamplerYcbcrConversionImageFormatPropertiesKHR 109 110=== New Functions 111 112 * flink:vkCreateSamplerYcbcrConversionKHR 113 * flink:vkDestroySamplerYcbcrConversionKHR 114 115=== New Objects 116 117 * slink:VkSamplerYcbcrConversionKHR 118 119=== Promotion to Vulkan 1.1 120 121All functionality in this extension is included in core Vulkan 1.1, with the 122KHR suffix omitted. 123The original type, enum and command names are still available as aliases of 124the core functionality. 125 126=== Version History 127 128 * Revision 1, 2017-01-24 (Andrew Garrard) 129 - Initial draft 130 * Revision 2, 2017-01-25 (Andrew Garrard) 131 - After initial feedback 132 * Revision 3, 2017-01-27 (Andrew Garrard) 133 - Higher bit depth formats, renaming, swizzle 134 * Revision 4, 2017-02-22 (Andrew Garrard) 135 - Added query function, formats as RGB, clarifications 136 * Revision 5, 2017-04 (Andrew Garrard) 137 - Simplified query and removed output conversions 138 * Version 6, 2017-4-24 (Andrew Garrard) 139 - Tidying, incorporated new image query, restored transfer functions 140 * Version 7, 2017-04-25 (Andrew Garrard) 141 - Added cosited option/midpoint requirement for formats, 142 "bypassConversion" 143 * Version 8, 2017-04-25 (Andrew Garrard) 144 - Simplified further 145 * Version 9, 2017-04-27 (Andrew Garrard) 146 - Disjoint no more 147 * Version 10, 2017-04-28 (Andrew Garrard) 148 - Restored disjoint 149 * Version 11, 2017-04-29 (Andrew Garrard) 150 - Now Ycbcr conversion, and KHR 151 * Version 12, 2017-06-06 (Andrew Garrard) 152 - Added conversion to image view creation 153 * Version 13, 2017-07-13 (Andrew Garrard) 154 - Allowed cosited-only chroma samples for formats 155 * Version 14, 2017-08-11 (Andrew Garrard) 156 - Reflected quantization changes in BT.2100-1 157