Vulkan-Docs/appendices/VK_KHR_sampler_ycbcr_conversion.txt
Jon Leech 56e0289318 Change log for January 05, 2019 Vulkan 1.1.97 spec update:
* Update release number to 97.

Public Issues:

  * Add a special case to the <<renderpass-compatibility, Render Pass
    Compatibility>> rules allowing single-subpass renderpasses to be
    compatible even if they have different resolve attachment references
    (public issue 835).
  * Fix the miss shader binding table record address rule in the
    <<shader-binding-table-indexing-rules, Miss Shaders>> section to index
    by code:missIndex, not code:sbtOffset (public issue 875).

Internal Issues:

  * Add a missing anchor to the elink:VkSamplerCreateFlagBits language
    (internal issue 1483).
  * Add missing implicit valid usage include for slink:VkHdrMetadataEXT and
    corresponding `noautovalidity` attributes in `vk.xml` for the
    externally-defined metadata properties (internal issue 1514).
  * Remove restrictions on the `mask` parameter of SPIR-V's
    code:OpGroupNonUniformXor in the <<spirvenv-module-validation,
    Validation Rules within a Module>> appendix (internal merge request
    2971).
  * Restore `noautovalidity` attribute for
    slink:VkPipelineViewportWScalingStateCreateInfoNV::pname:pViewportWScalings
    in `vk.xml` (internal merge request 2975).
  * Update copyright dates on Khronos-copyrighted files to 2019 (internal
    merge request 2980).

New Extensions:

  * `VK_KHR_depth_stencil_resolve`
  * `VK_EXT_buffer_device_address`
  * `VK_EXT_memory_budget`
  * `VK_EXT_memory_priority`
  * `VK_EXT_validation_features`
2019-01-05 19:40:12 -08:00

157 lines
6.4 KiB
Plaintext

// Copyright (c) 2017-2019 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*::
- Promoted to Vulkan 1.1 Core
- 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
=== Promotion to Vulkan 1.1
All functionality in this extension is included in core Vulkan 1.1, with the
KHR suffix omitted.
The original type, enum and command names are still available as aliases of
the core functionality.
=== 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