// Copyright (c) 2017 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ include::meta/VK_KHR_sampler_ycbcr_conversion.txt[] *Last Modified Date*:: 2017-08-11 *IP Status*:: No known IP claims. *Interactions and External Dependencies*:: - This extension interacts with +VK_EXT_debug_report+ *Contributors*:: - Andrew Garrard, Samsung Electronics - Tobias Hector, Imagination Technologies - James Jones, NVIDIA - Daniel Koch, NVIDIA - Daniel Rakos, AMD - Romain Guy, Google - Jesse Hall, Google - Tom Cooksey, ARM Ltd - Jeff Leger, Qualcomm Technologies, Inc - Jan-Harald Fredriksen, ARM Ltd - Jan Outters, Samsung Electronics - Alon Or-bach, Samsung Electronics - Michael Worcester, Imagination Technologies - Jeff Bolz, NVIDIA - Tony Zlatinski, NVIDIA - Matthew Netsch, Qualcomm Technologies, Inc This extension provides the ability to perform specified color space conversions during texture sampling operations. It also adds a selection of multi-planar formats, including the ability to bind memory to the planes of an image collectively or separately. === New Enum Constants * Extending elink:VkStructureType: ** ename:VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR ** ename:VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR ** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR ** ename:VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR * Extending elink:VkFormat: ** ename:VK_FORMAT_G8B8G8R8_422_UNORM_KHR ** ename:VK_FORMAT_B8G8R8G8_422_UNORM_KHR ** ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR ** ename:VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR ** ename:VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR ** ename:VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR ** ename:VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR ** ename:VK_FORMAT_R10X6_UNORM_PACK16_KHR ** ename:VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR ** ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR ** ename:VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR ** ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR ** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR ** ename:VK_FORMAT_R12X4_UNORM_PACK16_KHR ** ename:VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR ** ename:VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR ** ename:VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR ** ename:VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR ** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR ** ename:VK_FORMAT_G16B16G16R16_422_UNORM_KHR ** ename:VK_FORMAT_B16G16R16G16_422_UNORM_KHR ** ename:VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR ** ename:VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR ** ename:VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR ** ename:VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR ** ename:VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR * Extending elink:VkImageAspectFlagBits: ** ename:VK_IMAGE_ASPECT_PLANE_0_BIT_KHR ** ename:VK_IMAGE_ASPECT_PLANE_1_BIT_KHR ** ename:VK_IMAGE_ASPECT_PLANE_2_BIT_KHR * Extending elink:VkImageCreateFlagBits: ** ename:VK_IMAGE_CREATE_DISJOINT_BIT_KHR * Extending elink:VkFormatFeatureFlagBits: ** ename:VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR ** ename:VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR ** ename:VK_FORMAT_FEATURE_DISJOINT_BIT_KHR === New Enums * elink:VkSamplerYcbcrModelConversionKHR * elink:VkSamplerYcbcrRangeKHR * elink:VkChromaLocationKHR === New Structures * slink:VkSamplerYcbcrConversionInfoKHR * slink:VkSamplerYcbcrConversionCreateInfoKHR * slink:VkBindImagePlaneMemoryInfoKHR * slink:VkImagePlaneMemoryRequirementsInfoKHR * slink:VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR * slink:VkSamplerYcbcrConversionImageFormatPropertiesKHR === New Functions * flink:vkCreateSamplerYcbcrConversionKHR * flink:vkDestroySamplerYcbcrConversionKHR === New Objects * slink:VkSamplerYcbcrConversionKHR === Issues === Version History * Revision 1, 2017-01-24 (Andrew Garrard) - Initial draft * Revision 2, 2017-01-25 (Andrew Garrard) - After initial feedback * Revision 3, 2017-01-27 (Andrew Garrard) - Higher bit depth formats, renaming, swizzle * Revision 4, 2017-02-22 (Andrew Garrard) - Added query function, formats as RGB, clarifications * Revision 5, 2017-04 (Andrew Garrard) - Simplified query and removed output conversions * Version 6, 2017-4-24 (Andrew Garrard) - Tidying, incorporated new image query, restored transfer functions * Version 7, 2017-04-25 (Andrew Garrard) - Added cosited option/midpoint requirement for formats, "bypassConversion" * Version 8, 2017-04-25 (Andrew Garrard) - Simplified further * Version 9, 2017-04-27 (Andrew Garrard) - Disjoint no more * Version 10, 2017-04-28 (Andrew Garrard) - Restored disjoint * Version 11, 2017-04-29 (Andrew Garrard) - Now Ycbcr conversion, and KHR * Version 12, 2017-06-06 (Andrew Garrard) - Added conversion to image view creation * Version 13, 2017-07-13 (Andrew Garrard) - Allowed cosited-only chroma samples for formats * Version 14, 2017-08-11 (Andrew Garrard) - Reflected quantization changes in BT.2100-1