Vulkan-Docs/doc/specs/vulkan/appendices/VK_KHR_sampler_ycbcr_conver...

151 lines
6.1 KiB
Plaintext

// 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