• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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