1e5c31af7Sopenharmony_ci// Copyright 2015-2024 The Khronos Group Inc.
2e5c31af7Sopenharmony_ci//
3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0
4e5c31af7Sopenharmony_ci
5e5c31af7Sopenharmony_ci// This text fragment is used many times in the Features chapter.
6e5c31af7Sopenharmony_ciifdef::hidden[]
7e5c31af7Sopenharmony_ci// tag::features[]
8e5c31af7Sopenharmony_ciIf the sname:{refpage} structure is included in the pname:pNext chain of the
9e5c31af7Sopenharmony_cislink:VkPhysicalDeviceFeatures2 structure passed to
10e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each
11e5c31af7Sopenharmony_cicorresponding feature is supported.
12e5c31af7Sopenharmony_cisname:{refpage} can: also be used in the pname:pNext chain of
13e5c31af7Sopenharmony_cislink:VkDeviceCreateInfo to selectively enable these features.
14e5c31af7Sopenharmony_ci// end::features[]
15e5c31af7Sopenharmony_ciendif::hidden[]
16e5c31af7Sopenharmony_ci
17e5c31af7Sopenharmony_ci
18e5c31af7Sopenharmony_ci[[features]]
19e5c31af7Sopenharmony_ci= Features
20e5c31af7Sopenharmony_ci
21e5c31af7Sopenharmony_ci_Features_ describe functionality which is not supported on all
22e5c31af7Sopenharmony_ciimplementations.
23e5c31af7Sopenharmony_ciFeatures are properties of the physical device.
24e5c31af7Sopenharmony_ciFeatures are optional:, and must: be explicitly enabled before use.
25e5c31af7Sopenharmony_ciSupport for features is reported and enabled on a per-feature basis.
26e5c31af7Sopenharmony_ci
27e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
28e5c31af7Sopenharmony_ci[NOTE]
29e5c31af7Sopenharmony_ci.Note
30e5c31af7Sopenharmony_ci====
31e5c31af7Sopenharmony_ciFeatures are reported via the basic slink:VkPhysicalDeviceFeatures
32e5c31af7Sopenharmony_cistructure, as well as the extensible structure
33e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFeatures2, which was added in the
34e5c31af7Sopenharmony_ci`apiext:VK_KHR_get_physical_device_properties2` extension and included in
35e5c31af7Sopenharmony_ciVulkan 1.1.
36e5c31af7Sopenharmony_ciWhen new features are added in future Vulkan versions or extensions, each
37e5c31af7Sopenharmony_ciextension should: introduce one new feature structure, if needed.
38e5c31af7Sopenharmony_ciThis structure can: be added to the pname:pNext chain of the
39e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFeatures2 structure.
40e5c31af7Sopenharmony_ci====
41e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
42e5c31af7Sopenharmony_ci
43e5c31af7Sopenharmony_ciFor convenience, new core versions of Vulkan may: introduce new unified
44e5c31af7Sopenharmony_cifeature structures for features promoted from extensions.
45e5c31af7Sopenharmony_ciAt the same time, the extension's original feature structure (if any) is
46e5c31af7Sopenharmony_cialso promoted to the core API, and is an alias of the extension's structure.
47e5c31af7Sopenharmony_ciThis results in multiple names for the same feature: in the original
48e5c31af7Sopenharmony_ciextension's feature structure and the promoted structure alias, in the
49e5c31af7Sopenharmony_ciunified feature structure.
50e5c31af7Sopenharmony_ciWhen a feature was implicitly supported and enabled in the extension, but an
51e5c31af7Sopenharmony_ciexplicit name was added during promotion, then the extension itself acts as
52e5c31af7Sopenharmony_cian alias for the feature as listed in the table below.
53e5c31af7Sopenharmony_ci
54e5c31af7Sopenharmony_ciAll aliases of the same feature in the core API must: be reported
55e5c31af7Sopenharmony_ciconsistently: either all must: be reported as supported, or none of them.
56e5c31af7Sopenharmony_ciWhen a promoted extension is available, any corresponding feature aliases
57e5c31af7Sopenharmony_cimust: be supported.
58e5c31af7Sopenharmony_ci
59e5c31af7Sopenharmony_ci[[features-extension-aliases]]
60e5c31af7Sopenharmony_ci.Extension Feature Aliases
61e5c31af7Sopenharmony_ci
62e5c31af7Sopenharmony_ci// Jon 1.3 TBD - add any appropriate extensions promoted to 1.3
63e5c31af7Sopenharmony_ci[width="100%",options="header"]
64e5c31af7Sopenharmony_ci|====
65e5c31af7Sopenharmony_ci| Extension                                    | Feature(s)
66e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
67e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_draw_parameters[]
68e5c31af7Sopenharmony_ci| `apiext:VK_KHR_shader_draw_parameters`       | <<features-shaderDrawParameters, pname:shaderDrawParameters>>
69e5c31af7Sopenharmony_ciendif::VK_KHR_shader_draw_parameters[]
70e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[]
71e5c31af7Sopenharmony_ci| `apiext:VK_KHR_draw_indirect_count`          | <<features-drawIndirectCount, pname:drawIndirectCount>>
72e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[]
73e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_mirror_clamp_to_edge[]
74e5c31af7Sopenharmony_ci| `apiext:VK_KHR_sampler_mirror_clamp_to_edge` | <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>>
75e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_mirror_clamp_to_edge[]
76e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[]
77e5c31af7Sopenharmony_ci| `apiext:VK_EXT_descriptor_indexing`          | <<features-descriptorIndexing, pname:descriptorIndexing>>
78e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[]
79e5c31af7Sopenharmony_ciifdef::VK_EXT_sampler_filter_minmax[]
80e5c31af7Sopenharmony_ci| `apiext:VK_EXT_sampler_filter_minmax`        | <<features-samplerFilterMinmax, pname:samplerFilterMinmax>>
81e5c31af7Sopenharmony_ciendif::VK_EXT_sampler_filter_minmax[]
82e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_viewport_index_layer[]
83e5c31af7Sopenharmony_ci| `apiext:VK_EXT_shader_viewport_index_layer`  | <<features-shaderOutputViewportIndex, pname:shaderOutputViewportIndex>>, <<features-shaderOutputLayer, pname:shaderOutputLayer>>
84e5c31af7Sopenharmony_ciendif::VK_EXT_shader_viewport_index_layer[]
85e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
86e5c31af7Sopenharmony_ci|====
87e5c31af7Sopenharmony_ci
88e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFeatures',desc='Reports capabilities of a physical device',type='protos']
89e5c31af7Sopenharmony_ci--
90e5c31af7Sopenharmony_ciTo query supported features, call:
91e5c31af7Sopenharmony_ci
92e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures.adoc[]
93e5c31af7Sopenharmony_ci
94e5c31af7Sopenharmony_ci  * pname:physicalDevice is the physical device from which to query the
95e5c31af7Sopenharmony_ci    supported features.
96e5c31af7Sopenharmony_ci  * pname:pFeatures is a pointer to a slink:VkPhysicalDeviceFeatures
97e5c31af7Sopenharmony_ci    structure in which the physical device features are returned.
98e5c31af7Sopenharmony_ci    For each feature, a value of ename:VK_TRUE specifies that the feature is
99e5c31af7Sopenharmony_ci    supported on this physical device, and ename:VK_FALSE specifies that the
100e5c31af7Sopenharmony_ci    feature is not supported.
101e5c31af7Sopenharmony_ci
102e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFeatures.adoc[]
103e5c31af7Sopenharmony_ci--
104e5c31af7Sopenharmony_ci
105e5c31af7Sopenharmony_ciFine-grained features used by a logical device must: be enabled at
106e5c31af7Sopenharmony_cisname:VkDevice creation time.
107e5c31af7Sopenharmony_ciIf a feature is enabled that the physical device does not support,
108e5c31af7Sopenharmony_cisname:VkDevice creation will fail and return
109e5c31af7Sopenharmony_ciename:VK_ERROR_FEATURE_NOT_PRESENT.
110e5c31af7Sopenharmony_ci
111e5c31af7Sopenharmony_ciThe fine-grained features are enabled by passing a pointer to the
112e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFeatures structure via the pname:pEnabledFeatures
113e5c31af7Sopenharmony_cimember of the slink:VkDeviceCreateInfo structure that is passed into the
114e5c31af7Sopenharmony_cifname:vkCreateDevice call.
115e5c31af7Sopenharmony_ciIf a member of pname:pEnabledFeatures is set to ename:VK_TRUE or
116e5c31af7Sopenharmony_ciename:VK_FALSE, then the device will be created with the indicated feature
117e5c31af7Sopenharmony_cienabled or disabled, respectively.
118e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
119e5c31af7Sopenharmony_ciFeatures can: also be enabled by using the slink:VkPhysicalDeviceFeatures2
120e5c31af7Sopenharmony_cistructure.
121e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
122e5c31af7Sopenharmony_ci
123e5c31af7Sopenharmony_ciIf an application wishes to enable all features supported by a device, it
124e5c31af7Sopenharmony_cican: simply pass in the sname:VkPhysicalDeviceFeatures structure that was
125e5c31af7Sopenharmony_cipreviously returned by fname:vkGetPhysicalDeviceFeatures.
126e5c31af7Sopenharmony_ciTo disable an individual feature, the application can: set the desired
127e5c31af7Sopenharmony_cimember to ename:VK_FALSE in the same structure.
128e5c31af7Sopenharmony_ciSetting pname:pEnabledFeatures to `NULL`
129e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
130e5c31af7Sopenharmony_ciand not including a slink:VkPhysicalDeviceFeatures2 in the pname:pNext chain
131e5c31af7Sopenharmony_ciof slink:VkDeviceCreateInfo
132e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
133e5c31af7Sopenharmony_ciis equivalent to setting all members of the structure to ename:VK_FALSE.
134e5c31af7Sopenharmony_ci
135e5c31af7Sopenharmony_ci[NOTE]
136e5c31af7Sopenharmony_ci.Note
137e5c31af7Sopenharmony_ci====
138e5c31af7Sopenharmony_ciSome features, such as pname:robustBufferAccess, may: incur a runtime
139e5c31af7Sopenharmony_ciperformance cost.
140e5c31af7Sopenharmony_ciApplication writers should: carefully consider the implications of enabling
141e5c31af7Sopenharmony_ciall supported features.
142e5c31af7Sopenharmony_ci====
143e5c31af7Sopenharmony_ci
144e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
145e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFeatures2',desc='Reports capabilities of a physical device',type='protos']
146e5c31af7Sopenharmony_ci--
147e5c31af7Sopenharmony_ciTo query supported features defined by the core or extensions, call:
148e5c31af7Sopenharmony_ci
149e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
150e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures2.adoc[]
151e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
152e5c31af7Sopenharmony_ci
153e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1+VK_KHR_get_physical_device_properties2[or the equivalent command]
154e5c31af7Sopenharmony_ci
155e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[]
156e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures2KHR.adoc[]
157e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[]
158e5c31af7Sopenharmony_ci
159e5c31af7Sopenharmony_ci  * pname:physicalDevice is the physical device from which to query the
160e5c31af7Sopenharmony_ci    supported features.
161e5c31af7Sopenharmony_ci  * pname:pFeatures is a pointer to a slink:VkPhysicalDeviceFeatures2
162e5c31af7Sopenharmony_ci    structure in which the physical device features are returned.
163e5c31af7Sopenharmony_ci
164e5c31af7Sopenharmony_ciEach structure in pname:pFeatures and its pname:pNext chain contains members
165e5c31af7Sopenharmony_cicorresponding to fine-grained features.
166e5c31af7Sopenharmony_cifname:vkGetPhysicalDeviceFeatures2 writes each member to a boolean value
167e5c31af7Sopenharmony_ciindicating whether that feature is supported.
168e5c31af7Sopenharmony_ci
169e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFeatures2.adoc[]
170e5c31af7Sopenharmony_ci--
171e5c31af7Sopenharmony_ci
172e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFeatures2',desc='Structure describing the fine-grained features that can be supported by an implementation',type='structs']
173e5c31af7Sopenharmony_ci--
174e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFeatures2 structure is defined as:
175e5c31af7Sopenharmony_ci
176e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures2.adoc[]
177e5c31af7Sopenharmony_ci
178e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[]
179e5c31af7Sopenharmony_cior the equivalent
180e5c31af7Sopenharmony_ci
181e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures2KHR.adoc[]
182e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[]
183e5c31af7Sopenharmony_ci
184e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
185e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
186e5c31af7Sopenharmony_ci    structure.
187e5c31af7Sopenharmony_ci  * pname:features is a slink:VkPhysicalDeviceFeatures structure describing
188e5c31af7Sopenharmony_ci    the fine-grained features of the Vulkan 1.0 API.
189e5c31af7Sopenharmony_ci
190e5c31af7Sopenharmony_ciThe pname:pNext chain of this structure is used to extend the structure with
191e5c31af7Sopenharmony_cifeatures defined by extensions.
192e5c31af7Sopenharmony_ciThis structure can: be used in flink:vkGetPhysicalDeviceFeatures2 or can: be
193e5c31af7Sopenharmony_ciincluded in the pname:pNext chain of a slink:VkDeviceCreateInfo structure,
194e5c31af7Sopenharmony_ciin which case it controls which features are enabled on the device in lieu
195e5c31af7Sopenharmony_ciof pname:pEnabledFeatures.
196e5c31af7Sopenharmony_ci
197e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFeatures2.adoc[]
198e5c31af7Sopenharmony_ci--
199e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
200e5c31af7Sopenharmony_ci
201e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFeatures',desc='Structure describing the fine-grained features that can be supported by an implementation',type='structs']
202e5c31af7Sopenharmony_ci--
203e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFeatures structure is defined as:
204e5c31af7Sopenharmony_ci
205e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures.adoc[]
206e5c31af7Sopenharmony_ci
207e5c31af7Sopenharmony_ciThis structure describes the following features:
208e5c31af7Sopenharmony_ci
209e5c31af7Sopenharmony_ci  * [[features-robustBufferAccess]] pname:robustBufferAccess specifies that
210e5c31af7Sopenharmony_ci    accesses to buffers are bounds-checked against the range of the buffer
211e5c31af7Sopenharmony_ci    descriptor (as determined by sname:VkDescriptorBufferInfo::pname:range,
212e5c31af7Sopenharmony_ci    slink:VkBufferViewCreateInfo::pname:range, or the size of the buffer).
213e5c31af7Sopenharmony_ci    Out of bounds accesses must: not cause application termination, and the
214e5c31af7Sopenharmony_ci    effects of shader loads, stores, and atomics must: conform to an
215e5c31af7Sopenharmony_ci    implementation-dependent behavior as described below.
216e5c31af7Sopenharmony_ci  ** A buffer access is considered to be out of bounds if any of the
217e5c31af7Sopenharmony_ci     following are true:
218e5c31af7Sopenharmony_ci  *** The pointer was formed by code:OpImageTexelPointer and the coordinate
219e5c31af7Sopenharmony_ci      is less than zero or greater than or equal to the number of whole
220e5c31af7Sopenharmony_ci      elements in the bound range.
221e5c31af7Sopenharmony_ci  *** The pointer was not formed by code:OpImageTexelPointer and the object
222e5c31af7Sopenharmony_ci      pointed to is not wholly contained within the bound range.
223e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]
224e5c31af7Sopenharmony_ci      This includes accesses performed via _variable pointers_ where the
225e5c31af7Sopenharmony_ci      buffer descriptor being accessed cannot be statically determined.
226e5c31af7Sopenharmony_ci      Uninitialized pointers and pointers equal to code:OpConstantNull are
227e5c31af7Sopenharmony_ci      treated as pointing to a zero-sized object, so all accesses through
228e5c31af7Sopenharmony_ci      such pointers are considered to be out of bounds.
229e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_variable_pointers[]
230e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
231e5c31af7Sopenharmony_ci      Buffer accesses through buffer device addresses are not
232e5c31af7Sopenharmony_ci      bounds-checked.
233e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
234e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[]
235e5c31af7Sopenharmony_ci  *** If the <<features-cooperativeMatrixRobustBufferAccess-NV,
236e5c31af7Sopenharmony_ci      sname:VkPhysicalDeviceCooperativeMatrixFeaturesNV::pname:cooperativeMatrixRobustBufferAccess>>
237e5c31af7Sopenharmony_ci      feature is not enabled, then accesses using
238e5c31af7Sopenharmony_ci      code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV
239e5c31af7Sopenharmony_ci      may: not be bounds-checked.
240e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[]
241e5c31af7Sopenharmony_ciifdef::VK_KHR_cooperative_matrix[]
242e5c31af7Sopenharmony_ci  *** If the <<features-cooperativeMatrixRobustBufferAccess,
243e5c31af7Sopenharmony_ci      sname:VkPhysicalDeviceCooperativeMatrixFeaturesKHR::pname:cooperativeMatrixRobustBufferAccess>>
244e5c31af7Sopenharmony_ci      feature is not enabled, then accesses using
245e5c31af7Sopenharmony_ci      code:OpCooperativeMatrixLoadKHR and code:OpCooperativeMatrixStoreKHR
246e5c31af7Sopenharmony_ci      may: not be bounds-checked.
247e5c31af7Sopenharmony_ciendif::VK_KHR_cooperative_matrix[]
248e5c31af7Sopenharmony_ci+
249e5c31af7Sopenharmony_ci[NOTE]
250e5c31af7Sopenharmony_ci.Note
251e5c31af7Sopenharmony_ci====
252e5c31af7Sopenharmony_ciIf a SPIR-V code:OpLoad instruction loads a structure and the tail end of
253e5c31af7Sopenharmony_cithe structure is out of bounds, then all members of the structure are
254e5c31af7Sopenharmony_ciconsidered out of bounds even if the members at the end are not statically
255e5c31af7Sopenharmony_ciused.
256e5c31af7Sopenharmony_ci====
257e5c31af7Sopenharmony_ci
258e5c31af7Sopenharmony_ci  *** If
259e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
260e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2, pname:robustBufferAccess2>> is not
261e5c31af7Sopenharmony_ci      enabled and
262e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
263e5c31af7Sopenharmony_ci      any buffer access is determined to be out of bounds, then any other
264e5c31af7Sopenharmony_ci      access of the same type (load, store, or atomic) to the same buffer
265e5c31af7Sopenharmony_ci      that accesses an address less than 16 bytes away from the out of
266e5c31af7Sopenharmony_ci      bounds address may: also be considered out of bounds.
267e5c31af7Sopenharmony_ci  *** If the access is a load that reads from the same memory locations as a
268e5c31af7Sopenharmony_ci      prior store in the same shader invocation, with no other intervening
269e5c31af7Sopenharmony_ci      accesses to the same memory locations in that shader invocation, then
270e5c31af7Sopenharmony_ci      the result of the load may: be the value stored by the store
271e5c31af7Sopenharmony_ci      instruction, even if the access is out of bounds.
272e5c31af7Sopenharmony_ci      If the load is code:Volatile, then an out of bounds load must: return
273e5c31af7Sopenharmony_ci      the appropriate out of bounds value.
274e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
275e5c31af7Sopenharmony_ci  ** Accesses to descriptors written with a dlink:VK_NULL_HANDLE resource or
276e5c31af7Sopenharmony_ci     view are not considered to be out of bounds.
277e5c31af7Sopenharmony_ci     Instead, each type of descriptor access defines a specific behavior for
278e5c31af7Sopenharmony_ci     accesses to a null descriptor.
279e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
280e5c31af7Sopenharmony_ci  ** Out-of-bounds buffer loads will return any of the following values:
281e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
282e5c31af7Sopenharmony_ci  *** If the access is to a uniform buffer and
283e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2, pname:robustBufferAccess2>> is
284e5c31af7Sopenharmony_ci      enabled, loads of offsets between the end of the descriptor range and
285e5c31af7Sopenharmony_ci      the end of the descriptor range rounded up to a multiple of
286e5c31af7Sopenharmony_ci      <<limits-robustUniformBufferAccessSizeAlignment,
287e5c31af7Sopenharmony_ci      pname:robustUniformBufferAccessSizeAlignment>> bytes must: return
288e5c31af7Sopenharmony_ci      either zero values or the contents of the memory at the offset being
289e5c31af7Sopenharmony_ci      loaded.
290e5c31af7Sopenharmony_ci      Loads of offsets past the descriptor range rounded up to a multiple of
291e5c31af7Sopenharmony_ci      <<limits-robustUniformBufferAccessSizeAlignment,
292e5c31af7Sopenharmony_ci      pname:robustUniformBufferAccessSizeAlignment>> bytes must: return zero
293e5c31af7Sopenharmony_ci      values.
294e5c31af7Sopenharmony_ci  *** If the access is to a storage buffer and
295e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2, pname:robustBufferAccess2>> is
296e5c31af7Sopenharmony_ci      enabled, loads of offsets between the end of the descriptor range and
297e5c31af7Sopenharmony_ci      the end of the descriptor range rounded up to a multiple of
298e5c31af7Sopenharmony_ci      <<limits-robustStorageBufferAccessSizeAlignment,
299e5c31af7Sopenharmony_ci      pname:robustStorageBufferAccessSizeAlignment>> bytes must: return
300e5c31af7Sopenharmony_ci      either zero values or the contents of the memory at the offset being
301e5c31af7Sopenharmony_ci      loaded.
302e5c31af7Sopenharmony_ci      Loads of offsets past the descriptor range rounded up to a multiple of
303e5c31af7Sopenharmony_ci      <<limits-robustStorageBufferAccessSizeAlignment,
304e5c31af7Sopenharmony_ci      pname:robustStorageBufferAccessSizeAlignment>> bytes must: return zero
305e5c31af7Sopenharmony_ci      values.
306e5c31af7Sopenharmony_ci      Similarly, stores to addresses between the end of the descriptor range
307e5c31af7Sopenharmony_ci      and the end of the descriptor range rounded up to a multiple of
308e5c31af7Sopenharmony_ci      <<limits-robustStorageBufferAccessSizeAlignment,
309e5c31af7Sopenharmony_ci      pname:robustStorageBufferAccessSizeAlignment>> bytes may: be
310e5c31af7Sopenharmony_ci      discarded.
311e5c31af7Sopenharmony_ci  *** Non-atomic accesses to storage buffers that are a multiple of 32 bits
312e5c31af7Sopenharmony_ci      may: be decomposed into 32-bit accesses that are individually
313e5c31af7Sopenharmony_ci      bounds-checked.
314e5c31af7Sopenharmony_ci  *** If the access is to an index buffer and
315e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2, pname:robustBufferAccess2>> is
316e5c31af7Sopenharmony_ci      enabled, zero values must: be returned.
317e5c31af7Sopenharmony_ci  *** If the access is to a uniform texel buffer or storage texel buffer and
318e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2, pname:robustBufferAccess2>> is
319e5c31af7Sopenharmony_ci      enabled, zero values must: be returned, and then
320e5c31af7Sopenharmony_ci      <<textures-conversion-to-rgba,Conversion to RGBA>> is applied based on
321e5c31af7Sopenharmony_ci      the buffer view's format.
322e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
323e5c31af7Sopenharmony_ci  *** Values from anywhere within the memory range(s) bound to the buffer
324e5c31af7Sopenharmony_ci      (possibly including bytes of memory past the end of the buffer, up to
325e5c31af7Sopenharmony_ci      the end of the bound range).
326e5c31af7Sopenharmony_ci  *** Zero values, or [eq]#(0,0,0,x)# vectors for vector reads where x is a
327e5c31af7Sopenharmony_ci      valid value represented in the type of the vector components and may:
328e5c31af7Sopenharmony_ci      be any of:
329e5c31af7Sopenharmony_ci  **** 0, 1, or the maximum representable positive integer value, for signed
330e5c31af7Sopenharmony_ci       or unsigned integer components
331e5c31af7Sopenharmony_ci  **** 0.0 or 1.0, for floating-point components
332e5c31af7Sopenharmony_ci  ** Out-of-bounds writes may: modify values within the memory range(s)
333e5c31af7Sopenharmony_ci     bound to the buffer, but must: not modify any other memory.
334e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
335e5c31af7Sopenharmony_ci  *** If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is
336e5c31af7Sopenharmony_ci      enabled, out of bounds writes must: not modify any memory.
337e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
338e5c31af7Sopenharmony_ci  ** Out-of-bounds atomics may: modify values within the memory range(s)
339e5c31af7Sopenharmony_ci     bound to the buffer, but must: not modify any other memory, and return
340e5c31af7Sopenharmony_ci     an undefined: value.
341e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
342e5c31af7Sopenharmony_ci  *** If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is
343e5c31af7Sopenharmony_ci      enabled, out of bounds atomics must: not modify any memory, and return
344e5c31af7Sopenharmony_ci      an undefined: value.
345e5c31af7Sopenharmony_ci  ** If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is
346e5c31af7Sopenharmony_ci     disabled, vertex
347e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
348e5c31af7Sopenharmony_ciifndef::VK_EXT_robustness2[]
349e5c31af7Sopenharmony_ci  ** Vertex
350e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
351e5c31af7Sopenharmony_ci     input attributes are considered out of bounds if the offset of the
352e5c31af7Sopenharmony_ci     attribute in the bound vertex buffer range plus the size of the
353e5c31af7Sopenharmony_ci     attribute is greater than either:
354e5c31af7Sopenharmony_ci+
355e5c31af7Sopenharmony_ci  *** code:vertexBufferRangeSize, if [eq]#code:bindingStride == 0#; or
356e5c31af7Sopenharmony_ci  *** [eq]#(code:vertexBufferRangeSize - (code:vertexBufferRangeSize %
357e5c31af7Sopenharmony_ci      code:bindingStride))#
358e5c31af7Sopenharmony_ci+
359e5c31af7Sopenharmony_ciwhere code:vertexBufferRangeSize is the byte size of the memory range bound
360e5c31af7Sopenharmony_cito the vertex buffer binding and code:bindingStride is the byte stride of
361e5c31af7Sopenharmony_cithe corresponding vertex input binding.
362e5c31af7Sopenharmony_ciFurther, if any vertex input attribute using a specific vertex input binding
363e5c31af7Sopenharmony_ciis out of bounds, then all vertex input attributes using that vertex input
364e5c31af7Sopenharmony_cibinding for that vertex shader invocation are considered out of bounds.
365e5c31af7Sopenharmony_ci  *** If a vertex input attribute is out of bounds, it will be assigned one
366e5c31af7Sopenharmony_ci      of the following values:
367e5c31af7Sopenharmony_ci  **** Values from anywhere within the memory range(s) bound to the buffer,
368e5c31af7Sopenharmony_ci       converted according to the format of the attribute.
369e5c31af7Sopenharmony_ci  **** Zero values, format converted according to the format of the
370e5c31af7Sopenharmony_ci       attribute.
371e5c31af7Sopenharmony_ci  **** Zero values, or [eq]#(0,0,0,x)# vectors, as described above.
372e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
373e5c31af7Sopenharmony_ci  ** If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is
374e5c31af7Sopenharmony_ci     enabled, vertex input attributes are considered out of bounds if the
375e5c31af7Sopenharmony_ci     offset of the attribute in the bound vertex buffer range plus the size
376e5c31af7Sopenharmony_ci     of the attribute is greater than the byte size of the memory range
377e5c31af7Sopenharmony_ci     bound to the vertex buffer binding.
378e5c31af7Sopenharmony_ci  *** If a vertex input attribute is out of bounds, the
379e5c31af7Sopenharmony_ci      <<fxvertex-input-extraction,raw data>> extracted are zero values, and
380e5c31af7Sopenharmony_ci      missing G, B, or A components are <<fxvertex-input-extraction,filled
381e5c31af7Sopenharmony_ci      with [eq]#(0,0,1)#>>.
382e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
383e5c31af7Sopenharmony_ci  ** If pname:robustBufferAccess is not enabled, applications must: not
384e5c31af7Sopenharmony_ci     perform out of bounds accesses
385e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_robustness[]
386e5c31af7Sopenharmony_ci     except under the conditions enabled by the
387e5c31af7Sopenharmony_ci     <<features-pipelineRobustness, pname:pipelineRobustness>> feature
388e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_robustness[]
389e5c31af7Sopenharmony_ci     .
390e5c31af7Sopenharmony_ci  * [[features-fullDrawIndexUint32]] pname:fullDrawIndexUint32 specifies the
391e5c31af7Sopenharmony_ci    full 32-bit range of indices is supported for indexed draw calls when
392e5c31af7Sopenharmony_ci    using a elink:VkIndexType of ename:VK_INDEX_TYPE_UINT32.
393e5c31af7Sopenharmony_ci    pname:maxDrawIndexedIndexValue is the maximum index value that may: be
394e5c31af7Sopenharmony_ci    used (aside from the primitive restart index, which is always 2^32^-1
395e5c31af7Sopenharmony_ci    when the elink:VkIndexType is ename:VK_INDEX_TYPE_UINT32).
396e5c31af7Sopenharmony_ci    If this feature is supported, pname:maxDrawIndexedIndexValue must: be
397e5c31af7Sopenharmony_ci    2^32^-1; otherwise it must: be no smaller than 2^24^-1.
398e5c31af7Sopenharmony_ci    See <<limits-maxDrawIndexedIndexValue, pname:maxDrawIndexedIndexValue>>.
399e5c31af7Sopenharmony_ci  * [[features-imageCubeArray]] pname:imageCubeArray specifies whether image
400e5c31af7Sopenharmony_ci    views with a elink:VkImageViewType of
401e5c31af7Sopenharmony_ci    ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY can: be created, and that the
402e5c31af7Sopenharmony_ci    corresponding code:SampledCubeArray and code:ImageCubeArray SPIR-V
403e5c31af7Sopenharmony_ci    capabilities can: be used in shader code.
404e5c31af7Sopenharmony_ci  * [[features-independentBlend]] pname:independentBlend specifies whether
405e5c31af7Sopenharmony_ci    the sname:VkPipelineColorBlendAttachmentState settings are controlled
406e5c31af7Sopenharmony_ci    independently per-attachment.
407e5c31af7Sopenharmony_ci    If this feature is not enabled, the
408e5c31af7Sopenharmony_ci    sname:VkPipelineColorBlendAttachmentState settings for all color
409e5c31af7Sopenharmony_ci    attachments must: be identical.
410e5c31af7Sopenharmony_ci    Otherwise, a different sname:VkPipelineColorBlendAttachmentState can: be
411e5c31af7Sopenharmony_ci    provided for each bound color attachment.
412e5c31af7Sopenharmony_ci  * [[features-geometryShader]] pname:geometryShader specifies whether
413e5c31af7Sopenharmony_ci    geometry shaders are supported.
414e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_SHADER_STAGE_GEOMETRY_BIT
415e5c31af7Sopenharmony_ci    and ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT enum values must: not be
416e5c31af7Sopenharmony_ci    used.
417e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
418e5c31af7Sopenharmony_ci    code:Geometry capability.
419e5c31af7Sopenharmony_ci  * [[features-tessellationShader]] pname:tessellationShader specifies
420e5c31af7Sopenharmony_ci    whether tessellation control and evaluation shaders are supported.
421e5c31af7Sopenharmony_ci    If this feature is not enabled, the
422e5c31af7Sopenharmony_ci    ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
423e5c31af7Sopenharmony_ci    ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
424e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
425e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, and
426e5c31af7Sopenharmony_ci    ename:VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO enum
427e5c31af7Sopenharmony_ci    values must: not be used.
428e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
429e5c31af7Sopenharmony_ci    code:Tessellation capability.
430e5c31af7Sopenharmony_ci  * [[features-sampleRateShading]] pname:sampleRateShading specifies whether
431e5c31af7Sopenharmony_ci    <<primsrast-sampleshading,Sample Shading>> and multisample interpolation
432e5c31af7Sopenharmony_ci    are supported.
433e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:sampleShadingEnable member of
434e5c31af7Sopenharmony_ci    the slink:VkPipelineMultisampleStateCreateInfo structure must: be set to
435e5c31af7Sopenharmony_ci    ename:VK_FALSE and the pname:minSampleShading member is ignored.
436e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
437e5c31af7Sopenharmony_ci    code:SampleRateShading capability.
438e5c31af7Sopenharmony_ci  * [[features-dualSrcBlend]] pname:dualSrcBlend specifies whether blend
439e5c31af7Sopenharmony_ci    operations which take two sources are supported.
440e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_BLEND_FACTOR_SRC1_COLOR,
441e5c31af7Sopenharmony_ci    ename:VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
442e5c31af7Sopenharmony_ci    ename:VK_BLEND_FACTOR_SRC1_ALPHA, and
443e5c31af7Sopenharmony_ci    ename:VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA enum values must: not be used
444e5c31af7Sopenharmony_ci    as source or destination blending factors.
445e5c31af7Sopenharmony_ci    See <<framebuffer-dsb>>.
446e5c31af7Sopenharmony_ci  * [[features-logicOp]] pname:logicOp specifies whether logic operations
447e5c31af7Sopenharmony_ci    are supported.
448e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:logicOpEnable member of the
449e5c31af7Sopenharmony_ci    slink:VkPipelineColorBlendStateCreateInfo structure must: be set to
450e5c31af7Sopenharmony_ci    ename:VK_FALSE, and the pname:logicOp member is ignored.
451e5c31af7Sopenharmony_ci  * [[features-multiDrawIndirect]] pname:multiDrawIndirect specifies whether
452e5c31af7Sopenharmony_ci    multiple draw indirect is supported.
453e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:drawCount parameter to the
454e5c31af7Sopenharmony_ci    fname:vkCmdDrawIndirect and fname:vkCmdDrawIndexedIndirect commands
455e5c31af7Sopenharmony_ci    must: be 0 or 1.
456e5c31af7Sopenharmony_ci    The pname:maxDrawIndirectCount member of the
457e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceLimits structure must: also be 1 if this feature
458e5c31af7Sopenharmony_ci    is not supported.
459e5c31af7Sopenharmony_ci    See <<limits-maxDrawIndirectCount, pname:maxDrawIndirectCount>>.
460e5c31af7Sopenharmony_ci  * [[features-drawIndirectFirstInstance]] pname:drawIndirectFirstInstance
461e5c31af7Sopenharmony_ci    specifies whether indirect drawing calls support the pname:firstInstance
462e5c31af7Sopenharmony_ci    parameter.
463e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:firstInstance member of all
464e5c31af7Sopenharmony_ci    sname:VkDrawIndirectCommand and sname:VkDrawIndexedIndirectCommand
465e5c31af7Sopenharmony_ci    structures that are provided to the fname:vkCmdDrawIndirect and
466e5c31af7Sopenharmony_ci    fname:vkCmdDrawIndexedIndirect commands must: be 0.
467e5c31af7Sopenharmony_ci  * [[features-depthClamp]] pname:depthClamp specifies whether depth
468e5c31af7Sopenharmony_ci    clamping is supported.
469e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:depthClampEnable member of the
470e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo structure must: be set to
471e5c31af7Sopenharmony_ci    ename:VK_FALSE.
472e5c31af7Sopenharmony_ci    Otherwise, setting pname:depthClampEnable to ename:VK_TRUE will enable
473e5c31af7Sopenharmony_ci    depth clamping.
474e5c31af7Sopenharmony_ci  * [[features-depthBiasClamp]] pname:depthBiasClamp specifies whether depth
475e5c31af7Sopenharmony_ci    bias clamping is supported.
476e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:depthBiasClamp member of the
477e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo structure must: be set to
478e5c31af7Sopenharmony_ci    0.0 unless the ename:VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state is
479e5c31af7Sopenharmony_ci    enabled, and the pname:depthBiasClamp parameter to
480e5c31af7Sopenharmony_ci    fname:vkCmdSetDepthBias must: be set to 0.0.
481e5c31af7Sopenharmony_ci  * [[features-fillModeNonSolid]] pname:fillModeNonSolid specifies whether
482e5c31af7Sopenharmony_ci    point and wireframe fill modes are supported.
483e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_POLYGON_MODE_POINT and
484e5c31af7Sopenharmony_ci    ename:VK_POLYGON_MODE_LINE enum values must: not be used.
485e5c31af7Sopenharmony_ci  * [[features-depthBounds]] pname:depthBounds specifies whether depth
486e5c31af7Sopenharmony_ci    bounds tests are supported.
487e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:depthBoundsTestEnable member
488e5c31af7Sopenharmony_ci    of the slink:VkPipelineDepthStencilStateCreateInfo structure must: be
489e5c31af7Sopenharmony_ci    set to ename:VK_FALSE.
490e5c31af7Sopenharmony_ci    When pname:depthBoundsTestEnable is set to ename:VK_FALSE, the
491e5c31af7Sopenharmony_ci    pname:minDepthBounds and pname:maxDepthBounds members of the
492e5c31af7Sopenharmony_ci    slink:VkPipelineDepthStencilStateCreateInfo structure are ignored.
493e5c31af7Sopenharmony_ci  * [[features-wideLines]] pname:wideLines specifies whether lines with
494e5c31af7Sopenharmony_ci    width other than 1.0 are supported.
495e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:lineWidth member of the
496e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo structure must: be set to
497e5c31af7Sopenharmony_ci    1.0 unless the ename:VK_DYNAMIC_STATE_LINE_WIDTH dynamic state is
498e5c31af7Sopenharmony_ci    enabled, and the pname:lineWidth parameter to fname:vkCmdSetLineWidth
499e5c31af7Sopenharmony_ci    must: be set to 1.0.
500e5c31af7Sopenharmony_ci    When this feature is supported, the range and granularity of supported
501e5c31af7Sopenharmony_ci    line widths are indicated by the pname:lineWidthRange and
502e5c31af7Sopenharmony_ci    pname:lineWidthGranularity members of the sname:VkPhysicalDeviceLimits
503e5c31af7Sopenharmony_ci    structure, respectively.
504e5c31af7Sopenharmony_ci  * [[features-largePoints]] pname:largePoints specifies whether points with
505e5c31af7Sopenharmony_ci    size greater than 1.0 are supported.
506e5c31af7Sopenharmony_ci    If this feature is not enabled, only a point size of 1.0 written by a
507e5c31af7Sopenharmony_ci    shader is supported.
508e5c31af7Sopenharmony_ci    The range and granularity of supported point sizes are indicated by the
509e5c31af7Sopenharmony_ci    pname:pointSizeRange and pname:pointSizeGranularity members of the
510e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceLimits structure, respectively.
511e5c31af7Sopenharmony_ci  * [[features-alphaToOne]] pname:alphaToOne specifies whether the
512e5c31af7Sopenharmony_ci    implementation is able to replace the alpha value of the fragment shader
513e5c31af7Sopenharmony_ci    color output in the <<fragops-covg, Multisample Coverage>> fragment
514e5c31af7Sopenharmony_ci    operation.
515e5c31af7Sopenharmony_ci    If this feature is not enabled, then the pname:alphaToOneEnable member
516e5c31af7Sopenharmony_ci    of the slink:VkPipelineMultisampleStateCreateInfo structure must: be set
517e5c31af7Sopenharmony_ci    to ename:VK_FALSE.
518e5c31af7Sopenharmony_ci    Otherwise setting pname:alphaToOneEnable to ename:VK_TRUE will enable
519e5c31af7Sopenharmony_ci    alpha-to-one behavior.
520e5c31af7Sopenharmony_ci  * [[features-multiViewport]] pname:multiViewport specifies whether more
521e5c31af7Sopenharmony_ci    than one viewport is supported.
522e5c31af7Sopenharmony_ci    If this feature is not enabled:
523e5c31af7Sopenharmony_ci  ** The pname:viewportCount and pname:scissorCount members of the
524e5c31af7Sopenharmony_ci     slink:VkPipelineViewportStateCreateInfo structure must: be set to 1.
525e5c31af7Sopenharmony_ci  ** The pname:firstViewport and pname:viewportCount parameters to the
526e5c31af7Sopenharmony_ci     fname:vkCmdSetViewport command must: be set to 0 and 1, respectively.
527e5c31af7Sopenharmony_ci  ** The pname:firstScissor and pname:scissorCount parameters to the
528e5c31af7Sopenharmony_ci     fname:vkCmdSetScissor command must: be set to 0 and 1, respectively.
529e5c31af7Sopenharmony_ciifdef::VK_NV_scissor_exclusive[]
530e5c31af7Sopenharmony_ci  ** The pname:exclusiveScissorCount member of the
531e5c31af7Sopenharmony_ci     slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV structure
532e5c31af7Sopenharmony_ci     must: be set to 0 or 1.
533e5c31af7Sopenharmony_ci  ** The pname:firstExclusiveScissor and pname:exclusiveScissorCount
534e5c31af7Sopenharmony_ci     parameters to the fname:vkCmdSetExclusiveScissorNV command must: be set
535e5c31af7Sopenharmony_ci     to 0 and 1, respectively.
536e5c31af7Sopenharmony_ciendif::VK_NV_scissor_exclusive[]
537e5c31af7Sopenharmony_ci  * [[features-samplerAnisotropy]] pname:samplerAnisotropy specifies whether
538e5c31af7Sopenharmony_ci    anisotropic filtering is supported.
539e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:anisotropyEnable member of the
540e5c31af7Sopenharmony_ci    slink:VkSamplerCreateInfo structure must: be ename:VK_FALSE.
541e5c31af7Sopenharmony_ci  * [[features-textureCompressionETC2]] pname:textureCompressionETC2
542e5c31af7Sopenharmony_ci    specifies whether all of the ETC2 and EAC compressed texture formats are
543e5c31af7Sopenharmony_ci    supported.
544e5c31af7Sopenharmony_ci    If this feature is enabled, then the
545e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
546e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
547e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
548e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
549e5c31af7Sopenharmony_ci+
550e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
551e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
552e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
553e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
554e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
555e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
556e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_EAC_R11_UNORM_BLOCK
557e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_EAC_R11_SNORM_BLOCK
558e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_EAC_R11G11_UNORM_BLOCK
559e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_EAC_R11G11_SNORM_BLOCK
560e5c31af7Sopenharmony_ci+
561e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled,
562e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
563e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
564e5c31af7Sopenharmony_cisupported properties of individual formats as normal.
565e5c31af7Sopenharmony_ci
566e5c31af7Sopenharmony_ci  * [[features-textureCompressionASTC_LDR]] pname:textureCompressionASTC_LDR
567e5c31af7Sopenharmony_ci    specifies whether all of the ASTC LDR compressed texture formats are
568e5c31af7Sopenharmony_ci    supported.
569e5c31af7Sopenharmony_ci    If this feature is enabled, then the
570e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
571e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
572e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
573e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
574e5c31af7Sopenharmony_ci+
575e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK
576e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK
577e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK
578e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK
579e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK
580e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK
581e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK
582e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK
583e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK
584e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK
585e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK
586e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK
587e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK
588e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK
589e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK
590e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK
591e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK
592e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK
593e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK
594e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK
595e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK
596e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK
597e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK
598e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK
599e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK
600e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK
601e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK
602e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK
603e5c31af7Sopenharmony_ci+
604e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled,
605e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
606e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
607e5c31af7Sopenharmony_cisupported properties of individual formats as normal.
608e5c31af7Sopenharmony_ci
609e5c31af7Sopenharmony_ci  * [[features-textureCompressionBC]] pname:textureCompressionBC specifies
610e5c31af7Sopenharmony_ci    whether all of the BC compressed texture formats are supported.
611e5c31af7Sopenharmony_ci    If this feature is enabled, then the
612e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
613e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
614e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
615e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
616e5c31af7Sopenharmony_ci+
617e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK
618e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK
619e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK
620e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK
621e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC2_UNORM_BLOCK
622e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC2_SRGB_BLOCK
623e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC3_UNORM_BLOCK
624e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC3_SRGB_BLOCK
625e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC4_UNORM_BLOCK
626e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC4_SNORM_BLOCK
627e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC5_UNORM_BLOCK
628e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC5_SNORM_BLOCK
629e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC6H_UFLOAT_BLOCK
630e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC6H_SFLOAT_BLOCK
631e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC7_UNORM_BLOCK
632e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC7_SRGB_BLOCK
633e5c31af7Sopenharmony_ci+
634e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled,
635e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
636e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
637e5c31af7Sopenharmony_cisupported properties of individual formats as normal.
638e5c31af7Sopenharmony_ci
639e5c31af7Sopenharmony_ci  * [[features-occlusionQueryPrecise]] pname:occlusionQueryPrecise specifies
640e5c31af7Sopenharmony_ci    whether occlusion queries returning actual sample counts are supported.
641e5c31af7Sopenharmony_ci    Occlusion queries are created in a sname:VkQueryPool by specifying the
642e5c31af7Sopenharmony_ci    pname:queryType of ename:VK_QUERY_TYPE_OCCLUSION in the
643e5c31af7Sopenharmony_ci    slink:VkQueryPoolCreateInfo structure which is passed to
644e5c31af7Sopenharmony_ci    fname:vkCreateQueryPool.
645e5c31af7Sopenharmony_ci    If this feature is enabled, queries of this type can: enable
646e5c31af7Sopenharmony_ci    ename:VK_QUERY_CONTROL_PRECISE_BIT in the pname:flags parameter to
647e5c31af7Sopenharmony_ci    fname:vkCmdBeginQuery.
648e5c31af7Sopenharmony_ci    If this feature is not supported, the implementation supports only
649e5c31af7Sopenharmony_ci    boolean occlusion queries.
650e5c31af7Sopenharmony_ci    When any samples are passed, boolean queries will return a non-zero
651e5c31af7Sopenharmony_ci    result value, otherwise a result value of zero is returned.
652e5c31af7Sopenharmony_ci    When this feature is enabled and ename:VK_QUERY_CONTROL_PRECISE_BIT is
653e5c31af7Sopenharmony_ci    set, occlusion queries will report the actual number of samples passed.
654e5c31af7Sopenharmony_ci  * [[features-pipelineStatisticsQuery]] pname:pipelineStatisticsQuery
655e5c31af7Sopenharmony_ci    specifies whether the pipeline statistics queries are supported.
656e5c31af7Sopenharmony_ci    If this feature is not enabled, queries of type
657e5c31af7Sopenharmony_ci    ename:VK_QUERY_TYPE_PIPELINE_STATISTICS cannot: be created, and none of
658e5c31af7Sopenharmony_ci    the elink:VkQueryPipelineStatisticFlagBits bits can: be set in the
659e5c31af7Sopenharmony_ci    pname:pipelineStatistics member of the slink:VkQueryPoolCreateInfo
660e5c31af7Sopenharmony_ci    structure.
661e5c31af7Sopenharmony_ci  * [[features-vertexPipelineStoresAndAtomics]]
662e5c31af7Sopenharmony_ci    pname:vertexPipelineStoresAndAtomics specifies whether storage buffers
663e5c31af7Sopenharmony_ci    and images support stores and atomic operations in the vertex,
664e5c31af7Sopenharmony_ci    tessellation, and geometry shader stages.
665e5c31af7Sopenharmony_ci    If this feature is not enabled, all storage image, storage texel buffer,
666e5c31af7Sopenharmony_ci    and storage buffer variables used by these stages in shader modules
667e5c31af7Sopenharmony_ci    must: be decorated with the code:NonWritable decoration (or the
668e5c31af7Sopenharmony_ci    code:readonly memory qualifier in GLSL).
669e5c31af7Sopenharmony_ci  * [[features-fragmentStoresAndAtomics]] pname:fragmentStoresAndAtomics
670e5c31af7Sopenharmony_ci    specifies whether storage buffers and images support stores and atomic
671e5c31af7Sopenharmony_ci    operations in the fragment shader stage.
672e5c31af7Sopenharmony_ci    If this feature is not enabled, all storage image, storage texel buffer,
673e5c31af7Sopenharmony_ci    and storage buffer variables used by the fragment stage in shader
674e5c31af7Sopenharmony_ci    modules must: be decorated with the code:NonWritable decoration (or the
675e5c31af7Sopenharmony_ci    code:readonly memory qualifier in GLSL).
676e5c31af7Sopenharmony_ci  * [[features-shaderTessellationAndGeometryPointSize]]
677e5c31af7Sopenharmony_ci    pname:shaderTessellationAndGeometryPointSize specifies whether the
678e5c31af7Sopenharmony_ci    code:PointSize built-in decoration is available in the tessellation
679e5c31af7Sopenharmony_ci    control, tessellation evaluation, and geometry shader stages.
680e5c31af7Sopenharmony_ci    If this feature is not enabled, members decorated with the
681e5c31af7Sopenharmony_ci    code:PointSize built-in decoration must: not be read from or written to
682e5c31af7Sopenharmony_ci    and all points written from a tessellation or geometry shader will have
683e5c31af7Sopenharmony_ci    a size of 1.0.
684e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
685e5c31af7Sopenharmony_ci    code:TessellationPointSize capability for tessellation control and
686e5c31af7Sopenharmony_ci    evaluation shaders, or if the shader modules can: declare the
687e5c31af7Sopenharmony_ci    code:GeometryPointSize capability for geometry shaders.
688e5c31af7Sopenharmony_ci    An implementation supporting this feature must: also support one or both
689e5c31af7Sopenharmony_ci    of the <<features-tessellationShader, pname:tessellationShader>> or
690e5c31af7Sopenharmony_ci    <<features-geometryShader, pname:geometryShader>> features.
691e5c31af7Sopenharmony_ci  * [[features-shaderImageGatherExtended]] pname:shaderImageGatherExtended
692e5c31af7Sopenharmony_ci    specifies whether the extended set of image gather instructions are
693e5c31af7Sopenharmony_ci    available in shader code.
694e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:OpImage*Gather instructions do
695e5c31af7Sopenharmony_ci    not support the code:Offset and code:ConstOffsets operands.
696e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
697e5c31af7Sopenharmony_ci    code:ImageGatherExtended capability.
698e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageExtendedFormats]]
699e5c31af7Sopenharmony_ci    pname:shaderStorageImageExtendedFormats specifies whether all the
700e5c31af7Sopenharmony_ci    "`storage image extended formats`" below are supported; if this feature
701e5c31af7Sopenharmony_ci    is supported, then the ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT must:
702e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
703e5c31af7Sopenharmony_ci+
704e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_SFLOAT
705e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32
706e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_SFLOAT
707e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16B16A16_UNORM
708e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_A2B10G10R10_UNORM_PACK32
709e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_UNORM
710e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8G8_UNORM
711e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_UNORM
712e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8_UNORM
713e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16B16A16_SNORM
714e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_SNORM
715e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8G8_SNORM
716e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_SNORM
717e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8_SNORM
718e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_SINT
719e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8G8_SINT
720e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_SINT
721e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8_SINT
722e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_A2B10G10R10_UINT_PACK32
723e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_UINT
724e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8G8_UINT
725e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_UINT
726e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8_UINT
727e5c31af7Sopenharmony_ci+
728e5c31af7Sopenharmony_ci[NOTE]
729e5c31af7Sopenharmony_ci.Note
730e5c31af7Sopenharmony_ci====
731e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats feature only adds a guarantee of
732e5c31af7Sopenharmony_ciformat support, which is specified for the whole physical device.
733e5c31af7Sopenharmony_ciTherefore enabling or disabling the feature via flink:vkCreateDevice has no
734e5c31af7Sopenharmony_cipractical effect.
735e5c31af7Sopenharmony_ci
736e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not supported,
737e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
738e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
739e5c31af7Sopenharmony_cisupported properties of individual formats, as usual rules allow.
740e5c31af7Sopenharmony_ci
741e5c31af7Sopenharmony_ciename:VK_FORMAT_R32G32_UINT, ename:VK_FORMAT_R32G32_SINT, and
742e5c31af7Sopenharmony_ciename:VK_FORMAT_R32G32_SFLOAT from code:StorageImageExtendedFormats SPIR-V
743e5c31af7Sopenharmony_cicapability, are already covered by core Vulkan
744e5c31af7Sopenharmony_ci<<formats-mandatory-features-32bit,mandatory format support>>.
745e5c31af7Sopenharmony_ci====
746e5c31af7Sopenharmony_ci
747e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageMultisample]]
748e5c31af7Sopenharmony_ci    pname:shaderStorageImageMultisample specifies whether multisampled
749e5c31af7Sopenharmony_ci    storage images are supported.
750e5c31af7Sopenharmony_ci    If this feature is not enabled, images that are created with a
751e5c31af7Sopenharmony_ci    pname:usage that includes ename:VK_IMAGE_USAGE_STORAGE_BIT must: be
752e5c31af7Sopenharmony_ci    created with pname:samples equal to ename:VK_SAMPLE_COUNT_1_BIT.
753e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
754e5c31af7Sopenharmony_ci    code:StorageImageMultisample and code:ImageMSArray capabilities.
755e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageReadWithoutFormat]]
756e5c31af7Sopenharmony_ci    pname:shaderStorageImageReadWithoutFormat specifies whether storage
757e5c31af7Sopenharmony_ci    images and storage texel buffers require a format qualifier to be
758e5c31af7Sopenharmony_ci    specified when reading.
759e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
760e5c31af7Sopenharmony_ci    pname:shaderStorageImageReadWithoutFormat applies only to formats listed
761e5c31af7Sopenharmony_ci    in the <<formats-without-shader-storage-format,storage without format>>
762e5c31af7Sopenharmony_ci    list.
763e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
764e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageWriteWithoutFormat]]
765e5c31af7Sopenharmony_ci    pname:shaderStorageImageWriteWithoutFormat specifies whether storage
766e5c31af7Sopenharmony_ci    images and storage texel buffers require a format qualifier to be
767e5c31af7Sopenharmony_ci    specified when writing.
768e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
769e5c31af7Sopenharmony_ci    pname:shaderStorageImageWriteWithoutFormat applies only to formats
770e5c31af7Sopenharmony_ci    listed in the <<formats-without-shader-storage-format,storage without
771e5c31af7Sopenharmony_ci    format>> list.
772e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[]
773e5c31af7Sopenharmony_ci  * [[features-shaderUniformBufferArrayDynamicIndexing]]
774e5c31af7Sopenharmony_ci    pname:shaderUniformBufferArrayDynamicIndexing specifies whether arrays
775e5c31af7Sopenharmony_ci    of uniform buffers can: be indexed by _dynamically uniform_ integer
776e5c31af7Sopenharmony_ci    expressions in shader code.
777e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
778e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
779e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must: be indexed only by
780e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
781e5c31af7Sopenharmony_ci    code.
782e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
783e5c31af7Sopenharmony_ci    code:UniformBufferArrayDynamicIndexing capability.
784e5c31af7Sopenharmony_ci  * [[features-shaderSampledImageArrayDynamicIndexing]]
785e5c31af7Sopenharmony_ci    pname:shaderSampledImageArrayDynamicIndexing specifies whether arrays of
786e5c31af7Sopenharmony_ci    samplers or sampled images can: be indexed by dynamically uniform
787e5c31af7Sopenharmony_ci    integer expressions in shader code.
788e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
789e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLER,
790e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or
791e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must: be indexed only by constant
792e5c31af7Sopenharmony_ci    integral expressions when aggregated into arrays in shader code.
793e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
794e5c31af7Sopenharmony_ci    code:SampledImageArrayDynamicIndexing capability.
795e5c31af7Sopenharmony_ci  * [[features-shaderStorageBufferArrayDynamicIndexing]]
796e5c31af7Sopenharmony_ci    pname:shaderStorageBufferArrayDynamicIndexing specifies whether arrays
797e5c31af7Sopenharmony_ci    of storage buffers can: be indexed by dynamically uniform integer
798e5c31af7Sopenharmony_ci    expressions in shader code.
799e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
800e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
801e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must: be indexed only by
802e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
803e5c31af7Sopenharmony_ci    code.
804e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
805e5c31af7Sopenharmony_ci    code:StorageBufferArrayDynamicIndexing capability.
806e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageArrayDynamicIndexing]]
807e5c31af7Sopenharmony_ci    pname:shaderStorageImageArrayDynamicIndexing specifies whether arrays of
808e5c31af7Sopenharmony_ci    storage images can: be indexed by dynamically uniform integer
809e5c31af7Sopenharmony_ci    expressions in shader code.
810e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
811e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must: be indexed only by constant
812e5c31af7Sopenharmony_ci    integral expressions when aggregated into arrays in shader code.
813e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
814e5c31af7Sopenharmony_ci    code:StorageImageArrayDynamicIndexing capability.
815e5c31af7Sopenharmony_ci  * [[features-shaderClipDistance]] pname:shaderClipDistance specifies
816e5c31af7Sopenharmony_ci    whether clip distances are supported in shader code.
817e5c31af7Sopenharmony_ci    If this feature is not enabled, any members decorated with the
818e5c31af7Sopenharmony_ci    code:ClipDistance built-in decoration must: not be read from or written
819e5c31af7Sopenharmony_ci    to in shader modules.
820e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
821e5c31af7Sopenharmony_ci    code:ClipDistance capability.
822e5c31af7Sopenharmony_ci  * [[features-shaderCullDistance]] pname:shaderCullDistance specifies
823e5c31af7Sopenharmony_ci    whether cull distances are supported in shader code.
824e5c31af7Sopenharmony_ci    If this feature is not enabled, any members decorated with the
825e5c31af7Sopenharmony_ci    code:CullDistance built-in decoration must: not be read from or written
826e5c31af7Sopenharmony_ci    to in shader modules.
827e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
828e5c31af7Sopenharmony_ci    code:CullDistance capability.
829e5c31af7Sopenharmony_ci  * [[features-shaderFloat64]] pname:shaderFloat64 specifies whether 64-bit
830e5c31af7Sopenharmony_ci    floats (doubles) are supported in shader code.
831e5c31af7Sopenharmony_ci    If this feature is not enabled, 64-bit floating-point types must: not be
832e5c31af7Sopenharmony_ci    used in shader code.
833e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the code:Float64
834e5c31af7Sopenharmony_ci    capability.
835e5c31af7Sopenharmony_ci    Declaring and using 64-bit floats is enabled for all storage classes
836e5c31af7Sopenharmony_ci    that SPIR-V allows with the code:Float64 capability.
837e5c31af7Sopenharmony_ci  * [[features-shaderInt64]] pname:shaderInt64 specifies whether 64-bit
838e5c31af7Sopenharmony_ci    integers (signed and unsigned) are supported in shader code.
839e5c31af7Sopenharmony_ci    If this feature is not enabled, 64-bit integer types must: not be used
840e5c31af7Sopenharmony_ci    in shader code.
841e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the code:Int64
842e5c31af7Sopenharmony_ci    capability.
843e5c31af7Sopenharmony_ci    Declaring and using 64-bit integers is enabled for all storage classes
844e5c31af7Sopenharmony_ci    that SPIR-V allows with the code:Int64 capability.
845e5c31af7Sopenharmony_ci  * [[features-shaderInt16]] pname:shaderInt16 specifies whether 16-bit
846e5c31af7Sopenharmony_ci    integers (signed and unsigned) are supported in shader code.
847e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer types must: not be used
848e5c31af7Sopenharmony_ci    in shader code.
849e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the code:Int16
850e5c31af7Sopenharmony_ci    capability.
851e5c31af7Sopenharmony_ci    However, this only enables a subset of the storage classes that SPIR-V
852e5c31af7Sopenharmony_ci    allows for the code:Int16 SPIR-V capability: Declaring and using 16-bit
853e5c31af7Sopenharmony_ci    integers in the code:Private,
854e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[]
855e5c31af7Sopenharmony_ci    code:Workgroup,
856e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
857e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
858e5c31af7Sopenharmony_ci    code:Workgroup (for non-Block variables),
859e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
860e5c31af7Sopenharmony_ci    and code:Function storage classes is enabled, while declaring them in
861e5c31af7Sopenharmony_ci    the interface storage classes (e.g., code:UniformConstant, code:Uniform,
862e5c31af7Sopenharmony_ci    code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is
863e5c31af7Sopenharmony_ci    not enabled.
864e5c31af7Sopenharmony_ci  * [[features-shaderResourceResidency]] pname:shaderResourceResidency
865e5c31af7Sopenharmony_ci    specifies whether image operations that return resource residency
866e5c31af7Sopenharmony_ci    information are supported in shader code.
867e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:OpImageSparse* instructions
868e5c31af7Sopenharmony_ci    must: not be used in shader code.
869e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
870e5c31af7Sopenharmony_ci    code:SparseResidency capability.
871e5c31af7Sopenharmony_ci    The feature requires at least one of the ptext:sparseResidency* features
872e5c31af7Sopenharmony_ci    to be supported.
873e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
874e5c31af7Sopenharmony_ci  * [[features-shaderResourceMinLod]] pname:shaderResourceMinLod specifies
875e5c31af7Sopenharmony_ci    whether image operations specifying the minimum resource LOD are
876e5c31af7Sopenharmony_ci    supported in shader code.
877e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:MinLod image operand must: not
878e5c31af7Sopenharmony_ci    be used in shader code.
879e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the code:MinLod
880e5c31af7Sopenharmony_ci    capability.
881e5c31af7Sopenharmony_ci  * [[features-sparseBinding]] pname:sparseBinding specifies whether
882e5c31af7Sopenharmony_ci    resource memory can: be managed at opaque sparse block level instead of
883e5c31af7Sopenharmony_ci    at the object level.
884e5c31af7Sopenharmony_ci    If this feature is not enabled, resource memory must: be bound only on a
885e5c31af7Sopenharmony_ci    per-object basis using the fname:vkBindBufferMemory and
886e5c31af7Sopenharmony_ci    fname:vkBindImageMemory commands.
887e5c31af7Sopenharmony_ci    In this case, buffers and images must: not be created with
888e5c31af7Sopenharmony_ci    ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT and
889e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in the pname:flags member
890e5c31af7Sopenharmony_ci    of the slink:VkBufferCreateInfo and slink:VkImageCreateInfo structures,
891e5c31af7Sopenharmony_ci    respectively.
892e5c31af7Sopenharmony_ci    Otherwise resource memory can: be managed as described in
893e5c31af7Sopenharmony_ci    <<sparsememory-sparseresourcefeatures,Sparse Resource Features>>.
894e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
895e5c31af7Sopenharmony_ci  * [[features-sparseResidencyBuffer]] pname:sparseResidencyBuffer specifies
896e5c31af7Sopenharmony_ci    whether the device can: access partially resident buffers.
897e5c31af7Sopenharmony_ci    If this feature is not enabled, buffers must: not be created with
898e5c31af7Sopenharmony_ci    ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags
899e5c31af7Sopenharmony_ci    member of the slink:VkBufferCreateInfo structure.
900e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
901e5c31af7Sopenharmony_ci  * [[features-sparseResidencyImage2D]] pname:sparseResidencyImage2D
902e5c31af7Sopenharmony_ci    specifies whether the device can: access partially resident 2D images
903e5c31af7Sopenharmony_ci    with 1 sample per pixel.
904e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
905e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
906e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_1_BIT must: not be created with
907e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
908e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
909e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
910e5c31af7Sopenharmony_ci  * [[features-sparseResidencyImage3D]] pname:sparseResidencyImage3D
911e5c31af7Sopenharmony_ci    specifies whether the device can: access partially resident 3D images.
912e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
913e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_3D must: not be created with
914e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
915e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
916e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
917e5c31af7Sopenharmony_ci  * [[features-sparseResidency2Samples]] pname:sparseResidency2Samples
918e5c31af7Sopenharmony_ci    specifies whether the physical device can: access partially resident 2D
919e5c31af7Sopenharmony_ci    images with 2 samples per pixel.
920e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
921e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
922e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_2_BIT must: not be created with
923e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
924e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
925e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
926e5c31af7Sopenharmony_ci  * [[features-sparseResidency4Samples]] pname:sparseResidency4Samples
927e5c31af7Sopenharmony_ci    specifies whether the physical device can: access partially resident 2D
928e5c31af7Sopenharmony_ci    images with 4 samples per pixel.
929e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
930e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
931e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_4_BIT must: not be created with
932e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
933e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
934e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
935e5c31af7Sopenharmony_ci  * [[features-sparseResidency8Samples]] pname:sparseResidency8Samples
936e5c31af7Sopenharmony_ci    specifies whether the physical device can: access partially resident 2D
937e5c31af7Sopenharmony_ci    images with 8 samples per pixel.
938e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
939e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
940e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_8_BIT must: not be created with
941e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
942e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
943e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
944e5c31af7Sopenharmony_ci  * [[features-sparseResidency16Samples]] pname:sparseResidency16Samples
945e5c31af7Sopenharmony_ci    specifies whether the physical device can: access partially resident 2D
946e5c31af7Sopenharmony_ci    images with 16 samples per pixel.
947e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
948e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
949e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_16_BIT must: not be created with
950e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
951e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
952e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
953e5c31af7Sopenharmony_ci  * [[features-sparseResidencyAliased]] pname:sparseResidencyAliased
954e5c31af7Sopenharmony_ci    specifies whether the physical device can: correctly access data aliased
955e5c31af7Sopenharmony_ci    into multiple locations.
956e5c31af7Sopenharmony_ci    If this feature is not enabled, the
957e5c31af7Sopenharmony_ci    ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT and
958e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT enum values must: not be used
959e5c31af7Sopenharmony_ci    in pname:flags members of the slink:VkBufferCreateInfo and
960e5c31af7Sopenharmony_ci    slink:VkImageCreateInfo structures, respectively.
961e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.]
962e5c31af7Sopenharmony_ci  * [[features-variableMultisampleRate]] pname:variableMultisampleRate
963e5c31af7Sopenharmony_ci    specifies whether all pipelines that will be bound to a command buffer
964e5c31af7Sopenharmony_ci    during a <<renderpass-noattachments, subpass which uses no attachments>>
965e5c31af7Sopenharmony_ci    must: have the same value for
966e5c31af7Sopenharmony_ci    slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples.
967e5c31af7Sopenharmony_ci    If set to ename:VK_TRUE, the implementation supports variable
968e5c31af7Sopenharmony_ci    multisample rates in a subpass which uses no attachments.
969e5c31af7Sopenharmony_ci    If set to ename:VK_FALSE, then all pipelines bound in such a subpass
970e5c31af7Sopenharmony_ci    must: have the same multisample rate.
971e5c31af7Sopenharmony_ci    This has no effect in situations where a subpass uses any attachments.
972e5c31af7Sopenharmony_ci  * [[features-inheritedQueries]] pname:inheritedQueries specifies whether a
973e5c31af7Sopenharmony_ci    secondary command buffer may: be executed while a query is active.
974e5c31af7Sopenharmony_ci
975e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
976e5c31af7Sopenharmony_ciifdef::hidden[]
977e5c31af7Sopenharmony_ci// tag::scdeviation[]
978e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:shaderResourceResidency must: be
979e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
980e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseBinding must: be reported as
981e5c31af7Sopenharmony_ci    ename:VK_FALSE <<SCID-8>>.
982e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseResidencyBuffer must: be
983e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
984e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseResidencyImage2D must: be
985e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
986e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseResidencyImage3D must: be
987e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
988e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseResidency2Samples must: be
989e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
990e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseResidency4Samples must: be
991e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
992e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseResidency8Samples must: be
993e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
994e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseResidency16Samples must: be
995e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
996e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceFeatures::pname:sparseResidencyAliased must: be
997e5c31af7Sopenharmony_ci    reported as ename:VK_FALSE <<SCID-8>>.
998e5c31af7Sopenharmony_ci// end::scdeviation[]
999e5c31af7Sopenharmony_ciendif::hidden[]
1000e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
1001e5c31af7Sopenharmony_ci
1002e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFeatures.adoc[]
1003e5c31af7Sopenharmony_ci--
1004e5c31af7Sopenharmony_ci
1005e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
1006e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan11Features',desc='Structure describing the Vulkan 1.1 features that can be supported by an implementation',type='structs']
1007e5c31af7Sopenharmony_ci--
1008e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan11Features structure is defined as:
1009e5c31af7Sopenharmony_ci
1010e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan11Features.adoc[]
1011e5c31af7Sopenharmony_ci
1012e5c31af7Sopenharmony_ciThis structure describes the following features:
1013e5c31af7Sopenharmony_ci
1014e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1015e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1016e5c31af7Sopenharmony_ci    structure.
1017e5c31af7Sopenharmony_ci
1018e5c31af7Sopenharmony_ci:anchor-prefix:
1019e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_16bit_storage-features]
1020e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_multiview-features]
1021e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_variable_pointers-features]
1022e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_protected_memory-features]
1023e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_sampler_ycbcr_conversion-features]
1024e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_draw_parameters-features]
1025e5c31af7Sopenharmony_ci
1026e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan11Features
1027e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1028e5c31af7Sopenharmony_ci
1029e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan11Features.adoc[]
1030e5c31af7Sopenharmony_ci--
1031e5c31af7Sopenharmony_ci
1032e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan12Features',desc='Structure describing the Vulkan 1.2 features that can be supported by an implementation',type='structs']
1033e5c31af7Sopenharmony_ci--
1034e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan12Features structure is defined as:
1035e5c31af7Sopenharmony_ci
1036e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan12Features.adoc[]
1037e5c31af7Sopenharmony_ci
1038e5c31af7Sopenharmony_ciThis structure describes the following features:
1039e5c31af7Sopenharmony_ci
1040e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1041e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1042e5c31af7Sopenharmony_ci    structure.
1043e5c31af7Sopenharmony_ci
1044e5c31af7Sopenharmony_ci:anchor-prefix:
1045e5c31af7Sopenharmony_ci  * [[features-samplerMirrorClampToEdge]] pname:samplerMirrorClampToEdge
1046e5c31af7Sopenharmony_ci    indicates whether the implementation supports the
1047e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode.
1048e5c31af7Sopenharmony_ci    If this feature is not enabled, the
1049e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode
1050e5c31af7Sopenharmony_ci    must: not be used.
1051e5c31af7Sopenharmony_ci  * [[features-drawIndirectCount]] pname:drawIndirectCount indicates whether
1052e5c31af7Sopenharmony_ci    the implementation supports the flink:vkCmdDrawIndirectCount and
1053e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndexedIndirectCount functions.
1054e5c31af7Sopenharmony_ci    If this feature is not enabled, these functions must: not be used.
1055e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_8bit_storage-features]
1056e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_atomic_int64-features]
1057e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_float16_int8-features]
1058e5c31af7Sopenharmony_ci  * [[features-descriptorIndexing]] pname:descriptorIndexing indicates
1059e5c31af7Sopenharmony_ci    whether the implementation supports the minimum set of descriptor
1060e5c31af7Sopenharmony_ci    indexing features as described in the <<features-requirements, Feature
1061e5c31af7Sopenharmony_ci    Requirements>> section.
1062e5c31af7Sopenharmony_ci    Enabling the pname:descriptorIndexing member when flink:vkCreateDevice
1063e5c31af7Sopenharmony_ci    is called does not imply the other minimum descriptor indexing features
1064e5c31af7Sopenharmony_ci    are also enabled.
1065e5c31af7Sopenharmony_ci    Those other descriptor indexing features must: be enabled individually
1066e5c31af7Sopenharmony_ci    as needed by the application.
1067e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_descriptor_indexing-features]
1068e5c31af7Sopenharmony_ci  * [[features-samplerFilterMinmax]] pname:samplerFilterMinmax indicates
1069e5c31af7Sopenharmony_ci    whether the implementation supports a minimum set of required formats
1070e5c31af7Sopenharmony_ci    supporting min/max filtering as defined by the
1071e5c31af7Sopenharmony_ci    <<limits-filterMinmaxSingleComponentFormats-minimum-requirements,
1072e5c31af7Sopenharmony_ci    pname:filterMinmaxSingleComponentFormats>> property minimum
1073e5c31af7Sopenharmony_ci    requirements.
1074e5c31af7Sopenharmony_ci    If this feature is not enabled, then
1075e5c31af7Sopenharmony_ci    slink:VkSamplerReductionModeCreateInfo must: only use
1076e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE.
1077e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_scalar_block_layout-features]
1078e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_imageless_framebuffer-features]
1079e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_uniform_buffer_standard_layout-features]
1080e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_subgroup_extended_types-features]
1081e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_separate_depth_stencil_layouts-features]
1082e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_host_query_reset-features]
1083e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_timeline_semaphore-features]
1084e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_buffer_device_address-features]
1085e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_vulkan_memory_model-features]
1086e5c31af7Sopenharmony_ci  * [[features-shaderOutputViewportIndex]] pname:shaderOutputViewportIndex
1087e5c31af7Sopenharmony_ci    indicates whether the implementation supports the
1088e5c31af7Sopenharmony_ci    code:ShaderViewportIndex SPIR-V capability enabling variables decorated
1089e5c31af7Sopenharmony_ci    with the code:ViewportIndex built-in to be exported from
1090e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[mesh,]
1091e5c31af7Sopenharmony_ci    vertex or tessellation evaluation shaders.
1092e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:ViewportIndex built-in
1093e5c31af7Sopenharmony_ci    decoration must: not be used on outputs in
1094e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[mesh,]
1095e5c31af7Sopenharmony_ci    vertex or tessellation evaluation shaders.
1096e5c31af7Sopenharmony_ci  * [[features-shaderOutputLayer]] pname:shaderOutputLayer indicates whether
1097e5c31af7Sopenharmony_ci    the implementation supports the code:ShaderLayer SPIR-V capability
1098e5c31af7Sopenharmony_ci    enabling variables decorated with the code:Layer built-in to be exported
1099e5c31af7Sopenharmony_ci    from
1100e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[mesh,]
1101e5c31af7Sopenharmony_ci    vertex or tessellation evaluation shaders.
1102e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:Layer built-in decoration must:
1103e5c31af7Sopenharmony_ci    not be used on outputs in
1104e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[mesh,]
1105e5c31af7Sopenharmony_ci    vertex or tessellation evaluation shaders.
1106e5c31af7Sopenharmony_ci  * [[features-subgroupBroadcastDynamicId]] If
1107e5c31af7Sopenharmony_ci    pname:subgroupBroadcastDynamicId is ename:VK_TRUE, the "`Id`" operand of
1108e5c31af7Sopenharmony_ci    code:OpGroupNonUniformBroadcast can: be dynamically uniform within a
1109e5c31af7Sopenharmony_ci    subgroup, and the "`Index`" operand of
1110e5c31af7Sopenharmony_ci    code:OpGroupNonUniformQuadBroadcast can: be dynamically uniform within
1111e5c31af7Sopenharmony_ci    the derivative group.
1112e5c31af7Sopenharmony_ci    If it is ename:VK_FALSE, these operands must: be constants.
1113e5c31af7Sopenharmony_ci
1114e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan12Features
1115e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1116e5c31af7Sopenharmony_ci
1117e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan12Features.adoc[]
1118e5c31af7Sopenharmony_ci--
1119e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
1120e5c31af7Sopenharmony_ci
1121e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[]
1122e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan13Features',desc='Structure describing the Vulkan 1.3 features that can be supported by an implementation',type='structs']
1123e5c31af7Sopenharmony_ci--
1124e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan13Features structure is defined as:
1125e5c31af7Sopenharmony_ci
1126e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan13Features.adoc[]
1127e5c31af7Sopenharmony_ci
1128e5c31af7Sopenharmony_ciThis structure describes the following features:
1129e5c31af7Sopenharmony_ci
1130e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1131e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1132e5c31af7Sopenharmony_ci    structure.
1133e5c31af7Sopenharmony_ci
1134e5c31af7Sopenharmony_ci:anchor-prefix:
1135e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_image_robustness-features]
1136e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_inline_uniform_block-features]
1137e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_pipeline_creation_cache_control-features]
1138e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_private_data-features]
1139e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_shader_demote_to_helper_invocation-features]
1140e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_terminate_invocation-features]
1141e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_subgroup_size_control-features]
1142e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_synchronization2-features]
1143e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_texture_compression_astc_hdr-features]
1144e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_zero_initialize_workgroup_memory-features]
1145e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_dynamic_rendering-features]
1146e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_integer_dot_product-features]
1147e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_maintenance4-features]
1148e5c31af7Sopenharmony_ci
1149e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan13Features
1150e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1151e5c31af7Sopenharmony_ci
1152e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan13Features.adoc[]
1153e5c31af7Sopenharmony_ci--
1154e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[]
1155e5c31af7Sopenharmony_ci
1156e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]
1157e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVariablePointersFeatures',desc='Structure describing variable pointers features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointersFeaturesKHR VkPhysicalDeviceVariablePointerFeaturesKHR']
1158e5c31af7Sopenharmony_ci--
1159e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVariablePointersFeatures structure is defined as:
1160e5c31af7Sopenharmony_ci
1161e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointersFeatures.adoc[]
1162e5c31af7Sopenharmony_ci
1163e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[]
1164e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1165e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointerFeatures.adoc[]
1166e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1167e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
1168e5c31af7Sopenharmony_ci
1169e5c31af7Sopenharmony_ciifdef::VK_KHR_variable_pointers[]
1170e5c31af7Sopenharmony_cior the equivalent
1171e5c31af7Sopenharmony_ci
1172e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointersFeaturesKHR.adoc[]
1173e5c31af7Sopenharmony_ci
1174e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointerFeaturesKHR.adoc[]
1175e5c31af7Sopenharmony_ciendif::VK_KHR_variable_pointers[]
1176e5c31af7Sopenharmony_ci
1177e5c31af7Sopenharmony_ciThis structure describes the following features:
1178e5c31af7Sopenharmony_ci
1179e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1180e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1181e5c31af7Sopenharmony_ci    structure.
1182e5c31af7Sopenharmony_ci
1183e5c31af7Sopenharmony_ci// Must have preceding whitespace
1184e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1185e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1186e5c31af7Sopenharmony_ci// tag::VK_KHR_variable_pointers-features[]
1187e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-variablePointersStorageBuffer]]
1188e5c31af7Sopenharmony_ci    pname:variablePointersStorageBuffer specifies whether the implementation
1189e5c31af7Sopenharmony_ci    supports the SPIR-V code:VariablePointersStorageBuffer capability.
1190e5c31af7Sopenharmony_ci    When this feature is not enabled, shader modules must: not declare the
1191e5c31af7Sopenharmony_ci    `SPV_KHR_variable_pointers` extension or the
1192e5c31af7Sopenharmony_ci    code:VariablePointersStorageBuffer capability.
1193e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-variablePointers]] pname:variablePointers
1194e5c31af7Sopenharmony_ci    specifies whether the implementation supports the SPIR-V
1195e5c31af7Sopenharmony_ci    code:VariablePointers capability.
1196e5c31af7Sopenharmony_ci    When this feature is not enabled, shader modules must: not declare the
1197e5c31af7Sopenharmony_ci    code:VariablePointers capability.
1198e5c31af7Sopenharmony_ci// end::VK_KHR_variable_pointers-features[]
1199e5c31af7Sopenharmony_ci
1200e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVariablePointersFeatures
1201e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1202e5c31af7Sopenharmony_ci
1203e5c31af7Sopenharmony_ci.Valid Usage
1204e5c31af7Sopenharmony_ci****
1205e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431]]
1206e5c31af7Sopenharmony_ci    If pname:variablePointers is enabled then
1207e5c31af7Sopenharmony_ci    pname:variablePointersStorageBuffer must: also be enabled
1208e5c31af7Sopenharmony_ci****
1209e5c31af7Sopenharmony_ci
1210e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVariablePointersFeatures.adoc[]
1211e5c31af7Sopenharmony_ci--
1212e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_variable_pointers[]
1213e5c31af7Sopenharmony_ci
1214e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[]
1215e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewFeatures',desc='Structure describing multiview features that can be supported by an implementation',type='structs']
1216e5c31af7Sopenharmony_ci--
1217e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewFeatures structure is defined as:
1218e5c31af7Sopenharmony_ci
1219e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewFeatures.adoc[]
1220e5c31af7Sopenharmony_ci
1221e5c31af7Sopenharmony_ciifdef::VK_KHR_multiview[]
1222e5c31af7Sopenharmony_cior the equivalent
1223e5c31af7Sopenharmony_ci
1224e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewFeaturesKHR.adoc[]
1225e5c31af7Sopenharmony_ciendif::VK_KHR_multiview[]
1226e5c31af7Sopenharmony_ci
1227e5c31af7Sopenharmony_ciThis structure describes the following features:
1228e5c31af7Sopenharmony_ci
1229e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1230e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1231e5c31af7Sopenharmony_ci    structure.
1232e5c31af7Sopenharmony_ci
1233e5c31af7Sopenharmony_ci// Must have preceding whitespace
1234e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1235e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1236e5c31af7Sopenharmony_ci// tag::VK_KHR_multiview-features[]
1237e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-multiview]] pname:multiview specifies whether
1238e5c31af7Sopenharmony_ci    the implementation supports multiview rendering within a render pass.
1239e5c31af7Sopenharmony_ci    If this feature is not enabled, the view mask of each subpass must:
1240e5c31af7Sopenharmony_ci    always be zero.
1241e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-multiview-gs]] pname:multiviewGeometryShader
1242e5c31af7Sopenharmony_ci    specifies whether the implementation supports multiview rendering within
1243e5c31af7Sopenharmony_ci    a render pass, with <<geometry,geometry shaders>>.
1244e5c31af7Sopenharmony_ci    If this feature is not enabled, then a pipeline compiled against a
1245e5c31af7Sopenharmony_ci    subpass with a non-zero view mask must: not include a geometry shader.
1246e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-multiview-tess]]
1247e5c31af7Sopenharmony_ci    pname:multiviewTessellationShader specifies whether the implementation
1248e5c31af7Sopenharmony_ci    supports multiview rendering within a render pass, with
1249e5c31af7Sopenharmony_ci    <<tessellation,tessellation shaders>>.
1250e5c31af7Sopenharmony_ci    If this feature is not enabled, then a pipeline compiled against a
1251e5c31af7Sopenharmony_ci    subpass with a non-zero view mask must: not include any tessellation
1252e5c31af7Sopenharmony_ci    shaders.
1253e5c31af7Sopenharmony_ci// end::VK_KHR_multiview-features[]
1254e5c31af7Sopenharmony_ci
1255e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewFeatures
1256e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1257e5c31af7Sopenharmony_ci
1258e5c31af7Sopenharmony_ci.Valid Usage
1259e5c31af7Sopenharmony_ci****
1260e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580]]
1261e5c31af7Sopenharmony_ci    If pname:multiviewGeometryShader is enabled then pname:multiview must:
1262e5c31af7Sopenharmony_ci    also be enabled
1263e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581]]
1264e5c31af7Sopenharmony_ci    If pname:multiviewTessellationShader is enabled then pname:multiview
1265e5c31af7Sopenharmony_ci    must: also be enabled
1266e5c31af7Sopenharmony_ci****
1267e5c31af7Sopenharmony_ci
1268e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewFeatures.adoc[]
1269e5c31af7Sopenharmony_ci--
1270e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[]
1271e5c31af7Sopenharmony_ci
1272e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[]
1273e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicFloatFeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_atomic_float',type='structs']
1274e5c31af7Sopenharmony_ci--
1275e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicFloatFeaturesEXT structure is defined
1276e5c31af7Sopenharmony_cias:
1277e5c31af7Sopenharmony_ci
1278e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.adoc[]
1279e5c31af7Sopenharmony_ci
1280e5c31af7Sopenharmony_ciThis structure describes the following features:
1281e5c31af7Sopenharmony_ci
1282e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1283e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1284e5c31af7Sopenharmony_ci    structure.
1285e5c31af7Sopenharmony_ci
1286e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_atomic_float-features[]
1287e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat32Atomics]] pname:shaderBufferFloat32Atomics
1288e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 32-bit floating-point load, store
1289e5c31af7Sopenharmony_ci    and exchange atomic operations on storage buffers.
1290e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat32AtomicAdd]]
1291e5c31af7Sopenharmony_ci    pname:shaderBufferFloat32AtomicAdd indicates whether shaders can:
1292e5c31af7Sopenharmony_ci    perform 32-bit floating-point add atomic operations on storage buffers.
1293e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat64Atomics]] pname:shaderBufferFloat64Atomics
1294e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 64-bit floating-point load, store
1295e5c31af7Sopenharmony_ci    and exchange atomic operations on storage buffers.
1296e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat64AtomicAdd]]
1297e5c31af7Sopenharmony_ci    pname:shaderBufferFloat64AtomicAdd indicates whether shaders can:
1298e5c31af7Sopenharmony_ci    perform 64-bit floating-point add atomic operations on storage buffers.
1299e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat32Atomics]] pname:shaderSharedFloat32Atomics
1300e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 32-bit floating-point load, store
1301e5c31af7Sopenharmony_ci    and exchange atomic operations on shared
1302e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1303e5c31af7Sopenharmony_ci    and payload
1304e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1305e5c31af7Sopenharmony_ci    memory.
1306e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat32AtomicAdd]]
1307e5c31af7Sopenharmony_ci    pname:shaderSharedFloat32AtomicAdd indicates whether shaders can:
1308e5c31af7Sopenharmony_ci    perform 32-bit floating-point add atomic operations on shared
1309e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1310e5c31af7Sopenharmony_ci    and payload
1311e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1312e5c31af7Sopenharmony_ci    memory.
1313e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat64Atomics]] pname:shaderSharedFloat64Atomics
1314e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 64-bit floating-point load, store
1315e5c31af7Sopenharmony_ci    and exchange atomic operations on shared
1316e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1317e5c31af7Sopenharmony_ci    and payload
1318e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1319e5c31af7Sopenharmony_ci    memory.
1320e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat64AtomicAdd]]
1321e5c31af7Sopenharmony_ci    pname:shaderSharedFloat64AtomicAdd indicates whether shaders can:
1322e5c31af7Sopenharmony_ci    perform 64-bit floating-point add atomic operations on shared
1323e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1324e5c31af7Sopenharmony_ci    and payload
1325e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1326e5c31af7Sopenharmony_ci    memory.
1327e5c31af7Sopenharmony_ci  * [[features-shaderImageFloat32Atomics]] pname:shaderImageFloat32Atomics
1328e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 32-bit floating-point load, store
1329e5c31af7Sopenharmony_ci    and exchange atomic image operations.
1330e5c31af7Sopenharmony_ci  * [[features-shaderImageFloat32AtomicAdd]]
1331e5c31af7Sopenharmony_ci    pname:shaderImageFloat32AtomicAdd indicates whether shaders can: perform
1332e5c31af7Sopenharmony_ci    32-bit floating-point add atomic image operations.
1333e5c31af7Sopenharmony_ci  * [[features-sparseImageFloat32Atomics]] pname:sparseImageFloat32Atomics
1334e5c31af7Sopenharmony_ci    indicates whether 32-bit floating-point load, store and exchange atomic
1335e5c31af7Sopenharmony_ci    operations can: be used on sparse images.
1336e5c31af7Sopenharmony_ci  * [[features-sparseImageFloat32AtomicAdd]]
1337e5c31af7Sopenharmony_ci    pname:sparseImageFloat32AtomicAdd indicates whether 32-bit
1338e5c31af7Sopenharmony_ci    floating-point add atomic operations can: be used on sparse images.
1339e5c31af7Sopenharmony_ci// end::VK_EXT_shader_atomic_float-features[]
1340e5c31af7Sopenharmony_ci
1341e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
1342e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1343e5c31af7Sopenharmony_ci
1344e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.adoc[]
1345e5c31af7Sopenharmony_ci--
1346e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[]
1347e5c31af7Sopenharmony_ci
1348e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[]
1349e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_atomic_float2',type='structs']
1350e5c31af7Sopenharmony_ci--
1351e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT structure is defined
1352e5c31af7Sopenharmony_cias:
1353e5c31af7Sopenharmony_ci
1354e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.adoc[]
1355e5c31af7Sopenharmony_ci
1356e5c31af7Sopenharmony_ciThis structure describes the following features:
1357e5c31af7Sopenharmony_ci
1358e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1359e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1360e5c31af7Sopenharmony_ci    structure.
1361e5c31af7Sopenharmony_ci
1362e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_atomic_float2-features[]
1363e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat16Atomics]] pname:shaderBufferFloat16Atomics
1364e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 16-bit floating-point load,
1365e5c31af7Sopenharmony_ci    store, and exchange atomic operations on storage buffers.
1366e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat16AtomicAdd]]
1367e5c31af7Sopenharmony_ci    pname:shaderBufferFloat16AtomicAdd indicates whether shaders can:
1368e5c31af7Sopenharmony_ci    perform 16-bit floating-point add atomic operations on storage buffers.
1369e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat16AtomicMinMax]]
1370e5c31af7Sopenharmony_ci    pname:shaderBufferFloat16AtomicMinMax indicates whether shaders can:
1371e5c31af7Sopenharmony_ci    perform 16-bit floating-point min and max atomic operations on storage
1372e5c31af7Sopenharmony_ci    buffers.
1373e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat32AtomicMinMax]]
1374e5c31af7Sopenharmony_ci    pname:shaderBufferFloat32AtomicMinMax indicates whether shaders can:
1375e5c31af7Sopenharmony_ci    perform 32-bit floating-point min and max atomic operations on storage
1376e5c31af7Sopenharmony_ci    buffers.
1377e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat64AtomicMinMax]]
1378e5c31af7Sopenharmony_ci    pname:shaderBufferFloat64AtomicMinMax indicates whether shaders can:
1379e5c31af7Sopenharmony_ci    perform 64-bit floating-point min and max atomic operations on storage
1380e5c31af7Sopenharmony_ci    buffers.
1381e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat16Atomics]] pname:shaderSharedFloat16Atomics
1382e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 16-bit floating-point load, store
1383e5c31af7Sopenharmony_ci    and exchange atomic operations on shared
1384e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1385e5c31af7Sopenharmony_ci    and payload
1386e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1387e5c31af7Sopenharmony_ci    memory.
1388e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat16AtomicAdd]]
1389e5c31af7Sopenharmony_ci    pname:shaderSharedFloat16AtomicAdd indicates whether shaders can:
1390e5c31af7Sopenharmony_ci    perform 16-bit floating-point add atomic operations on shared
1391e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1392e5c31af7Sopenharmony_ci    and payload
1393e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1394e5c31af7Sopenharmony_ci    memory.
1395e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat16AtomicMinMax]]
1396e5c31af7Sopenharmony_ci    pname:shaderSharedFloat16AtomicMinMax indicates whether shaders can:
1397e5c31af7Sopenharmony_ci    perform 16-bit floating-point min and max atomic operations on shared
1398e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1399e5c31af7Sopenharmony_ci    and payload
1400e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1401e5c31af7Sopenharmony_ci    memory.
1402e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat32AtomicMinMax]]
1403e5c31af7Sopenharmony_ci    pname:shaderSharedFloat32AtomicMinMax indicates whether shaders can:
1404e5c31af7Sopenharmony_ci    perform 32-bit floating-point min and max atomic operations on shared
1405e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1406e5c31af7Sopenharmony_ci    and payload
1407e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1408e5c31af7Sopenharmony_ci    memory.
1409e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat64AtomicMinMax]]
1410e5c31af7Sopenharmony_ci    pname:shaderSharedFloat64AtomicMinMax indicates whether shaders can:
1411e5c31af7Sopenharmony_ci    perform 64-bit floating-point min and max atomic operations on shared
1412e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1413e5c31af7Sopenharmony_ci    and payload
1414e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1415e5c31af7Sopenharmony_ci    memory.
1416e5c31af7Sopenharmony_ci  * [[features-shaderImageFloat32AtomicMinMax]]
1417e5c31af7Sopenharmony_ci    pname:shaderImageFloat32AtomicMinMax indicates whether shaders can:
1418e5c31af7Sopenharmony_ci    perform 32-bit floating-point min and max atomic image operations.
1419e5c31af7Sopenharmony_ci  * [[features-sparseImageFloat32AtomicMinMax]]
1420e5c31af7Sopenharmony_ci    pname:sparseImageFloat32AtomicMinMax indicates whether 32-bit
1421e5c31af7Sopenharmony_ci    floating-point min and max atomic operations can: be used on sparse
1422e5c31af7Sopenharmony_ci    images.
1423e5c31af7Sopenharmony_ci// end::VK_EXT_shader_atomic_float2-features[]
1424e5c31af7Sopenharmony_ci
1425e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
1426e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1427e5c31af7Sopenharmony_ci
1428e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.adoc[]
1429e5c31af7Sopenharmony_ci--
1430e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[]
1431e5c31af7Sopenharmony_ci
1432e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[]
1433e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicInt64Features',desc='Structure describing features supported by VK_KHR_shader_atomic_int64',type='structs',alias='VkPhysicalDeviceShaderAtomicInt64FeaturesKHR']
1434e5c31af7Sopenharmony_ci--
1435e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicInt64Features structure is defined as:
1436e5c31af7Sopenharmony_ci
1437e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicInt64Features.adoc[]
1438e5c31af7Sopenharmony_ci
1439e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_atomic_int64[]
1440e5c31af7Sopenharmony_cior the equivalent
1441e5c31af7Sopenharmony_ci
1442e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicInt64FeaturesKHR.adoc[]
1443e5c31af7Sopenharmony_ciendif::VK_KHR_shader_atomic_int64[]
1444e5c31af7Sopenharmony_ci
1445e5c31af7Sopenharmony_ciThis structure describes the following features:
1446e5c31af7Sopenharmony_ci
1447e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1448e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1449e5c31af7Sopenharmony_ci    structure.
1450e5c31af7Sopenharmony_ci
1451e5c31af7Sopenharmony_ci// Must have preceding whitespace
1452e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1453e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1454e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_atomic_int64-features[]
1455e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderBufferInt64Atomics]]
1456e5c31af7Sopenharmony_ci    pname:shaderBufferInt64Atomics indicates whether shaders can: perform
1457e5c31af7Sopenharmony_ci    64-bit unsigned and signed integer atomic operations on buffers.
1458e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderSharedInt64Atomics]]
1459e5c31af7Sopenharmony_ci    pname:shaderSharedInt64Atomics indicates whether shaders can: perform
1460e5c31af7Sopenharmony_ci    64-bit unsigned and signed integer atomic operations on shared
1461e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1462e5c31af7Sopenharmony_ci    and payload
1463e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1464e5c31af7Sopenharmony_ci    memory.
1465e5c31af7Sopenharmony_ci// end::VK_KHR_shader_atomic_int64-features[]
1466e5c31af7Sopenharmony_ci
1467e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicInt64Features
1468e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1469e5c31af7Sopenharmony_ci
1470e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicInt64Features.adoc[]
1471e5c31af7Sopenharmony_ci--
1472e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[]
1473e5c31af7Sopenharmony_ci
1474e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[]
1475e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_image_atomic_int64',type='structs']
1476e5c31af7Sopenharmony_ci--
1477e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT structure is
1478e5c31af7Sopenharmony_cidefined as:
1479e5c31af7Sopenharmony_ci
1480e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.adoc[]
1481e5c31af7Sopenharmony_ci
1482e5c31af7Sopenharmony_ciThis structure describes the following features:
1483e5c31af7Sopenharmony_ci
1484e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1485e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1486e5c31af7Sopenharmony_ci    structure.
1487e5c31af7Sopenharmony_ci  * [[features-shaderImageInt64Atomics]] pname:shaderImageInt64Atomics
1488e5c31af7Sopenharmony_ci    indicates whether shaders can: support 64-bit unsigned and signed
1489e5c31af7Sopenharmony_ci    integer atomic operations on images.
1490e5c31af7Sopenharmony_ci  * [[features-sparseImageInt64Atomics]] pname:sparseImageInt64Atomics
1491e5c31af7Sopenharmony_ci    indicates whether 64-bit integer atomics can: be used on sparse images.
1492e5c31af7Sopenharmony_ci
1493e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicInt64FeaturesEXT
1494e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1495e5c31af7Sopenharmony_ci
1496e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.adoc[]
1497e5c31af7Sopenharmony_ci--
1498e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[]
1499e5c31af7Sopenharmony_ci
1500e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_8bit_storage[]
1501e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice8BitStorageFeatures',desc='Structure describing features supported by VK_KHR_8bit_storage',type='structs',alias='VkPhysicalDevice8BitStorageFeaturesKHR']
1502e5c31af7Sopenharmony_ci--
1503e5c31af7Sopenharmony_ciThe slink:VkPhysicalDevice8BitStorageFeatures structure is defined as:
1504e5c31af7Sopenharmony_ci
1505e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice8BitStorageFeatures.adoc[]
1506e5c31af7Sopenharmony_ci
1507e5c31af7Sopenharmony_ciifdef::VK_KHR_8bit_storage[]
1508e5c31af7Sopenharmony_cior the equivalent
1509e5c31af7Sopenharmony_ci
1510e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice8BitStorageFeaturesKHR.adoc[]
1511e5c31af7Sopenharmony_ciendif::VK_KHR_8bit_storage[]
1512e5c31af7Sopenharmony_ci
1513e5c31af7Sopenharmony_ciThis structure describes the following features:
1514e5c31af7Sopenharmony_ci
1515e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1516e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1517e5c31af7Sopenharmony_ci    structure.
1518e5c31af7Sopenharmony_ci
1519e5c31af7Sopenharmony_ci// Must have preceding whitespace
1520e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1521e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1522e5c31af7Sopenharmony_ci// tag::VK_KHR_8bit_storage-features[]
1523e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storageBuffer8BitAccess]]
1524e5c31af7Sopenharmony_ci    pname:storageBuffer8BitAccess indicates whether objects in the
1525e5c31af7Sopenharmony_ci    code:StorageBuffer,
1526e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:ShaderRecordBufferKHR,]
1527e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1528e5c31af7Sopenharmony_ci    or code:PhysicalStorageBuffer
1529e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1530e5c31af7Sopenharmony_ci    storage class with the code:Block decoration can: have 8-bit integer
1531e5c31af7Sopenharmony_ci    members.
1532e5c31af7Sopenharmony_ci    If this feature is not enabled, 8-bit integer members must: not be used
1533e5c31af7Sopenharmony_ci    in such objects.
1534e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1535e5c31af7Sopenharmony_ci    code:StorageBuffer8BitAccess capability.
1536e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-uniformAndStorageBuffer8BitAccess]]
1537e5c31af7Sopenharmony_ci    pname:uniformAndStorageBuffer8BitAccess indicates whether objects in the
1538e5c31af7Sopenharmony_ci    code:Uniform storage class with the code:Block decoration can: have
1539e5c31af7Sopenharmony_ci    8-bit integer members.
1540e5c31af7Sopenharmony_ci    If this feature is not enabled, 8-bit integer members must: not be used
1541e5c31af7Sopenharmony_ci    in such objects.
1542e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1543e5c31af7Sopenharmony_ci    code:UniformAndStorageBuffer8BitAccess capability.
1544e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storagePushConstant8]]
1545e5c31af7Sopenharmony_ci    pname:storagePushConstant8 indicates whether objects in the
1546e5c31af7Sopenharmony_ci    code:PushConstant storage class can: have 8-bit integer members.
1547e5c31af7Sopenharmony_ci    If this feature is not enabled, 8-bit integer members must: not be used
1548e5c31af7Sopenharmony_ci    in such objects.
1549e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1550e5c31af7Sopenharmony_ci    code:StoragePushConstant8 capability.
1551e5c31af7Sopenharmony_ci// end::VK_KHR_8bit_storage-features[]
1552e5c31af7Sopenharmony_ci
1553e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice8BitStorageFeatures
1554e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1555e5c31af7Sopenharmony_ci
1556e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice8BitStorageFeatures.adoc[]
1557e5c31af7Sopenharmony_ci--
1558e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_8bit_storage[]
1559e5c31af7Sopenharmony_ci
1560e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[]
1561e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice16BitStorageFeatures',desc='Structure describing features supported by VK_KHR_16bit_storage',type='structs']
1562e5c31af7Sopenharmony_ci--
1563e5c31af7Sopenharmony_ciThe slink:VkPhysicalDevice16BitStorageFeatures structure is defined as:
1564e5c31af7Sopenharmony_ci
1565e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice16BitStorageFeatures.adoc[]
1566e5c31af7Sopenharmony_ci
1567e5c31af7Sopenharmony_ciifdef::VK_KHR_16bit_storage[]
1568e5c31af7Sopenharmony_cior the equivalent
1569e5c31af7Sopenharmony_ci
1570e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice16BitStorageFeaturesKHR.adoc[]
1571e5c31af7Sopenharmony_ciendif::VK_KHR_16bit_storage[]
1572e5c31af7Sopenharmony_ci
1573e5c31af7Sopenharmony_ciThis structure describes the following features:
1574e5c31af7Sopenharmony_ci
1575e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1576e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1577e5c31af7Sopenharmony_ci    structure.
1578e5c31af7Sopenharmony_ci
1579e5c31af7Sopenharmony_ci// Must have preceding whitespace
1580e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1581e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1582e5c31af7Sopenharmony_ci// tag::VK_KHR_16bit_storage-features[]
1583e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storageBuffer16BitAccess]]
1584e5c31af7Sopenharmony_ci    pname:storageBuffer16BitAccess specifies whether objects in the
1585e5c31af7Sopenharmony_ci    code:StorageBuffer,
1586e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:ShaderRecordBufferKHR,]
1587e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1588e5c31af7Sopenharmony_ci    or code:PhysicalStorageBuffer
1589e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1590e5c31af7Sopenharmony_ci    storage class with the code:Block decoration can: have 16-bit integer
1591e5c31af7Sopenharmony_ci    and 16-bit floating-point members.
1592e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or 16-bit floating-point
1593e5c31af7Sopenharmony_ci    members must: not be used in such objects.
1594e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
1595e5c31af7Sopenharmony_ci    code:StorageBuffer16BitAccess capability.
1596e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-uniformAndStorageBuffer16BitAccess]]
1597e5c31af7Sopenharmony_ci    pname:uniformAndStorageBuffer16BitAccess specifies whether objects in
1598e5c31af7Sopenharmony_ci    the code:Uniform storage class with the code:Block decoration can: have
1599e5c31af7Sopenharmony_ci    16-bit integer and 16-bit floating-point members.
1600e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or 16-bit floating-point
1601e5c31af7Sopenharmony_ci    members must: not be used in such objects.
1602e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
1603e5c31af7Sopenharmony_ci    code:UniformAndStorageBuffer16BitAccess capability.
1604e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storagePushConstant16]]
1605e5c31af7Sopenharmony_ci    pname:storagePushConstant16 specifies whether objects in the
1606e5c31af7Sopenharmony_ci    code:PushConstant storage class can: have 16-bit integer and 16-bit
1607e5c31af7Sopenharmony_ci    floating-point members.
1608e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or floating-point members
1609e5c31af7Sopenharmony_ci    must: not be used in such objects.
1610e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
1611e5c31af7Sopenharmony_ci    code:StoragePushConstant16 capability.
1612e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storageInputOutput16]]
1613e5c31af7Sopenharmony_ci    pname:storageInputOutput16 specifies whether objects in the code:Input
1614e5c31af7Sopenharmony_ci    and code:Output storage classes can: have 16-bit integer and 16-bit
1615e5c31af7Sopenharmony_ci    floating-point members.
1616e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or 16-bit floating-point
1617e5c31af7Sopenharmony_ci    members must: not be used in such objects.
1618e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
1619e5c31af7Sopenharmony_ci    code:StorageInputOutput16 capability.
1620e5c31af7Sopenharmony_ci// end::VK_KHR_16bit_storage-features[]
1621e5c31af7Sopenharmony_ci
1622e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice16BitStorageFeatures
1623e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1624e5c31af7Sopenharmony_ci
1625e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice16BitStorageFeatures.adoc[]
1626e5c31af7Sopenharmony_ci--
1627e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_16bit_storage[]
1628e5c31af7Sopenharmony_ci
1629e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_float16_int8[]
1630e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderFloat16Int8Features',desc='Structure describing features supported by VK_KHR_shader_float16_int8',type='structs',alias='VkPhysicalDeviceShaderFloat16Int8FeaturesKHR VkPhysicalDeviceFloat16Int8FeaturesKHR']
1631e5c31af7Sopenharmony_ci--
1632e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderFloat16Int8Features structure is defined as:
1633e5c31af7Sopenharmony_ci
1634e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderFloat16Int8Features.adoc[]
1635e5c31af7Sopenharmony_ci
1636e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float16_int8[]
1637e5c31af7Sopenharmony_cior the equivalent
1638e5c31af7Sopenharmony_ci
1639e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderFloat16Int8FeaturesKHR.adoc[]
1640e5c31af7Sopenharmony_ci
1641e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFloat16Int8FeaturesKHR.adoc[]
1642e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float16_int8[]
1643e5c31af7Sopenharmony_ci
1644e5c31af7Sopenharmony_ciThis structure describes the following features:
1645e5c31af7Sopenharmony_ci
1646e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1647e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1648e5c31af7Sopenharmony_ci    structure.
1649e5c31af7Sopenharmony_ci
1650e5c31af7Sopenharmony_ci// Must have preceding whitespace
1651e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1652e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1653e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_float16_int8-features[]
1654e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderFloat16]] pname:shaderFloat16 indicates
1655e5c31af7Sopenharmony_ci    whether 16-bit floats (halfs) are supported in shader code.
1656e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the code:Float16
1657e5c31af7Sopenharmony_ci    capability.
1658e5c31af7Sopenharmony_ci    However, this only enables a subset of the storage classes that SPIR-V
1659e5c31af7Sopenharmony_ci    allows for the code:Float16 SPIR-V capability: Declaring and using
1660e5c31af7Sopenharmony_ci    16-bit floats in the code:Private,
1661e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[]
1662e5c31af7Sopenharmony_ci    code:Workgroup,
1663e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
1664e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
1665e5c31af7Sopenharmony_ci    code:Workgroup (for non-Block variables),
1666e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
1667e5c31af7Sopenharmony_ci    and code:Function storage classes is enabled, while declaring them in
1668e5c31af7Sopenharmony_ci    the interface storage classes (e.g., code:UniformConstant, code:Uniform,
1669e5c31af7Sopenharmony_ci    code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is
1670e5c31af7Sopenharmony_ci    not enabled.
1671e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderInt8]] pname:shaderInt8 indicates
1672e5c31af7Sopenharmony_ci    whether 8-bit integers (signed and unsigned) are supported in shader
1673e5c31af7Sopenharmony_ci    code.
1674e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the code:Int8
1675e5c31af7Sopenharmony_ci    capability.
1676e5c31af7Sopenharmony_ci    However, this only enables a subset of the storage classes that SPIR-V
1677e5c31af7Sopenharmony_ci    allows for the code:Int8 SPIR-V capability: Declaring and using 8-bit
1678e5c31af7Sopenharmony_ci    integers in the code:Private,
1679e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[]
1680e5c31af7Sopenharmony_ci    code:Workgroup,
1681e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
1682e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
1683e5c31af7Sopenharmony_ci    code:Workgroup (for non-Block variables),
1684e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
1685e5c31af7Sopenharmony_ci    and code:Function storage classes is enabled, while declaring them in
1686e5c31af7Sopenharmony_ci    the interface storage classes (e.g., code:UniformConstant, code:Uniform,
1687e5c31af7Sopenharmony_ci    code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is
1688e5c31af7Sopenharmony_ci    not enabled.
1689e5c31af7Sopenharmony_ci// end::VK_KHR_shader_float16_int8-features[]
1690e5c31af7Sopenharmony_ci
1691e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderFloat16Int8Features
1692e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1693e5c31af7Sopenharmony_ci
1694e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderFloat16Int8Features.adoc[]
1695e5c31af7Sopenharmony_ci--
1696e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_float16_int8[]
1697e5c31af7Sopenharmony_ci
1698e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_clock[]
1699e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderClockFeaturesKHR',desc='Structure describing features supported by VK_KHR_shader_clock',type='structs']
1700e5c31af7Sopenharmony_ci--
1701e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderClockFeaturesKHR structure is defined as:
1702e5c31af7Sopenharmony_ci
1703e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderClockFeaturesKHR.adoc[]
1704e5c31af7Sopenharmony_ci
1705e5c31af7Sopenharmony_ciThis structure describes the following features:
1706e5c31af7Sopenharmony_ci
1707e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1708e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1709e5c31af7Sopenharmony_ci    structure.
1710e5c31af7Sopenharmony_ci  * [[features-shaderSubgroupClock]] pname:shaderSubgroupClock indicates
1711e5c31af7Sopenharmony_ci    whether shaders can: perform code:Subgroup scoped clock reads.
1712e5c31af7Sopenharmony_ci  * [[features-shaderDeviceClock]] pname:shaderDeviceClock indicates whether
1713e5c31af7Sopenharmony_ci    shaders can: perform code:Device scoped clock reads.
1714e5c31af7Sopenharmony_ci
1715e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderClockFeaturesKHR
1716e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1717e5c31af7Sopenharmony_ci
1718e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderClockFeaturesKHR.adoc[]
1719e5c31af7Sopenharmony_ci--
1720e5c31af7Sopenharmony_ciendif::VK_KHR_shader_clock[]
1721e5c31af7Sopenharmony_ci
1722e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1723e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSamplerYcbcrConversionFeatures',desc='Structure describing {YCbCr} conversion features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR']
1724e5c31af7Sopenharmony_ci--
1725e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSamplerYcbcrConversionFeatures structure is
1726e5c31af7Sopenharmony_cidefined as:
1727e5c31af7Sopenharmony_ci
1728e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerYcbcrConversionFeatures.adoc[]
1729e5c31af7Sopenharmony_ci
1730e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_ycbcr_conversion[]
1731e5c31af7Sopenharmony_cior the equivalent
1732e5c31af7Sopenharmony_ci
1733e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.adoc[]
1734e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_ycbcr_conversion[]
1735e5c31af7Sopenharmony_ci
1736e5c31af7Sopenharmony_ciThis structure describes the following feature:
1737e5c31af7Sopenharmony_ci
1738e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1739e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1740e5c31af7Sopenharmony_ci    structure.
1741e5c31af7Sopenharmony_ci
1742e5c31af7Sopenharmony_ci// Must have preceding whitespace
1743e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1744e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1745e5c31af7Sopenharmony_ci// tag::VK_KHR_sampler_ycbcr_conversion-features[]
1746e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-samplerYcbcrConversion]]
1747e5c31af7Sopenharmony_ci    pname:samplerYcbcrConversion specifies whether the implementation
1748e5c31af7Sopenharmony_ci    supports <<samplers-YCbCr-conversion,sampler {YCbCr} conversion>>.
1749e5c31af7Sopenharmony_ci    If pname:samplerYcbcrConversion is ename:VK_FALSE, sampler {YCbCr}
1750e5c31af7Sopenharmony_ci    conversion is not supported, and samplers using sampler {YCbCr}
1751e5c31af7Sopenharmony_ci    conversion must: not be used.
1752e5c31af7Sopenharmony_ci// end::VK_KHR_sampler_ycbcr_conversion-features[]
1753e5c31af7Sopenharmony_ci
1754e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSamplerYcbcrConversionFeatures
1755e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1756e5c31af7Sopenharmony_ci
1757e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSamplerYcbcrConversionFeatures.adoc[]
1758e5c31af7Sopenharmony_ci--
1759e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1760e5c31af7Sopenharmony_ci
1761e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1762e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProtectedMemoryFeatures',desc='Structure describing protected memory features that can be supported by an implementation',type='structs']
1763e5c31af7Sopenharmony_ci--
1764e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProtectedMemoryFeatures structure is defined as:
1765e5c31af7Sopenharmony_ci
1766e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProtectedMemoryFeatures.adoc[]
1767e5c31af7Sopenharmony_ci
1768e5c31af7Sopenharmony_ciThis structure describes the following feature:
1769e5c31af7Sopenharmony_ci
1770e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1771e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1772e5c31af7Sopenharmony_ci    structure.
1773e5c31af7Sopenharmony_ci
1774e5c31af7Sopenharmony_ci// Must have preceding whitespace
1775e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1776e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1777e5c31af7Sopenharmony_ci// tag::VK_KHR_protected_memory-features[]
1778e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-protectedMemory]] pname:protectedMemory
1779e5c31af7Sopenharmony_ci    specifies whether <<memory-protected-memory, protected memory>> is
1780e5c31af7Sopenharmony_ci    supported.
1781e5c31af7Sopenharmony_ci// end::VK_KHR_protected_memory-features[]
1782e5c31af7Sopenharmony_ci
1783e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProtectedMemoryFeatures
1784e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1785e5c31af7Sopenharmony_ci
1786e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProtectedMemoryFeatures.adoc[]
1787e5c31af7Sopenharmony_ci--
1788e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1789e5c31af7Sopenharmony_ci
1790e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[]
1791e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',desc='Structure describing advanced blending features that can be supported by an implementation',type='structs']
1792e5c31af7Sopenharmony_ci--
1793e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT structure is
1794e5c31af7Sopenharmony_cidefined as:
1795e5c31af7Sopenharmony_ci
1796e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.adoc[]
1797e5c31af7Sopenharmony_ci
1798e5c31af7Sopenharmony_ciThis structure describes the following feature:
1799e5c31af7Sopenharmony_ci
1800e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1801e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1802e5c31af7Sopenharmony_ci    structure.
1803e5c31af7Sopenharmony_ci  * [[features-advancedBlendCoherentOperations]]
1804e5c31af7Sopenharmony_ci    pname:advancedBlendCoherentOperations specifies whether blending using
1805e5c31af7Sopenharmony_ci    <<framebuffer-blend-advanced,advanced blend operations>> is guaranteed
1806e5c31af7Sopenharmony_ci    to execute atomically and in <<drawing-primitive-order, primitive
1807e5c31af7Sopenharmony_ci    order>>.
1808e5c31af7Sopenharmony_ci    If this is ename:VK_TRUE,
1809e5c31af7Sopenharmony_ci    ename:VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT is treated the
1810e5c31af7Sopenharmony_ci    same as ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, and advanced blending
1811e5c31af7Sopenharmony_ci    needs no additional synchronization over basic blending.
1812e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then memory dependencies are required to
1813e5c31af7Sopenharmony_ci    guarantee order between two advanced blending operations that occur on
1814e5c31af7Sopenharmony_ci    the same sample.
1815e5c31af7Sopenharmony_ci
1816e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
1817e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1818e5c31af7Sopenharmony_ci
1819e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.adoc[]
1820e5c31af7Sopenharmony_ci--
1821e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[]
1822e5c31af7Sopenharmony_ci
1823e5c31af7Sopenharmony_ciifdef::VK_EXT_conditional_rendering[]
1824e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceConditionalRenderingFeaturesEXT',desc='Structure describing if a secondary command buffer can be executed if conditional rendering is active in the primary command buffer',type='structs']
1825e5c31af7Sopenharmony_ci--
1826e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT structure is
1827e5c31af7Sopenharmony_cidefined as:
1828e5c31af7Sopenharmony_ci
1829e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.adoc[]
1830e5c31af7Sopenharmony_ci
1831e5c31af7Sopenharmony_ciThis structure describes the following features:
1832e5c31af7Sopenharmony_ci
1833e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1834e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1835e5c31af7Sopenharmony_ci    structure.
1836e5c31af7Sopenharmony_ci  * [[features-conditionalRendering]] pname:conditionalRendering specifies
1837e5c31af7Sopenharmony_ci    whether conditional rendering is supported.
1838e5c31af7Sopenharmony_ci  * [[features-inheritedConditionalRendering]]
1839e5c31af7Sopenharmony_ci    pname:inheritedConditionalRendering specifies whether a secondary
1840e5c31af7Sopenharmony_ci    command buffer can: be executed while conditional rendering is active in
1841e5c31af7Sopenharmony_ci    the primary command buffer.
1842e5c31af7Sopenharmony_ci
1843e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceConditionalRenderingFeaturesEXT
1844e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1845e5c31af7Sopenharmony_ci
1846e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.adoc[]
1847e5c31af7Sopenharmony_ci--
1848e5c31af7Sopenharmony_ciendif::VK_EXT_conditional_rendering[]
1849e5c31af7Sopenharmony_ci
1850e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1851e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderDrawParametersFeatures',desc='Structure describing shader draw parameter features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceShaderDrawParameterFeatures']
1852e5c31af7Sopenharmony_ci--
1853e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderDrawParametersFeatures structure is defined
1854e5c31af7Sopenharmony_cias:
1855e5c31af7Sopenharmony_ci
1856e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDrawParametersFeatures.adoc[]
1857e5c31af7Sopenharmony_ci
1858e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[]
1859e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDrawParameterFeatures.adoc[]
1860e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
1861e5c31af7Sopenharmony_ci
1862e5c31af7Sopenharmony_ciThis structure describes the following feature:
1863e5c31af7Sopenharmony_ci
1864e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1865e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1866e5c31af7Sopenharmony_ci    structure.
1867e5c31af7Sopenharmony_ci
1868e5c31af7Sopenharmony_ci// Must have preceding whitespace
1869e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1870e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1871e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_draw_parameters-features[]
1872e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderDrawParameters]]
1873e5c31af7Sopenharmony_ci    pname:shaderDrawParameters specifies whether the implementation supports
1874e5c31af7Sopenharmony_ci    the SPIR-V code:DrawParameters capability.
1875e5c31af7Sopenharmony_ci    When this feature is not enabled, shader modules must: not declare the
1876e5c31af7Sopenharmony_ci    `SPV_KHR_shader_draw_parameters` extension or the code:DrawParameters
1877e5c31af7Sopenharmony_ci    capability.
1878e5c31af7Sopenharmony_ci// end::VK_KHR_shader_draw_parameters-features[]
1879e5c31af7Sopenharmony_ci
1880e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderDrawParametersFeatures
1881e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1882e5c31af7Sopenharmony_ci
1883e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderDrawParametersFeatures.adoc[]
1884e5c31af7Sopenharmony_ci--
1885e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1886e5c31af7Sopenharmony_ci
1887e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
1888e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMeshShaderFeaturesNV',desc='Structure describing mesh shading features that can be supported by an implementation',type='structs']
1889e5c31af7Sopenharmony_ci--
1890e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMeshShaderFeaturesNV structure is defined as:
1891e5c31af7Sopenharmony_ci
1892e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMeshShaderFeaturesNV.adoc[]
1893e5c31af7Sopenharmony_ci
1894e5c31af7Sopenharmony_ciThis structure describes the following features:
1895e5c31af7Sopenharmony_ci
1896e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1897e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1898e5c31af7Sopenharmony_ci    structure.
1899e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1900e5c31af7Sopenharmony_ci  * pname:taskShader specifies whether task shaders are supported.
1901e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1902e5c31af7Sopenharmony_ciifndef::VK_EXT_mesh_shader[]
1903e5c31af7Sopenharmony_ci  * [[{vuprefix}features-taskShader]] pname:taskShader specifies whether
1904e5c31af7Sopenharmony_ci    task shaders are supported.
1905e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1906e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_SHADER_STAGE_TASK_BIT_NV
1907e5c31af7Sopenharmony_ci    and ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV enum values must: not be
1908e5c31af7Sopenharmony_ci    used.
1909e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1910e5c31af7Sopenharmony_ci  * pname:meshShader specifies whether mesh shaders are supported.
1911e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1912e5c31af7Sopenharmony_ciifndef::VK_EXT_mesh_shader[]
1913e5c31af7Sopenharmony_ci  * [[{vuprefix}features-meshShader]] pname:meshShader specifies whether
1914e5c31af7Sopenharmony_ci    mesh shaders are supported.
1915e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1916e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_SHADER_STAGE_MESH_BIT_NV
1917e5c31af7Sopenharmony_ci    and ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV enum values must: not be
1918e5c31af7Sopenharmony_ci    used.
1919e5c31af7Sopenharmony_ci
1920e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMeshShaderFeaturesNV
1921e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1922e5c31af7Sopenharmony_ci
1923e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMeshShaderFeaturesNV.adoc[]
1924e5c31af7Sopenharmony_ci--
1925e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
1926e5c31af7Sopenharmony_ci
1927e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1928e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMeshShaderFeaturesEXT',desc='Structure describing mesh shading features that can be supported by an implementation',type='structs']
1929e5c31af7Sopenharmony_ci--
1930e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMeshShaderFeaturesEXT structure is defined as:
1931e5c31af7Sopenharmony_ci
1932e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMeshShaderFeaturesEXT.adoc[]
1933e5c31af7Sopenharmony_ci
1934e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1935e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1936e5c31af7Sopenharmony_ci    structure.
1937e5c31af7Sopenharmony_ci  * [[features-taskShader]] pname:taskShader specifies whether task shaders
1938e5c31af7Sopenharmony_ci    are supported.
1939e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_SHADER_STAGE_TASK_BIT_EXT
1940e5c31af7Sopenharmony_ci    and ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT enum values must: not be
1941e5c31af7Sopenharmony_ci    used.
1942e5c31af7Sopenharmony_ci  * [[features-meshShader]] pname:meshShader specifies whether mesh shaders
1943e5c31af7Sopenharmony_ci    are supported.
1944e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_SHADER_STAGE_MESH_BIT_EXT
1945e5c31af7Sopenharmony_ci    and ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT enum values must: not be
1946e5c31af7Sopenharmony_ci    used.
1947e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[]
1948e5c31af7Sopenharmony_ci  * [[features-multiview-mesh]] pname:multiviewMeshShader specifies whether
1949e5c31af7Sopenharmony_ci    the implementation supports <<features-multiview, pname:multiview>>
1950e5c31af7Sopenharmony_ci    rendering within a render pass, with mesh shaders.
1951e5c31af7Sopenharmony_ci    If this feature is not enabled, then a pipeline compiled against a
1952e5c31af7Sopenharmony_ci    subpass with a non-zero view mask must: not include a mesh shader.
1953e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[]
1954e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
1955e5c31af7Sopenharmony_ci  * [[features-primitiveFragmentShadingRate-mesh]]
1956e5c31af7Sopenharmony_ci    pname:primitiveFragmentShadingRateMeshShader indicates that the
1957e5c31af7Sopenharmony_ci    implementation supports the <<primsrast-fragment-shading-rate-primitive,
1958e5c31af7Sopenharmony_ci    primitive fragment shading rate>> in mesh shaders.
1959e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
1960e5c31af7Sopenharmony_ci  * [[features-meshShaderQueries]] pname:meshShaderQueries indicates that
1961e5c31af7Sopenharmony_ci    the implementation supports creating query pools using the
1962e5c31af7Sopenharmony_ci    ename:VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT query type and
1963e5c31af7Sopenharmony_ci    statistic queries containing the
1964e5c31af7Sopenharmony_ci    ename:VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT and
1965e5c31af7Sopenharmony_ci    ename:VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT flags
1966e5c31af7Sopenharmony_ci
1967e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMeshShaderFeaturesEXT
1968e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
1969e5c31af7Sopenharmony_ci
1970e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
1971e5c31af7Sopenharmony_ciThe corresponding features of the sname:VkPhysicalDeviceMeshShaderFeaturesNV
1972e5c31af7Sopenharmony_cistructure must: match those in sname:VkPhysicalDeviceMeshShaderFeaturesEXT.
1973e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
1974e5c31af7Sopenharmony_ci
1975e5c31af7Sopenharmony_ci.Valid Usage
1976e5c31af7Sopenharmony_ci****
1977e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[]
1978e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032]]
1979e5c31af7Sopenharmony_ci    If pname:multiviewMeshShader is enabled then
1980e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceMultiviewFeaturesKHR::pname:multiview must: also
1981e5c31af7Sopenharmony_ci    be enabled
1982e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[]
1983e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
1984e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033]]
1985e5c31af7Sopenharmony_ci    If pname:primitiveFragmentShadingRateMeshShader is enabled then
1986e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceFragmentShadingRateFeaturesKHR::pname:primitiveFragmentShadingRate
1987e5c31af7Sopenharmony_ci    must: also be enabled
1988e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
1989e5c31af7Sopenharmony_ci****
1990e5c31af7Sopenharmony_ci
1991e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMeshShaderFeaturesEXT.adoc[]
1992e5c31af7Sopenharmony_ci--
1993e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
1994e5c31af7Sopenharmony_ci
1995e5c31af7Sopenharmony_ciifdef::VK_NV_memory_decompression[]
1996e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMemoryDecompressionFeaturesNV',desc='Structure describing if memory decompression is supported by an implementation',type='structs']
1997e5c31af7Sopenharmony_ci--
1998e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMemoryDecompressionFeaturesNV structure is defined
1999e5c31af7Sopenharmony_cias:
2000e5c31af7Sopenharmony_ci
2001e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMemoryDecompressionFeaturesNV.adoc[]
2002e5c31af7Sopenharmony_ci
2003e5c31af7Sopenharmony_ciThis structure describes the following features:
2004e5c31af7Sopenharmony_ci
2005e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2006e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2007e5c31af7Sopenharmony_ci    structure.
2008e5c31af7Sopenharmony_ci  * [[features-memoryDecompression]] pname:memoryDecompression indicates
2009e5c31af7Sopenharmony_ci    whether memory decompression is supported.
2010e5c31af7Sopenharmony_ci
2011e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMemoryDecompressionFeaturesNV
2012e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2013e5c31af7Sopenharmony_ci
2014e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMemoryDecompressionFeaturesNV.adoc[]
2015e5c31af7Sopenharmony_ci--
2016e5c31af7Sopenharmony_ciendif::VK_NV_memory_decompression[]
2017e5c31af7Sopenharmony_ci
2018e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2019e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorIndexingFeatures',desc='Structure describing descriptor indexing features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceDescriptorIndexingFeaturesEXT']
2020e5c31af7Sopenharmony_ci--
2021e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorIndexingFeatures structure is defined
2022e5c31af7Sopenharmony_cias:
2023e5c31af7Sopenharmony_ci
2024e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingFeatures.adoc[]
2025e5c31af7Sopenharmony_ci
2026e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[]
2027e5c31af7Sopenharmony_cior the equivalent
2028e5c31af7Sopenharmony_ci
2029e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingFeaturesEXT.adoc[]
2030e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[]
2031e5c31af7Sopenharmony_ci
2032e5c31af7Sopenharmony_ciThis structure describes the following features:
2033e5c31af7Sopenharmony_ci
2034e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2035e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2036e5c31af7Sopenharmony_ci    structure.
2037e5c31af7Sopenharmony_ci
2038e5c31af7Sopenharmony_ci// Must have preceding whitespace
2039e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2040e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2041e5c31af7Sopenharmony_ci// tag::VK_EXT_descriptor_indexing-features[]
2042e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderInputAttachmentArrayDynamicIndexing]]
2043e5c31af7Sopenharmony_ci    pname:shaderInputAttachmentArrayDynamicIndexing indicates whether arrays
2044e5c31af7Sopenharmony_ci    of input attachments can: be indexed by dynamically uniform integer
2045e5c31af7Sopenharmony_ci    expressions in shader code.
2046e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2047e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must: be indexed only by
2048e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
2049e5c31af7Sopenharmony_ci    code.
2050e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2051e5c31af7Sopenharmony_ci    code:InputAttachmentArrayDynamicIndexing capability.
2052e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderUniformTexelBufferArrayDynamicIndexing]]
2053e5c31af7Sopenharmony_ci    pname:shaderUniformTexelBufferArrayDynamicIndexing indicates whether
2054e5c31af7Sopenharmony_ci    arrays of uniform texel buffers can: be indexed by dynamically uniform
2055e5c31af7Sopenharmony_ci    integer expressions in shader code.
2056e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2057e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must: be indexed only by
2058e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
2059e5c31af7Sopenharmony_ci    code.
2060e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2061e5c31af7Sopenharmony_ci    code:UniformTexelBufferArrayDynamicIndexing capability.
2062e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderStorageTexelBufferArrayDynamicIndexing]]
2063e5c31af7Sopenharmony_ci    pname:shaderStorageTexelBufferArrayDynamicIndexing indicates whether
2064e5c31af7Sopenharmony_ci    arrays of storage texel buffers can: be indexed by dynamically uniform
2065e5c31af7Sopenharmony_ci    integer expressions in shader code.
2066e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2067e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must: be indexed only by
2068e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
2069e5c31af7Sopenharmony_ci    code.
2070e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2071e5c31af7Sopenharmony_ci    code:StorageTexelBufferArrayDynamicIndexing capability.
2072e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderUniformBufferArrayNonUniformIndexing]]
2073e5c31af7Sopenharmony_ci    pname:shaderUniformBufferArrayNonUniformIndexing indicates whether
2074e5c31af7Sopenharmony_ci    arrays of uniform buffers can: be indexed by non-uniform integer
2075e5c31af7Sopenharmony_ci    expressions in shader code.
2076e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2077e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
2078e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must: not be indexed by
2079e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
2080e5c31af7Sopenharmony_ci    code.
2081e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2082e5c31af7Sopenharmony_ci    code:UniformBufferArrayNonUniformIndexing capability.
2083e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderSampledImageArrayNonUniformIndexing]]
2084e5c31af7Sopenharmony_ci    pname:shaderSampledImageArrayNonUniformIndexing indicates whether arrays
2085e5c31af7Sopenharmony_ci    of samplers or sampled images can: be indexed by non-uniform integer
2086e5c31af7Sopenharmony_ci    expressions in shader code.
2087e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2088e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLER,
2089e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or
2090e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must: not be indexed by
2091e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
2092e5c31af7Sopenharmony_ci    code.
2093e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2094e5c31af7Sopenharmony_ci    code:SampledImageArrayNonUniformIndexing capability.
2095e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderStorageBufferArrayNonUniformIndexing]]
2096e5c31af7Sopenharmony_ci    pname:shaderStorageBufferArrayNonUniformIndexing indicates whether
2097e5c31af7Sopenharmony_ci    arrays of storage buffers can: be indexed by non-uniform integer
2098e5c31af7Sopenharmony_ci    expressions in shader code.
2099e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2100e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
2101e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must: not be indexed by
2102e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
2103e5c31af7Sopenharmony_ci    code.
2104e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2105e5c31af7Sopenharmony_ci    code:StorageBufferArrayNonUniformIndexing capability.
2106e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderStorageImageArrayNonUniformIndexing]]
2107e5c31af7Sopenharmony_ci    pname:shaderStorageImageArrayNonUniformIndexing indicates whether arrays
2108e5c31af7Sopenharmony_ci    of storage images can: be indexed by non-uniform integer expressions in
2109e5c31af7Sopenharmony_ci    shader code.
2110e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2111e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must: not be indexed by
2112e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
2113e5c31af7Sopenharmony_ci    code.
2114e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2115e5c31af7Sopenharmony_ci    code:StorageImageArrayNonUniformIndexing capability.
2116e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderInputAttachmentArrayNonUniformIndexing]]
2117e5c31af7Sopenharmony_ci    pname:shaderInputAttachmentArrayNonUniformIndexing indicates whether
2118e5c31af7Sopenharmony_ci    arrays of input attachments can: be indexed by non-uniform integer
2119e5c31af7Sopenharmony_ci    expressions in shader code.
2120e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2121e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must: not be indexed by
2122e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
2123e5c31af7Sopenharmony_ci    code.
2124e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2125e5c31af7Sopenharmony_ci    code:InputAttachmentArrayNonUniformIndexing capability.
2126e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderUniformTexelBufferArrayNonUniformIndexing]]
2127e5c31af7Sopenharmony_ci    pname:shaderUniformTexelBufferArrayNonUniformIndexing indicates whether
2128e5c31af7Sopenharmony_ci    arrays of uniform texel buffers can: be indexed by non-uniform integer
2129e5c31af7Sopenharmony_ci    expressions in shader code.
2130e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2131e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must: not be indexed by
2132e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
2133e5c31af7Sopenharmony_ci    code.
2134e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2135e5c31af7Sopenharmony_ci    code:UniformTexelBufferArrayNonUniformIndexing capability.
2136e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderStorageTexelBufferArrayNonUniformIndexing]]
2137e5c31af7Sopenharmony_ci    pname:shaderStorageTexelBufferArrayNonUniformIndexing indicates whether
2138e5c31af7Sopenharmony_ci    arrays of storage texel buffers can: be indexed by non-uniform integer
2139e5c31af7Sopenharmony_ci    expressions in shader code.
2140e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
2141e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must: not be indexed by
2142e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
2143e5c31af7Sopenharmony_ci    code.
2144e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2145e5c31af7Sopenharmony_ci    code:StorageTexelBufferArrayNonUniformIndexing capability.
2146e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingUniformBufferUpdateAfterBind]]
2147e5c31af7Sopenharmony_ci    pname:descriptorBindingUniformBufferUpdateAfterBind indicates whether
2148e5c31af7Sopenharmony_ci    the implementation supports updating uniform buffer descriptors after a
2149e5c31af7Sopenharmony_ci    set is bound.
2150e5c31af7Sopenharmony_ci    If this feature is not enabled,
2151e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
2152e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER.
2153e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingSampledImageUpdateAfterBind]]
2154e5c31af7Sopenharmony_ci    pname:descriptorBindingSampledImageUpdateAfterBind indicates whether the
2155e5c31af7Sopenharmony_ci    implementation supports updating sampled image descriptors after a set
2156e5c31af7Sopenharmony_ci    is bound.
2157e5c31af7Sopenharmony_ci    If this feature is not enabled,
2158e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
2159e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLER,
2160e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or
2161e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE.
2162e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingStorageImageUpdateAfterBind]]
2163e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageImageUpdateAfterBind indicates whether the
2164e5c31af7Sopenharmony_ci    implementation supports updating storage image descriptors after a set
2165e5c31af7Sopenharmony_ci    is bound.
2166e5c31af7Sopenharmony_ci    If this feature is not enabled,
2167e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
2168e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE.
2169e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingStorageBufferUpdateAfterBind]]
2170e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageBufferUpdateAfterBind indicates whether
2171e5c31af7Sopenharmony_ci    the implementation supports updating storage buffer descriptors after a
2172e5c31af7Sopenharmony_ci    set is bound.
2173e5c31af7Sopenharmony_ci    If this feature is not enabled,
2174e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
2175e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER.
2176e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingUniformTexelBufferUpdateAfterBind]]
2177e5c31af7Sopenharmony_ci    pname:descriptorBindingUniformTexelBufferUpdateAfterBind indicates
2178e5c31af7Sopenharmony_ci    whether the implementation supports updating uniform texel buffer
2179e5c31af7Sopenharmony_ci    descriptors after a set is bound.
2180e5c31af7Sopenharmony_ci    If this feature is not enabled,
2181e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
2182e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.
2183e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingStorageTexelBufferUpdateAfterBind]]
2184e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageTexelBufferUpdateAfterBind indicates
2185e5c31af7Sopenharmony_ci    whether the implementation supports updating storage texel buffer
2186e5c31af7Sopenharmony_ci    descriptors after a set is bound.
2187e5c31af7Sopenharmony_ci    If this feature is not enabled,
2188e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
2189e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.
2190e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingUpdateUnusedWhilePending]]
2191e5c31af7Sopenharmony_ci    pname:descriptorBindingUpdateUnusedWhilePending indicates whether the
2192e5c31af7Sopenharmony_ci    implementation supports updating descriptors while the set is in use.
2193e5c31af7Sopenharmony_ci    If this feature is not enabled,
2194e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT must: not be
2195e5c31af7Sopenharmony_ci    used.
2196e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingPartiallyBound]]
2197e5c31af7Sopenharmony_ci    pname:descriptorBindingPartiallyBound indicates whether the
2198e5c31af7Sopenharmony_ci    implementation supports statically using a descriptor set binding in
2199e5c31af7Sopenharmony_ci    which some descriptors are not valid.
2200e5c31af7Sopenharmony_ci    If this feature is not enabled,
2201e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT must: not be used.
2202e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingVariableDescriptorCount]]
2203e5c31af7Sopenharmony_ci    pname:descriptorBindingVariableDescriptorCount indicates whether the
2204e5c31af7Sopenharmony_ci    implementation supports descriptor sets with a variable-sized last
2205e5c31af7Sopenharmony_ci    binding.
2206e5c31af7Sopenharmony_ci    If this feature is not enabled,
2207e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT must: not be
2208e5c31af7Sopenharmony_ci    used.
2209e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-runtimeDescriptorArray]]
2210e5c31af7Sopenharmony_ci    pname:runtimeDescriptorArray indicates whether the implementation
2211e5c31af7Sopenharmony_ci    supports the SPIR-V code:RuntimeDescriptorArray capability.
2212e5c31af7Sopenharmony_ci    If this feature is not enabled, descriptors must: not be declared in
2213e5c31af7Sopenharmony_ci    runtime arrays.
2214e5c31af7Sopenharmony_ci// end::VK_EXT_descriptor_indexing-features[]
2215e5c31af7Sopenharmony_ci
2216e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorIndexingFeatures
2217e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2218e5c31af7Sopenharmony_ci
2219e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorIndexingFeatures.adoc[]
2220e5c31af7Sopenharmony_ci--
2221e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2222e5c31af7Sopenharmony_ci
2223e5c31af7Sopenharmony_ciifdef::VK_NV_copy_memory_indirect[]
2224e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCopyMemoryIndirectFeaturesNV',desc='Structure describing indirect copy features supported by an implementation',type='structs']
2225e5c31af7Sopenharmony_ci--
2226e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCopyMemoryIndirectFeaturesNV structure is defined
2227e5c31af7Sopenharmony_cias:
2228e5c31af7Sopenharmony_ci
2229e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV.adoc[]
2230e5c31af7Sopenharmony_ci
2231e5c31af7Sopenharmony_ciThis structure describes the following features:
2232e5c31af7Sopenharmony_ci
2233e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2234e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2235e5c31af7Sopenharmony_ci    structure.
2236e5c31af7Sopenharmony_ci  * [[features-indirectCopy]] pname:indirectCopy indicates whether
2237e5c31af7Sopenharmony_ci    <<indirect-copies, indirect copies>> are supported.
2238e5c31af7Sopenharmony_ci
2239e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCopyMemoryIndirectFeaturesNV
2240e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2241e5c31af7Sopenharmony_ci
2242e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV.adoc[]
2243e5c31af7Sopenharmony_ci--
2244e5c31af7Sopenharmony_ciendif::VK_NV_copy_memory_indirect[]
2245e5c31af7Sopenharmony_ci
2246e5c31af7Sopenharmony_ciifdef::VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor[]
2247e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR',desc='Structure describing if fetching of vertex attribute may be repeated for instanced rendering',type='structs',alias='VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT']
2248e5c31af7Sopenharmony_ci--
2249e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR structure is
2250e5c31af7Sopenharmony_cidefined as:
2251e5c31af7Sopenharmony_ci
2252e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR.adoc[]
2253e5c31af7Sopenharmony_ci
2254e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[]
2255e5c31af7Sopenharmony_cior the equivalent
2256e5c31af7Sopenharmony_ci
2257e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.adoc[]
2258e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[]
2259e5c31af7Sopenharmony_ci
2260e5c31af7Sopenharmony_ciThis structure describes the following features:
2261e5c31af7Sopenharmony_ci
2262e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2263e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2264e5c31af7Sopenharmony_ci    structure.
2265e5c31af7Sopenharmony_ci  * [[features-vertexAttributeInstanceRateDivisor]]
2266e5c31af7Sopenharmony_ci    pname:vertexAttributeInstanceRateDivisor specifies whether vertex
2267e5c31af7Sopenharmony_ci    attribute fetching may be repeated in the case of instanced rendering.
2268e5c31af7Sopenharmony_ci  * [[features-vertexAttributeInstanceRateZeroDivisor]]
2269e5c31af7Sopenharmony_ci    pname:vertexAttributeInstanceRateZeroDivisor specifies whether a zero
2270e5c31af7Sopenharmony_ci    value for slink:VkVertexInputBindingDivisorDescriptionEXT::pname:divisor
2271e5c31af7Sopenharmony_ci    is supported.
2272e5c31af7Sopenharmony_ci
2273e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR
2274e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2275e5c31af7Sopenharmony_ci
2276e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR.adoc[]
2277e5c31af7Sopenharmony_ci--
2278e5c31af7Sopenharmony_ciendif::VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor[]
2279e5c31af7Sopenharmony_ci
2280e5c31af7Sopenharmony_ciifdef::VK_EXT_astc_decode_mode[]
2281e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceASTCDecodeFeaturesEXT',desc='Structure describing ASTC decode mode features',type='structs']
2282e5c31af7Sopenharmony_ci--
2283e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceASTCDecodeFeaturesEXT structure is defined as:
2284e5c31af7Sopenharmony_ci
2285e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceASTCDecodeFeaturesEXT.adoc[]
2286e5c31af7Sopenharmony_ci
2287e5c31af7Sopenharmony_ciThis structure describes the following feature:
2288e5c31af7Sopenharmony_ci
2289e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2290e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2291e5c31af7Sopenharmony_ci    structure.
2292e5c31af7Sopenharmony_ci  * [[features-astc-decodeModeSharedExponent]]
2293e5c31af7Sopenharmony_ci    pname:decodeModeSharedExponent indicates whether the implementation
2294e5c31af7Sopenharmony_ci    supports decoding ASTC compressed formats to
2295e5c31af7Sopenharmony_ci    ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 internal precision.
2296e5c31af7Sopenharmony_ci
2297e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceASTCDecodeFeaturesEXT
2298e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2299e5c31af7Sopenharmony_ci
2300e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceASTCDecodeFeaturesEXT.adoc[]
2301e5c31af7Sopenharmony_ci--
2302e5c31af7Sopenharmony_ciendif::VK_EXT_astc_decode_mode[]
2303e5c31af7Sopenharmony_ci
2304e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
2305e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTransformFeedbackFeaturesEXT',desc='Structure describing transform feedback features that can be supported by an implementation',type='structs']
2306e5c31af7Sopenharmony_ci--
2307e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTransformFeedbackFeaturesEXT structure is defined
2308e5c31af7Sopenharmony_cias:
2309e5c31af7Sopenharmony_ci
2310e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTransformFeedbackFeaturesEXT.adoc[]
2311e5c31af7Sopenharmony_ci
2312e5c31af7Sopenharmony_ciThis structure describes the following features:
2313e5c31af7Sopenharmony_ci
2314e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2315e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2316e5c31af7Sopenharmony_ci    structure.
2317e5c31af7Sopenharmony_ci  * [[features-transformFeedback]] pname:transformFeedback indicates whether
2318e5c31af7Sopenharmony_ci    the implementation supports transform feedback and shader modules can:
2319e5c31af7Sopenharmony_ci    declare the code:TransformFeedback capability.
2320e5c31af7Sopenharmony_ci  * [[features-geometryStreams]] pname:geometryStreams indicates whether the
2321e5c31af7Sopenharmony_ci    implementation supports the code:GeometryStreams SPIR-V capability.
2322e5c31af7Sopenharmony_ci
2323e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTransformFeedbackFeaturesEXT
2324e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2325e5c31af7Sopenharmony_ci
2326e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTransformFeedbackFeaturesEXT.adoc[]
2327e5c31af7Sopenharmony_ci--
2328e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
2329e5c31af7Sopenharmony_ci
2330e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[]
2331e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkanMemoryModelFeatures',desc='Structure describing features supported by the memory model',type='structs']
2332e5c31af7Sopenharmony_ci--
2333e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkanMemoryModelFeatures structure is defined as:
2334e5c31af7Sopenharmony_ci
2335e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanMemoryModelFeatures.adoc[]
2336e5c31af7Sopenharmony_ci
2337e5c31af7Sopenharmony_ciifdef::VK_KHR_vulkan_memory_model[]
2338e5c31af7Sopenharmony_cior the equivalent
2339e5c31af7Sopenharmony_ci
2340e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanMemoryModelFeaturesKHR.adoc[]
2341e5c31af7Sopenharmony_ciendif::VK_KHR_vulkan_memory_model[]
2342e5c31af7Sopenharmony_ci
2343e5c31af7Sopenharmony_ciThis structure describes the following features:
2344e5c31af7Sopenharmony_ci
2345e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2346e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2347e5c31af7Sopenharmony_ci    structure.
2348e5c31af7Sopenharmony_ci
2349e5c31af7Sopenharmony_ci// Must have preceding whitespace
2350e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2351e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2352e5c31af7Sopenharmony_ci// tag::VK_KHR_vulkan_memory_model-features[]
2353e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-vulkanMemoryModel]] pname:vulkanMemoryModel
2354e5c31af7Sopenharmony_ci    indicates whether shader modules can: declare the code:VulkanMemoryModel
2355e5c31af7Sopenharmony_ci    capability.
2356e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-vulkanMemoryModelDeviceScope]]
2357e5c31af7Sopenharmony_ci    pname:vulkanMemoryModelDeviceScope indicates whether the Vulkan Memory
2358e5c31af7Sopenharmony_ci    Model can use code:Device scope synchronization.
2359e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2360e5c31af7Sopenharmony_ci    code:VulkanMemoryModelDeviceScope capability.
2361e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-vulkanMemoryModelAvailabilityVisibilityChains]]
2362e5c31af7Sopenharmony_ci    pname:vulkanMemoryModelAvailabilityVisibilityChains indicates whether
2363e5c31af7Sopenharmony_ci    the Vulkan Memory Model can use <<memory-model-availability-visibility,
2364e5c31af7Sopenharmony_ci    availability and visibility chains>> with more than one element.
2365e5c31af7Sopenharmony_ci// end::VK_KHR_vulkan_memory_model-features[]
2366e5c31af7Sopenharmony_ci
2367e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkanMemoryModelFeaturesKHR
2368e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2369e5c31af7Sopenharmony_ci
2370e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkanMemoryModelFeatures.adoc[]
2371e5c31af7Sopenharmony_ci--
2372e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[]
2373e5c31af7Sopenharmony_ci
2374e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
2375e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInlineUniformBlockFeatures',desc='Structure describing inline uniform block features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceInlineUniformBlockFeaturesEXT']
2376e5c31af7Sopenharmony_ci--
2377e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInlineUniformBlockFeatures structure is defined
2378e5c31af7Sopenharmony_cias:
2379e5c31af7Sopenharmony_ci
2380e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInlineUniformBlockFeatures.adoc[]
2381e5c31af7Sopenharmony_ci
2382e5c31af7Sopenharmony_ciifdef::VK_EXT_inline_uniform_block[]
2383e5c31af7Sopenharmony_cior the equivalent
2384e5c31af7Sopenharmony_ci
2385e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInlineUniformBlockFeaturesEXT.adoc[]
2386e5c31af7Sopenharmony_ciendif::VK_EXT_inline_uniform_block[]
2387e5c31af7Sopenharmony_ci
2388e5c31af7Sopenharmony_ciThis structure describes the following features:
2389e5c31af7Sopenharmony_ci
2390e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2391e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2392e5c31af7Sopenharmony_ci    structure.
2393e5c31af7Sopenharmony_ci
2394e5c31af7Sopenharmony_ci// Must have preceding whitespace
2395e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
2396e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
2397e5c31af7Sopenharmony_ci// tag::VK_EXT_inline_uniform_block-features[]
2398e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-inlineUniformBlock]] pname:inlineUniformBlock
2399e5c31af7Sopenharmony_ci    indicates whether the implementation supports inline uniform block
2400e5c31af7Sopenharmony_ci    descriptors.
2401e5c31af7Sopenharmony_ci    If this feature is not enabled,
2402e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK must: not be used.
2403e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingInlineUniformBlockUpdateAfterBind]]
2404e5c31af7Sopenharmony_ci    pname:descriptorBindingInlineUniformBlockUpdateAfterBind
2405e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2406e5c31af7Sopenharmony_ci    is ename:VK_FALSE and reserved for future use.
2407e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2408e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2409e5c31af7Sopenharmony_ci    indicates whether the implementation supports updating inline uniform
2410e5c31af7Sopenharmony_ci    block descriptors after a set is bound.
2411e5c31af7Sopenharmony_ci    If this feature is not enabled,
2412e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
2413e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK.
2414e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2415e5c31af7Sopenharmony_ci// end::VK_EXT_inline_uniform_block-features[]
2416e5c31af7Sopenharmony_ci
2417e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInlineUniformBlockFeatures
2418e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2419e5c31af7Sopenharmony_ci
2420e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInlineUniformBlockFeatures.adoc[]
2421e5c31af7Sopenharmony_ci--
2422e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
2423e5c31af7Sopenharmony_ci
2424e5c31af7Sopenharmony_ciifdef::VK_NV_representative_fragment_test[]
2425e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV',desc='Structure describing the representative fragment test features that can be supported by an implementation',type='structs']
2426e5c31af7Sopenharmony_ci--
2427e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV structure is
2428e5c31af7Sopenharmony_cidefined as:
2429e5c31af7Sopenharmony_ci
2430e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.adoc[]
2431e5c31af7Sopenharmony_ci
2432e5c31af7Sopenharmony_ciThis structure describes the following feature:
2433e5c31af7Sopenharmony_ci
2434e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2435e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2436e5c31af7Sopenharmony_ci    structure.
2437e5c31af7Sopenharmony_ci  * [[features-representativeFragmentTest]] pname:representativeFragmentTest
2438e5c31af7Sopenharmony_ci    indicates whether the implementation supports the representative
2439e5c31af7Sopenharmony_ci    fragment test.
2440e5c31af7Sopenharmony_ci    See <<fragops-rep-frag-test, Representative Fragment Test>>.
2441e5c31af7Sopenharmony_ci
2442e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV
2443e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2444e5c31af7Sopenharmony_ci
2445e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.adoc[]
2446e5c31af7Sopenharmony_ci--
2447e5c31af7Sopenharmony_ciendif::VK_NV_representative_fragment_test[]
2448e5c31af7Sopenharmony_ci
2449e5c31af7Sopenharmony_ciifdef::VK_NV_scissor_exclusive[]
2450e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExclusiveScissorFeaturesNV',desc='Structure describing exclusive scissor features that can be supported by an implementation',type='structs']
2451e5c31af7Sopenharmony_ci--
2452e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExclusiveScissorFeaturesNV structure is defined
2453e5c31af7Sopenharmony_cias:
2454e5c31af7Sopenharmony_ci
2455e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExclusiveScissorFeaturesNV.adoc[]
2456e5c31af7Sopenharmony_ci
2457e5c31af7Sopenharmony_ciThis structure describes the following feature:
2458e5c31af7Sopenharmony_ci
2459e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2460e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2461e5c31af7Sopenharmony_ci    structure.
2462e5c31af7Sopenharmony_ci  * [[features-exclusiveScissor]] pname:exclusiveScissor indicates that the
2463e5c31af7Sopenharmony_ci    implementation supports the exclusive scissor test.
2464e5c31af7Sopenharmony_ci
2465e5c31af7Sopenharmony_ciSee <<fragops-exclusive-scissor,Exclusive Scissor Test>> for more
2466e5c31af7Sopenharmony_ciinformation.
2467e5c31af7Sopenharmony_ci
2468e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExclusiveScissorFeaturesNV
2469e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2470e5c31af7Sopenharmony_ci
2471e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExclusiveScissorFeaturesNV.adoc[]
2472e5c31af7Sopenharmony_ci--
2473e5c31af7Sopenharmony_ciendif::VK_NV_scissor_exclusive[]
2474e5c31af7Sopenharmony_ci
2475e5c31af7Sopenharmony_ciifdef::VK_NV_corner_sampled_image[]
2476e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCornerSampledImageFeaturesNV',desc='Structure describing corner sampled image features that can be supported by an implementation',type='structs']
2477e5c31af7Sopenharmony_ci--
2478e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCornerSampledImageFeaturesNV structure is defined
2479e5c31af7Sopenharmony_cias:
2480e5c31af7Sopenharmony_ci
2481e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCornerSampledImageFeaturesNV.adoc[]
2482e5c31af7Sopenharmony_ci
2483e5c31af7Sopenharmony_ciThis structure describes the following feature:
2484e5c31af7Sopenharmony_ci
2485e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2486e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2487e5c31af7Sopenharmony_ci    structure.
2488e5c31af7Sopenharmony_ci  * [[features-cornersampledimage]] pname:cornerSampledImage specifies
2489e5c31af7Sopenharmony_ci    whether images can be created with a
2490e5c31af7Sopenharmony_ci    slink:VkImageCreateInfo::pname:flags containing
2491e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV.
2492e5c31af7Sopenharmony_ci    See <<resources-images-corner-sampled,Corner-Sampled Images>>.
2493e5c31af7Sopenharmony_ci
2494e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCornerSampledImageFeaturesNV
2495e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2496e5c31af7Sopenharmony_ci
2497e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCornerSampledImageFeaturesNV.adoc[]
2498e5c31af7Sopenharmony_ci--
2499e5c31af7Sopenharmony_ciendif::VK_NV_corner_sampled_image[]
2500e5c31af7Sopenharmony_ci
2501e5c31af7Sopenharmony_ciifdef::VK_NV_compute_shader_derivatives[]
2502e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceComputeShaderDerivativesFeaturesNV',desc='Structure describing compute shader derivative features that can be supported by an implementation',type='structs']
2503e5c31af7Sopenharmony_ci--
2504e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV structure is
2505e5c31af7Sopenharmony_cidefined as:
2506e5c31af7Sopenharmony_ci
2507e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.adoc[]
2508e5c31af7Sopenharmony_ci
2509e5c31af7Sopenharmony_ciThis structure describes the following features:
2510e5c31af7Sopenharmony_ci
2511e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2512e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2513e5c31af7Sopenharmony_ci    structure.
2514e5c31af7Sopenharmony_ci  * [[features-computeDerivativeGroupQuads]]
2515e5c31af7Sopenharmony_ci    pname:computeDerivativeGroupQuads indicates that the implementation
2516e5c31af7Sopenharmony_ci    supports the code:ComputeDerivativeGroupQuadsNV SPIR-V capability.
2517e5c31af7Sopenharmony_ci  * [[features-computeDerivativeGroupLinear]]
2518e5c31af7Sopenharmony_ci    pname:computeDerivativeGroupLinear indicates that the implementation
2519e5c31af7Sopenharmony_ci    supports the code:ComputeDerivativeGroupLinearNV SPIR-V capability.
2520e5c31af7Sopenharmony_ci
2521e5c31af7Sopenharmony_ciSee <<shaders-scope-quad, Quad shader scope>> for more information.
2522e5c31af7Sopenharmony_ci
2523e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures.
2524e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2525e5c31af7Sopenharmony_ci
2526e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.adoc[]
2527e5c31af7Sopenharmony_ci--
2528e5c31af7Sopenharmony_ciendif::VK_NV_compute_shader_derivatives[]
2529e5c31af7Sopenharmony_ci
2530e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shader_barycentric[]
2531e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR',desc='Structure describing barycentric support in fragment shaders that can be supported by an implementation',type='structs']
2532e5c31af7Sopenharmony_ci--
2533e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR structure is
2534e5c31af7Sopenharmony_cidefined as:
2535e5c31af7Sopenharmony_ci
2536e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.adoc[]
2537e5c31af7Sopenharmony_ci
2538e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shader_barycentric[]
2539e5c31af7Sopenharmony_cior the equivalent
2540e5c31af7Sopenharmony_ci
2541e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.adoc[]
2542e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shader_barycentric[]
2543e5c31af7Sopenharmony_ci
2544e5c31af7Sopenharmony_ciThis structure describes the following feature:
2545e5c31af7Sopenharmony_ci
2546e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2547e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2548e5c31af7Sopenharmony_ci    structure.
2549e5c31af7Sopenharmony_ci  * [[features-fragmentShaderBarycentric]] pname:fragmentShaderBarycentric
2550e5c31af7Sopenharmony_ci    indicates that the implementation supports the code:BaryCoordKHR and
2551e5c31af7Sopenharmony_ci    code:BaryCoordNoPerspKHR SPIR-V fragment shader built-ins and supports
2552e5c31af7Sopenharmony_ci    the code:PerVertexKHR SPIR-V decoration on fragment shader input
2553e5c31af7Sopenharmony_ci    variables.
2554e5c31af7Sopenharmony_ci
2555e5c31af7Sopenharmony_ciSee <<primsrast-barycentric,Barycentric Interpolation>> for more
2556e5c31af7Sopenharmony_ciinformation.
2557e5c31af7Sopenharmony_ci
2558e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
2559e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2560e5c31af7Sopenharmony_ci
2561e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.adoc[]
2562e5c31af7Sopenharmony_ci--
2563e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shader_barycentric[]
2564e5c31af7Sopenharmony_ci
2565e5c31af7Sopenharmony_ciifdef::VK_NV_shader_image_footprint[]
2566e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderImageFootprintFeaturesNV',desc='Structure describing shader image footprint features that can be supported by an implementation',type='structs']
2567e5c31af7Sopenharmony_ci--
2568e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderImageFootprintFeaturesNV structure is
2569e5c31af7Sopenharmony_cidefined as:
2570e5c31af7Sopenharmony_ci
2571e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderImageFootprintFeaturesNV.adoc[]
2572e5c31af7Sopenharmony_ci
2573e5c31af7Sopenharmony_ciThis structure describes the following feature:
2574e5c31af7Sopenharmony_ci
2575e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2576e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2577e5c31af7Sopenharmony_ci    structure.
2578e5c31af7Sopenharmony_ci  * [[features-imageFootprint]] pname:imageFootprint specifies whether the
2579e5c31af7Sopenharmony_ci    implementation supports the code:ImageFootprintNV SPIR-V capability.
2580e5c31af7Sopenharmony_ci
2581e5c31af7Sopenharmony_ciSee <<textures-footprint,Texel Footprint Evaluation>> for more information.
2582e5c31af7Sopenharmony_ci
2583e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderImageFootprintFeaturesNV
2584e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2585e5c31af7Sopenharmony_ci
2586e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderImageFootprintFeaturesNV.adoc[]
2587e5c31af7Sopenharmony_ci--
2588e5c31af7Sopenharmony_ciendif::VK_NV_shader_image_footprint[]
2589e5c31af7Sopenharmony_ci
2590e5c31af7Sopenharmony_ciifdef::VK_NV_shading_rate_image[]
2591e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShadingRateImageFeaturesNV',desc='Structure describing shading rate image features that can be supported by an implementation',type='structs']
2592e5c31af7Sopenharmony_ci--
2593e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShadingRateImageFeaturesNV structure is defined
2594e5c31af7Sopenharmony_cias:
2595e5c31af7Sopenharmony_ci
2596e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShadingRateImageFeaturesNV.adoc[]
2597e5c31af7Sopenharmony_ci
2598e5c31af7Sopenharmony_ciThis structure describes the following features:
2599e5c31af7Sopenharmony_ci
2600e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2601e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2602e5c31af7Sopenharmony_ci    structure.
2603e5c31af7Sopenharmony_ci  * [[features-shadingRateImage]] pname:shadingRateImage indicates that the
2604e5c31af7Sopenharmony_ci    implementation supports the use of a shading rate image to derive an
2605e5c31af7Sopenharmony_ci    effective shading rate for fragment processing.
2606e5c31af7Sopenharmony_ci    It also indicates that the implementation supports the
2607e5c31af7Sopenharmony_ci    code:ShadingRateNV SPIR-V execution mode.
2608e5c31af7Sopenharmony_ci  * [[features-shadingRateCoarseSampleOrder]]
2609e5c31af7Sopenharmony_ci    pname:shadingRateCoarseSampleOrder indicates that the implementation
2610e5c31af7Sopenharmony_ci    supports a user-configurable ordering of coverage samples in fragments
2611e5c31af7Sopenharmony_ci    larger than one pixel.
2612e5c31af7Sopenharmony_ci
2613e5c31af7Sopenharmony_ciSee <<primsrast-shading-rate-image, Shading Rate Image>> for more
2614e5c31af7Sopenharmony_ciinformation.
2615e5c31af7Sopenharmony_ci
2616e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShadingRateImageFeaturesNV
2617e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2618e5c31af7Sopenharmony_ci
2619e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShadingRateImageFeaturesNV.adoc[]
2620e5c31af7Sopenharmony_ci--
2621e5c31af7Sopenharmony_ciendif::VK_NV_shading_rate_image[]
2622e5c31af7Sopenharmony_ci
2623e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
2624e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMapFeaturesEXT',desc='Structure describing fragment density map features that can be supported by an implementation',type='structs']
2625e5c31af7Sopenharmony_ci--
2626e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMapFeaturesEXT structure is defined
2627e5c31af7Sopenharmony_cias:
2628e5c31af7Sopenharmony_ci
2629e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.adoc[]
2630e5c31af7Sopenharmony_ci
2631e5c31af7Sopenharmony_ciThis structure describes the following features:
2632e5c31af7Sopenharmony_ci
2633e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2634e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2635e5c31af7Sopenharmony_ci    structure.
2636e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMap]] pname:fragmentDensityMap specifies
2637e5c31af7Sopenharmony_ci    whether the implementation supports render passes with a fragment
2638e5c31af7Sopenharmony_ci    density map attachment.
2639e5c31af7Sopenharmony_ci    If this feature is not enabled and the pname:pNext chain of
2640e5c31af7Sopenharmony_ci    slink:VkRenderPassCreateInfo includes a
2641e5c31af7Sopenharmony_ci    slink:VkRenderPassFragmentDensityMapCreateInfoEXT structure,
2642e5c31af7Sopenharmony_ci    pname:fragmentDensityMapAttachment must: be ename:VK_ATTACHMENT_UNUSED.
2643e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMapDynamic]] pname:fragmentDensityMapDynamic
2644e5c31af7Sopenharmony_ci    specifies whether the implementation supports dynamic fragment density
2645e5c31af7Sopenharmony_ci    map image views.
2646e5c31af7Sopenharmony_ci    If this feature is not enabled,
2647e5c31af7Sopenharmony_ci    ename:VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT must:
2648e5c31af7Sopenharmony_ci    not be included in slink:VkImageViewCreateInfo::pname:flags.
2649e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMapNonSubsampledImages]]
2650e5c31af7Sopenharmony_ci    pname:fragmentDensityMapNonSubsampledImages specifies whether the
2651e5c31af7Sopenharmony_ci    implementation supports regular non-subsampled image attachments with
2652e5c31af7Sopenharmony_ci    fragment density map render passes.
2653e5c31af7Sopenharmony_ci    If this feature is not enabled, render passes with a
2654e5c31af7Sopenharmony_ci    <<renderpass-fragmentdensitymapattachment,fragment density map
2655e5c31af7Sopenharmony_ci    attachment>> must: only have <<samplers-subsamplesampler,subsampled
2656e5c31af7Sopenharmony_ci    attachments>> bound.
2657e5c31af7Sopenharmony_ci
2658e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMapFeaturesEXT
2659e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2660e5c31af7Sopenharmony_ci
2661e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.adoc[]
2662e5c31af7Sopenharmony_ci--
2663e5c31af7Sopenharmony_ci
2664e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map2[]
2665e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMap2FeaturesEXT',desc='Structure describing additional fragment density map features that can be supported by an implementation',type='structs']
2666e5c31af7Sopenharmony_ci--
2667e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMap2FeaturesEXT structure is
2668e5c31af7Sopenharmony_cidefined as:
2669e5c31af7Sopenharmony_ci
2670e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.adoc[]
2671e5c31af7Sopenharmony_ci
2672e5c31af7Sopenharmony_ciThis structure describes the following feature:
2673e5c31af7Sopenharmony_ci
2674e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2675e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2676e5c31af7Sopenharmony_ci    structure.
2677e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMapDeferred]] pname:fragmentDensityMapDeferred
2678e5c31af7Sopenharmony_ci    specifies whether the implementation supports deferred reads of fragment
2679e5c31af7Sopenharmony_ci    density map image views.
2680e5c31af7Sopenharmony_ci    If this feature is not enabled,
2681e5c31af7Sopenharmony_ci    ename:VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT must:
2682e5c31af7Sopenharmony_ci    not be included in sname:VkImageViewCreateInfo::pname:flags.
2683e5c31af7Sopenharmony_ci
2684e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
2685e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2686e5c31af7Sopenharmony_ci
2687e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.adoc[]
2688e5c31af7Sopenharmony_ci--
2689e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map2[]
2690e5c31af7Sopenharmony_ci
2691e5c31af7Sopenharmony_ciifdef::VK_QCOM_fragment_density_map_offset[]
2692e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',desc='Structure describing fragment density map offset features that can be supported by an implementation',type='structs']
2693e5c31af7Sopenharmony_ci--
2694e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM structure is
2695e5c31af7Sopenharmony_cidefined as:
2696e5c31af7Sopenharmony_ci
2697e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.adoc[]
2698e5c31af7Sopenharmony_ci
2699e5c31af7Sopenharmony_ciThis structure describes the following feature:
2700e5c31af7Sopenharmony_ci
2701e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2702e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2703e5c31af7Sopenharmony_ci    structure.
2704e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMapOffsets]] pname:fragmentDensityMapOffsets
2705e5c31af7Sopenharmony_ci    specifies whether the implementation supports
2706e5c31af7Sopenharmony_ci    <<renderpass-fragmentdensitymapoffsets,fragment density map offsets>>
2707e5c31af7Sopenharmony_ci
2708e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
2709e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2710e5c31af7Sopenharmony_ci
2711e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.adoc[]
2712e5c31af7Sopenharmony_ci--
2713e5c31af7Sopenharmony_ciendif::VK_QCOM_fragment_density_map_offset[]
2714e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
2715e5c31af7Sopenharmony_ci
2716e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_invocation_mask[]
2717e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInvocationMaskFeaturesHUAWEI',desc='Structure describing invocation mask features that can be supported by an implementation',type='structs']
2718e5c31af7Sopenharmony_ci--
2719e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInvocationMaskFeaturesHUAWEI structure is defined
2720e5c31af7Sopenharmony_cias:
2721e5c31af7Sopenharmony_ci
2722e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.adoc[]
2723e5c31af7Sopenharmony_ci
2724e5c31af7Sopenharmony_ciThis structure describes the following feature:
2725e5c31af7Sopenharmony_ci
2726e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2727e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2728e5c31af7Sopenharmony_ci    structure.
2729e5c31af7Sopenharmony_ci  * [[features-invocationMask]] pname:invocationMask indicates that the
2730e5c31af7Sopenharmony_ci    implementation supports the use of an invocation mask image to optimize
2731e5c31af7Sopenharmony_ci    the ray dispatch.
2732e5c31af7Sopenharmony_ci
2733e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInvocationMaskFeaturesHUAWEI
2734e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2735e5c31af7Sopenharmony_ci
2736e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.adoc[]
2737e5c31af7Sopenharmony_ci--
2738e5c31af7Sopenharmony_ciendif::VK_HUAWEI_invocation_mask[]
2739e5c31af7Sopenharmony_ci
2740e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_scalar_block_layout[]
2741e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceScalarBlockLayoutFeatures',desc='Structure indicating support for scalar block layouts',type='structs',alias='VkPhysicalDeviceScalarBlockLayoutFeaturesEXT']
2742e5c31af7Sopenharmony_ci--
2743e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceScalarBlockLayoutFeatures structure is defined as:
2744e5c31af7Sopenharmony_ci
2745e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceScalarBlockLayoutFeatures.adoc[]
2746e5c31af7Sopenharmony_ci
2747e5c31af7Sopenharmony_ciifdef::VK_EXT_scalar_block_layout[]
2748e5c31af7Sopenharmony_cior the equivalent
2749e5c31af7Sopenharmony_ci
2750e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceScalarBlockLayoutFeaturesEXT.adoc[]
2751e5c31af7Sopenharmony_ciendif::VK_EXT_scalar_block_layout[]
2752e5c31af7Sopenharmony_ci
2753e5c31af7Sopenharmony_ciThis structure describes the following feature:
2754e5c31af7Sopenharmony_ci
2755e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2756e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2757e5c31af7Sopenharmony_ci    structure.
2758e5c31af7Sopenharmony_ci
2759e5c31af7Sopenharmony_ci// Must have preceding whitespace
2760e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2761e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2762e5c31af7Sopenharmony_ci// tag::VK_EXT_scalar_block_layout-features[]
2763e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-scalarBlockLayout]] pname:scalarBlockLayout
2764e5c31af7Sopenharmony_ci    indicates that the implementation supports the layout of resource blocks
2765e5c31af7Sopenharmony_ci    in shaders using <<interfaces-alignment-requirements, scalar
2766e5c31af7Sopenharmony_ci    alignment>>.
2767e5c31af7Sopenharmony_ci// end::VK_EXT_scalar_block_layout-features[]
2768e5c31af7Sopenharmony_ci
2769e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceScalarBlockLayoutFeatures
2770e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2771e5c31af7Sopenharmony_ci
2772e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceScalarBlockLayoutFeatures.adoc[]
2773e5c31af7Sopenharmony_ci--
2774e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_scalar_block_layout[]
2775e5c31af7Sopenharmony_ci
2776e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[]
2777e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceUniformBufferStandardLayoutFeatures',desc='Structure indicating support for std430-like packing in uniform buffers',type='structs',alias='VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR']
2778e5c31af7Sopenharmony_ci--
2779e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceUniformBufferStandardLayoutFeatures structure is
2780e5c31af7Sopenharmony_cidefined as:
2781e5c31af7Sopenharmony_ci
2782e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.adoc[]
2783e5c31af7Sopenharmony_ci
2784e5c31af7Sopenharmony_ciifdef::VK_KHR_uniform_buffer_standard_layout[]
2785e5c31af7Sopenharmony_cior the equivalent
2786e5c31af7Sopenharmony_ci
2787e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR.adoc[]
2788e5c31af7Sopenharmony_ciendif::VK_KHR_uniform_buffer_standard_layout[]
2789e5c31af7Sopenharmony_ci
2790e5c31af7Sopenharmony_ciThis structure describes the following feature:
2791e5c31af7Sopenharmony_ci
2792e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2793e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2794e5c31af7Sopenharmony_ci    structure.
2795e5c31af7Sopenharmony_ci
2796e5c31af7Sopenharmony_ci// Must have preceding whitespace
2797e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2798e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2799e5c31af7Sopenharmony_ci// tag::VK_KHR_uniform_buffer_standard_layout-features[]
2800e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-uniformBufferStandardLayout]]
2801e5c31af7Sopenharmony_ci    pname:uniformBufferStandardLayout indicates that the implementation
2802e5c31af7Sopenharmony_ci    supports the same layouts for uniform buffers as for storage and other
2803e5c31af7Sopenharmony_ci    kinds of buffers.
2804e5c31af7Sopenharmony_ci    See <<interfaces-resources-standard-layout,Standard Buffer Layout>>.
2805e5c31af7Sopenharmony_ci// end::VK_KHR_uniform_buffer_standard_layout-features[]
2806e5c31af7Sopenharmony_ci
2807e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceUniformBufferStandardLayoutFeatures
2808e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2809e5c31af7Sopenharmony_ci
2810e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.adoc[]
2811e5c31af7Sopenharmony_ci--
2812e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[]
2813e5c31af7Sopenharmony_ci
2814e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_enable[]
2815e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClipEnableFeaturesEXT',desc='Structure indicating support for explicit enable of depth clip',type='structs']
2816e5c31af7Sopenharmony_ci--
2817e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClipEnableFeaturesEXT structure is defined
2818e5c31af7Sopenharmony_cias:
2819e5c31af7Sopenharmony_ci
2820e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClipEnableFeaturesEXT.adoc[]
2821e5c31af7Sopenharmony_ci
2822e5c31af7Sopenharmony_ciThis structure describes the following feature:
2823e5c31af7Sopenharmony_ci
2824e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2825e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2826e5c31af7Sopenharmony_ci    structure.
2827e5c31af7Sopenharmony_ci  * [[features-depthClipEnable]] pname:depthClipEnable indicates that the
2828e5c31af7Sopenharmony_ci    implementation supports setting the depth clipping operation explicitly
2829e5c31af7Sopenharmony_ci    via the slink:VkPipelineRasterizationDepthClipStateCreateInfoEXT
2830e5c31af7Sopenharmony_ci    pipeline state.
2831e5c31af7Sopenharmony_ci    Otherwise depth clipping is only enabled when
2832e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable is
2833e5c31af7Sopenharmony_ci    set to ename:VK_FALSE.
2834e5c31af7Sopenharmony_ci
2835e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClipEnableFeaturesEXT
2836e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2837e5c31af7Sopenharmony_ci
2838e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClipEnableFeaturesEXT.adoc[]
2839e5c31af7Sopenharmony_ci--
2840e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_enable[]
2841e5c31af7Sopenharmony_ci
2842e5c31af7Sopenharmony_ciifdef::VK_EXT_memory_priority[]
2843e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMemoryPriorityFeaturesEXT',desc='Structure describing memory priority features that can be supported by an implementation',type='structs']
2844e5c31af7Sopenharmony_ci--
2845e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMemoryPriorityFeaturesEXT structure is defined as:
2846e5c31af7Sopenharmony_ci
2847e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.adoc[]
2848e5c31af7Sopenharmony_ci
2849e5c31af7Sopenharmony_ciThis structure describes the following feature:
2850e5c31af7Sopenharmony_ci
2851e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2852e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2853e5c31af7Sopenharmony_ci    structure.
2854e5c31af7Sopenharmony_ci  * [[features-memoryPriority]] pname:memoryPriority indicates that the
2855e5c31af7Sopenharmony_ci    implementation supports memory priorities specified at memory allocation
2856e5c31af7Sopenharmony_ci    time via slink:VkMemoryPriorityAllocateInfoEXT.
2857e5c31af7Sopenharmony_ci
2858e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMemoryPriorityFeaturesEXT
2859e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2860e5c31af7Sopenharmony_ci
2861e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.adoc[]
2862e5c31af7Sopenharmony_ci--
2863e5c31af7Sopenharmony_ciendif::VK_EXT_memory_priority[]
2864e5c31af7Sopenharmony_ci
2865e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
2866e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBufferDeviceAddressFeatures',desc='Structure describing buffer address features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceBufferDeviceAddressFeaturesKHR']
2867e5c31af7Sopenharmony_ci--
2868e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeatures structure is defined
2869e5c31af7Sopenharmony_cias:
2870e5c31af7Sopenharmony_ci
2871e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeatures.adoc[]
2872e5c31af7Sopenharmony_ci
2873e5c31af7Sopenharmony_ciifdef::VK_KHR_buffer_device_address[]
2874e5c31af7Sopenharmony_cior the equivalent
2875e5c31af7Sopenharmony_ci
2876e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesKHR.adoc[]
2877e5c31af7Sopenharmony_ciendif::VK_KHR_buffer_device_address[]
2878e5c31af7Sopenharmony_ci
2879e5c31af7Sopenharmony_ciThis structure describes the following features:
2880e5c31af7Sopenharmony_ci
2881e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2882e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2883e5c31af7Sopenharmony_ci    structure.
2884e5c31af7Sopenharmony_ci
2885e5c31af7Sopenharmony_ci// Must have preceding whitespace
2886e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2887e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2888e5c31af7Sopenharmony_ci// tag::VK_EXT_buffer_device_address-features[]
2889e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-bufferDeviceAddress]]
2890e5c31af7Sopenharmony_ci    pname:bufferDeviceAddress indicates that the implementation supports
2891e5c31af7Sopenharmony_ci    accessing buffer memory in shaders as storage buffers via an address
2892e5c31af7Sopenharmony_ci    queried from flink:vkGetBufferDeviceAddress.
2893e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-bufferDeviceAddressCaptureReplay]]
2894e5c31af7Sopenharmony_ci    pname:bufferDeviceAddressCaptureReplay indicates that the implementation
2895e5c31af7Sopenharmony_ci    supports saving and reusing buffer and device addresses, e.g. for trace
2896e5c31af7Sopenharmony_ci    capture and replay.
2897e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-bufferDeviceAddressMultiDevice]]
2898e5c31af7Sopenharmony_ci    pname:bufferDeviceAddressMultiDevice indicates that the implementation
2899e5c31af7Sopenharmony_ci    supports the pname:bufferDeviceAddress
2900e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_tracing_pipeline+VK_KHR_ray_query[feature]
2901e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
2902e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_query[]
2903e5c31af7Sopenharmony_ci    and pname:rayTracingPipeline features
2904e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
2905e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[]
2906e5c31af7Sopenharmony_ci    , pname:rayTracingPipeline and pname:rayQuery features
2907e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
2908e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
2909e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_tracing_pipeline[]
2910e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[]
2911e5c31af7Sopenharmony_ci    and pname:rayQuery features
2912e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
2913e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
2914e5c31af7Sopenharmony_ci    for logical devices created with multiple physical devices.
2915e5c31af7Sopenharmony_ci    If this feature is not supported, buffer
2916e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
2917e5c31af7Sopenharmony_ci    and acceleration structure
2918e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
2919e5c31af7Sopenharmony_ci    addresses must: not be queried on a logical device created with more
2920e5c31af7Sopenharmony_ci    than one physical device.
2921e5c31af7Sopenharmony_ci// end::VK_EXT_buffer_device_address-features[]
2922e5c31af7Sopenharmony_ci
2923e5c31af7Sopenharmony_ci[NOTE]
2924e5c31af7Sopenharmony_ci.Note
2925e5c31af7Sopenharmony_ci====
2926e5c31af7Sopenharmony_cipname:bufferDeviceAddressMultiDevice exists to allow certain legacy
2927e5c31af7Sopenharmony_ciplatforms to be able to support pname:bufferDeviceAddress without needing to
2928e5c31af7Sopenharmony_cisupport shared GPU virtual addresses for multi-device configurations.
2929e5c31af7Sopenharmony_ci====
2930e5c31af7Sopenharmony_ci
2931e5c31af7Sopenharmony_ciSee flink:vkGetBufferDeviceAddress for more information.
2932e5c31af7Sopenharmony_ci
2933e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBufferDeviceAddressFeatures
2934e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2935e5c31af7Sopenharmony_ci
2936e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBufferDeviceAddressFeatures.adoc[]
2937e5c31af7Sopenharmony_ci--
2938e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
2939e5c31af7Sopenharmony_ci
2940e5c31af7Sopenharmony_ciifdef::VK_EXT_buffer_device_address[]
2941e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBufferDeviceAddressFeaturesEXT',desc='Structure describing buffer address features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceBufferAddressFeaturesEXT']
2942e5c31af7Sopenharmony_ci--
2943e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT structure is
2944e5c31af7Sopenharmony_cidefined as:
2945e5c31af7Sopenharmony_ci
2946e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.adoc[]
2947e5c31af7Sopenharmony_ci
2948e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferAddressFeaturesEXT.adoc[]
2949e5c31af7Sopenharmony_ci
2950e5c31af7Sopenharmony_ciThis structure describes the following features:
2951e5c31af7Sopenharmony_ci
2952e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2953e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2954e5c31af7Sopenharmony_ci    structure.
2955e5c31af7Sopenharmony_ci  * [[features-bufferDeviceAddressEXT]] pname:bufferDeviceAddress indicates
2956e5c31af7Sopenharmony_ci    that the implementation supports accessing buffer memory in shaders as
2957e5c31af7Sopenharmony_ci    storage buffers via an address queried from
2958e5c31af7Sopenharmony_ci    flink:vkGetBufferDeviceAddressEXT.
2959e5c31af7Sopenharmony_ci  * [[features-bufferDeviceAddressCaptureReplayEXT]]
2960e5c31af7Sopenharmony_ci    pname:bufferDeviceAddressCaptureReplay indicates that the implementation
2961e5c31af7Sopenharmony_ci    supports saving and reusing buffer addresses, e.g. for trace capture and
2962e5c31af7Sopenharmony_ci    replay.
2963e5c31af7Sopenharmony_ci  * [[features-bufferDeviceAddressMultiDeviceEXT]]
2964e5c31af7Sopenharmony_ci    pname:bufferDeviceAddressMultiDevice indicates that the implementation
2965e5c31af7Sopenharmony_ci    supports the pname:bufferDeviceAddress feature for logical devices
2966e5c31af7Sopenharmony_ci    created with multiple physical devices.
2967e5c31af7Sopenharmony_ci    If this feature is not supported, buffer addresses must: not be queried
2968e5c31af7Sopenharmony_ci    on a logical device created with more than one physical device.
2969e5c31af7Sopenharmony_ci
2970e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
2971e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
2972e5c31af7Sopenharmony_ci
2973e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
2974e5c31af7Sopenharmony_ci[NOTE]
2975e5c31af7Sopenharmony_ci.Note
2976e5c31af7Sopenharmony_ci====
2977e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT structure has the
2978e5c31af7Sopenharmony_cisame members as the sname:VkPhysicalDeviceBufferDeviceAddressFeatures
2979e5c31af7Sopenharmony_cistructure, but the functionality indicated by the members is expressed
2980e5c31af7Sopenharmony_cidifferently.
2981e5c31af7Sopenharmony_ciThe features indicated by the
2982e5c31af7Sopenharmony_cisname:VkPhysicalDeviceBufferDeviceAddressFeatures structure requires
2983e5c31af7Sopenharmony_ciadditional flags to be passed at memory allocation time, and the capture and
2984e5c31af7Sopenharmony_cireplay mechanism is built around opaque capture addresses for buffer and
2985e5c31af7Sopenharmony_cimemory objects.
2986e5c31af7Sopenharmony_ci====
2987e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
2988e5c31af7Sopenharmony_ci
2989e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.adoc[]
2990e5c31af7Sopenharmony_ci--
2991e5c31af7Sopenharmony_ciendif::VK_EXT_buffer_device_address[]
2992e5c31af7Sopenharmony_ci
2993e5c31af7Sopenharmony_ciifdef::VK_NV_dedicated_allocation_image_aliasing[]
2994e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',desc='Structure describing dedicated allocation image aliasing features that can be supported by an implementation',type='structs']
2995e5c31af7Sopenharmony_ci--
2996e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
2997e5c31af7Sopenharmony_cistructure is defined as:
2998e5c31af7Sopenharmony_ci
2999e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.adoc[]
3000e5c31af7Sopenharmony_ci
3001e5c31af7Sopenharmony_ciThis structure describes the following feature:
3002e5c31af7Sopenharmony_ci
3003e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3004e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3005e5c31af7Sopenharmony_ci    structure.
3006e5c31af7Sopenharmony_ci  * [[features-dedicatedAllocationImageAliasing]]
3007e5c31af7Sopenharmony_ci    pname:dedicatedAllocationImageAliasing indicates that the implementation
3008e5c31af7Sopenharmony_ci    supports aliasing of compatible image objects on a dedicated allocation.
3009e5c31af7Sopenharmony_ci
3010e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
3011e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3012e5c31af7Sopenharmony_ci
3013e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.adoc[]
3014e5c31af7Sopenharmony_ci--
3015e5c31af7Sopenharmony_ciendif::VK_NV_dedicated_allocation_image_aliasing[]
3016e5c31af7Sopenharmony_ci
3017e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[]
3018e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImagelessFramebufferFeatures',desc='Structure indicating support for imageless framebuffers',type='structs',alias='VkPhysicalDeviceImagelessFramebufferFeaturesKHR']
3019e5c31af7Sopenharmony_ci--
3020e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImagelessFramebufferFeatures structure is defined
3021e5c31af7Sopenharmony_cias:
3022e5c31af7Sopenharmony_ci
3023e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeatures.adoc[]
3024e5c31af7Sopenharmony_ci
3025e5c31af7Sopenharmony_ciifdef::VK_KHR_imageless_framebuffer[]
3026e5c31af7Sopenharmony_cior the equivalent
3027e5c31af7Sopenharmony_ci
3028e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeaturesKHR.adoc[]
3029e5c31af7Sopenharmony_ciendif::VK_KHR_imageless_framebuffer[]
3030e5c31af7Sopenharmony_ci
3031e5c31af7Sopenharmony_ciThis structure describes the following feature:
3032e5c31af7Sopenharmony_ci
3033e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3034e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3035e5c31af7Sopenharmony_ci    structure.
3036e5c31af7Sopenharmony_ci
3037e5c31af7Sopenharmony_ci// Must have preceding whitespace
3038e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
3039e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
3040e5c31af7Sopenharmony_ci// tag::VK_KHR_imageless_framebuffer-features[]
3041e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-imagelessFramebuffer]]
3042e5c31af7Sopenharmony_ci    pname:imagelessFramebuffer indicates that the implementation supports
3043e5c31af7Sopenharmony_ci    specifying the image view for attachments at render pass begin time via
3044e5c31af7Sopenharmony_ci    slink:VkRenderPassAttachmentBeginInfo.
3045e5c31af7Sopenharmony_ci// end::VK_KHR_imageless_framebuffer-features[]
3046e5c31af7Sopenharmony_ci
3047e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImagelessFramebufferFeatures
3048e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3049e5c31af7Sopenharmony_ci
3050e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImagelessFramebufferFeatures.adoc[]
3051e5c31af7Sopenharmony_ci--
3052e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[]
3053e5c31af7Sopenharmony_ci
3054e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[]
3055e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT',desc='Structure describing fragment shader interlock features that can be supported by an implementation',type='structs']
3056e5c31af7Sopenharmony_ci--
3057e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT structure is
3058e5c31af7Sopenharmony_cidefined as:
3059e5c31af7Sopenharmony_ci
3060e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.adoc[]
3061e5c31af7Sopenharmony_ci
3062e5c31af7Sopenharmony_ciThis structure describes the following features:
3063e5c31af7Sopenharmony_ci
3064e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3065e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3066e5c31af7Sopenharmony_ci    structure.
3067e5c31af7Sopenharmony_ci  * [[features-fragmentShaderSampleInterlock]]
3068e5c31af7Sopenharmony_ci    pname:fragmentShaderSampleInterlock indicates that the implementation
3069e5c31af7Sopenharmony_ci    supports the code:FragmentShaderSampleInterlockEXT SPIR-V capability.
3070e5c31af7Sopenharmony_ci  * [[features-fragmentShaderPixelInterlock]]
3071e5c31af7Sopenharmony_ci    pname:fragmentShaderPixelInterlock indicates that the implementation
3072e5c31af7Sopenharmony_ci    supports the code:FragmentShaderPixelInterlockEXT SPIR-V capability.
3073e5c31af7Sopenharmony_ci  * [[features-fragmentShaderShadingRateInterlock]]
3074e5c31af7Sopenharmony_ci    pname:fragmentShaderShadingRateInterlock indicates that the
3075e5c31af7Sopenharmony_ci    implementation supports the code:FragmentShaderShadingRateInterlockEXT
3076e5c31af7Sopenharmony_ci    SPIR-V capability.
3077e5c31af7Sopenharmony_ci
3078e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
3079e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3080e5c31af7Sopenharmony_ci
3081e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.adoc[]
3082e5c31af7Sopenharmony_ci--
3083e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[]
3084e5c31af7Sopenharmony_ci
3085e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[]
3086e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCooperativeMatrixFeaturesNV',desc='Structure describing cooperative matrix features that can be supported by an implementation',type='structs']
3087e5c31af7Sopenharmony_ci--
3088e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCooperativeMatrixFeaturesNV structure is defined
3089e5c31af7Sopenharmony_cias:
3090e5c31af7Sopenharmony_ci
3091e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixFeaturesNV.adoc[]
3092e5c31af7Sopenharmony_ci
3093e5c31af7Sopenharmony_ciThis structure describes the following features:
3094e5c31af7Sopenharmony_ci
3095e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3096e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3097e5c31af7Sopenharmony_ci    structure.
3098e5c31af7Sopenharmony_ci  * [[features-cooperativeMatrix-NV]] pname:cooperativeMatrix indicates that
3099e5c31af7Sopenharmony_ci    the implementation supports the code:CooperativeMatrixNV SPIR-V
3100e5c31af7Sopenharmony_ci    capability.
3101e5c31af7Sopenharmony_ci  * [[features-cooperativeMatrixRobustBufferAccess-NV]]
3102e5c31af7Sopenharmony_ci    pname:cooperativeMatrixRobustBufferAccess indicates that the
3103e5c31af7Sopenharmony_ci    implementation supports robust buffer access for SPIR-V
3104e5c31af7Sopenharmony_ci    code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV
3105e5c31af7Sopenharmony_ci    instructions.
3106e5c31af7Sopenharmony_ci
3107e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCooperativeMatrixFeaturesNV
3108e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3109e5c31af7Sopenharmony_ci
3110e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCooperativeMatrixFeaturesNV.adoc[]
3111e5c31af7Sopenharmony_ci--
3112e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[]
3113e5c31af7Sopenharmony_ci
3114e5c31af7Sopenharmony_ciifdef::VK_KHR_cooperative_matrix[]
3115e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCooperativeMatrixFeaturesKHR',desc='Structure describing cooperative matrix features that can be supported by an implementation',type='structs']
3116e5c31af7Sopenharmony_ci--
3117e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCooperativeMatrixFeaturesKHR structure is defined
3118e5c31af7Sopenharmony_cias:
3119e5c31af7Sopenharmony_ci
3120e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.adoc[]
3121e5c31af7Sopenharmony_ci
3122e5c31af7Sopenharmony_ciThis structure describes the following features:
3123e5c31af7Sopenharmony_ci
3124e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3125e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3126e5c31af7Sopenharmony_ci    structure.
3127e5c31af7Sopenharmony_ci  * [[features-cooperativeMatrix]] pname:cooperativeMatrix indicates that
3128e5c31af7Sopenharmony_ci    the implementation supports the code:CooperativeMatrixKHR SPIR-V
3129e5c31af7Sopenharmony_ci    capability.
3130e5c31af7Sopenharmony_ci  * [[features-cooperativeMatrixRobustBufferAccess]]
3131e5c31af7Sopenharmony_ci    pname:cooperativeMatrixRobustBufferAccess indicates that the
3132e5c31af7Sopenharmony_ci    implementation supports robust buffer access for SPIR-V
3133e5c31af7Sopenharmony_ci    code:OpCooperativeMatrixLoadKHR and code:OpCooperativeMatrixStoreKHR
3134e5c31af7Sopenharmony_ci    instructions.
3135e5c31af7Sopenharmony_ci
3136e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCooperativeMatrixFeaturesKHR
3137e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3138e5c31af7Sopenharmony_ci
3139e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.adoc[]
3140e5c31af7Sopenharmony_ci--
3141e5c31af7Sopenharmony_ciendif::VK_KHR_cooperative_matrix[]
3142e5c31af7Sopenharmony_ci
3143e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_image_arrays[]
3144e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcrImageArraysFeaturesEXT',desc='Structure describing extended {YCbCr} image creation features that can be supported by an implementation',type='structs']
3145e5c31af7Sopenharmony_ci--
3146e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcrImageArraysFeaturesEXT structure is defined
3147e5c31af7Sopenharmony_cias:
3148e5c31af7Sopenharmony_ci
3149e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.adoc[]
3150e5c31af7Sopenharmony_ci
3151e5c31af7Sopenharmony_ciThis structure describes the following feature:
3152e5c31af7Sopenharmony_ci
3153e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3154e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3155e5c31af7Sopenharmony_ci    structure.
3156e5c31af7Sopenharmony_ci  * [[features-ycbcrImageArrays]] pname:ycbcrImageArrays indicates that the
3157e5c31af7Sopenharmony_ci    implementation supports creating images with a format that requires
3158e5c31af7Sopenharmony_ci    <<formats-requiring-sampler-ycbcr-conversion, {YCbCr} conversion>> and
3159e5c31af7Sopenharmony_ci    has multiple array layers.
3160e5c31af7Sopenharmony_ci
3161e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
3162e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3163e5c31af7Sopenharmony_ci
3164e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.adoc[]
3165e5c31af7Sopenharmony_ci--
3166e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_image_arrays[]
3167e5c31af7Sopenharmony_ci
3168e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
3169e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[]
3170e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures',desc='Structure describing the extended types subgroups support feature for an implementation',type='structs',alias='VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR']
3171e5c31af7Sopenharmony_ci--
3172e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures structure is
3173e5c31af7Sopenharmony_cidefined as:
3174e5c31af7Sopenharmony_ci
3175e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.adoc[]
3176e5c31af7Sopenharmony_ci
3177e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_extended_types[]
3178e5c31af7Sopenharmony_cior the equivalent
3179e5c31af7Sopenharmony_ci
3180e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.adoc[]
3181e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_extended_types[]
3182e5c31af7Sopenharmony_ci
3183e5c31af7Sopenharmony_ciThis structure describes the following feature:
3184e5c31af7Sopenharmony_ci
3185e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3186e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3187e5c31af7Sopenharmony_ci    structure.
3188e5c31af7Sopenharmony_ci
3189e5c31af7Sopenharmony_ci// Must have preceding whitespace
3190e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
3191e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
3192e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_subgroup_extended_types-features[]
3193e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-subgroup-extended-types]]
3194e5c31af7Sopenharmony_ci    pname:shaderSubgroupExtendedTypes is a boolean specifying whether
3195e5c31af7Sopenharmony_ci    subgroup operations can use 8-bit integer, 16-bit integer, 64-bit
3196e5c31af7Sopenharmony_ci    integer, 16-bit floating-point, and vectors of these types in
3197e5c31af7Sopenharmony_ci    <<shaders-group-operations,group operations>> with
3198e5c31af7Sopenharmony_ci    <<shaders-scope-subgroup, subgroup scope>>, if the implementation
3199e5c31af7Sopenharmony_ci    supports the types.
3200e5c31af7Sopenharmony_ci// end::VK_KHR_shader_subgroup_extended_types-features[]
3201e5c31af7Sopenharmony_ci
3202e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
3203e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3204e5c31af7Sopenharmony_ci
3205e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.adoc[]
3206e5c31af7Sopenharmony_ci--
3207e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[]
3208e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
3209e5c31af7Sopenharmony_ci
3210e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_host_query_reset[]
3211e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceHostQueryResetFeatures',desc='Structure describing whether queries can be reset from the host',type='structs',alias='VkPhysicalDeviceHostQueryResetFeaturesEXT']
3212e5c31af7Sopenharmony_ci--
3213e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceHostQueryResetFeatures structure is defined as:
3214e5c31af7Sopenharmony_ci
3215e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostQueryResetFeatures.adoc[]
3216e5c31af7Sopenharmony_ci
3217e5c31af7Sopenharmony_ciifdef::VK_EXT_host_query_reset[]
3218e5c31af7Sopenharmony_cior the equivalent
3219e5c31af7Sopenharmony_ci
3220e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostQueryResetFeaturesEXT.adoc[]
3221e5c31af7Sopenharmony_ciendif::VK_EXT_host_query_reset[]
3222e5c31af7Sopenharmony_ci
3223e5c31af7Sopenharmony_ciThis structure describes the following feature:
3224e5c31af7Sopenharmony_ci
3225e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3226e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3227e5c31af7Sopenharmony_ci    structure.
3228e5c31af7Sopenharmony_ci
3229e5c31af7Sopenharmony_ci// Must have preceding whitespace
3230e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
3231e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
3232e5c31af7Sopenharmony_ci// tag::VK_EXT_host_query_reset-features[]
3233e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-hostQueryReset]] pname:hostQueryReset
3234e5c31af7Sopenharmony_ci    indicates that the implementation supports resetting queries from the
3235e5c31af7Sopenharmony_ci    host with flink:vkResetQueryPool.
3236e5c31af7Sopenharmony_ci// end::VK_EXT_host_query_reset-features[]
3237e5c31af7Sopenharmony_ci
3238e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceHostQueryResetFeatures
3239e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3240e5c31af7Sopenharmony_ci
3241e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceHostQueryResetFeatures.adoc[]
3242e5c31af7Sopenharmony_ci--
3243e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_host_query_reset[]
3244e5c31af7Sopenharmony_ci
3245e5c31af7Sopenharmony_ciifdef::VK_INTEL_shader_integer_functions2[]
3246e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',desc='Structure describing shader integer functions that can be supported by an implementation',type='structs']
3247e5c31af7Sopenharmony_ci--
3248e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL structure is
3249e5c31af7Sopenharmony_cidefined as:
3250e5c31af7Sopenharmony_ci
3251e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.adoc[]
3252e5c31af7Sopenharmony_ci
3253e5c31af7Sopenharmony_ciThis structure describes the following feature:
3254e5c31af7Sopenharmony_ci
3255e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3256e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3257e5c31af7Sopenharmony_ci    structure.
3258e5c31af7Sopenharmony_ci  * [[features-shaderIntegerFunctions2]] pname:shaderIntegerFunctions2
3259e5c31af7Sopenharmony_ci    indicates that the implementation supports the
3260e5c31af7Sopenharmony_ci    code:IntegerFunctions2INTEL SPIR-V capability.
3261e5c31af7Sopenharmony_ci
3262e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELfeatures.
3263e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3264e5c31af7Sopenharmony_ci
3265e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.adoc[]
3266e5c31af7Sopenharmony_ci--
3267e5c31af7Sopenharmony_ciendif::VK_INTEL_shader_integer_functions2[]
3268e5c31af7Sopenharmony_ci
3269e5c31af7Sopenharmony_ciifdef::VK_NV_coverage_reduction_mode[]
3270e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCoverageReductionModeFeaturesNV',desc='Structure describing the coverage reduction mode features that can be supported by an implementation',type='structs']
3271e5c31af7Sopenharmony_ci--
3272e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCoverageReductionModeFeaturesNV structure is
3273e5c31af7Sopenharmony_cidefined as:
3274e5c31af7Sopenharmony_ci
3275e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.adoc[]
3276e5c31af7Sopenharmony_ci
3277e5c31af7Sopenharmony_ciThis structure describes the following feature:
3278e5c31af7Sopenharmony_ci
3279e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3280e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3281e5c31af7Sopenharmony_ci    structure.
3282e5c31af7Sopenharmony_ci  * [[features-coverageReductionMode]] pname:coverageReductionMode indicates
3283e5c31af7Sopenharmony_ci    whether the implementation supports coverage reduction modes.
3284e5c31af7Sopenharmony_ci    See <<fragops-coverage-reduction, Coverage Reduction>>.
3285e5c31af7Sopenharmony_ci
3286e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCoverageReductionModeFeaturesNV
3287e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3288e5c31af7Sopenharmony_ci
3289e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.adoc[]
3290e5c31af7Sopenharmony_ci--
3291e5c31af7Sopenharmony_ciendif::VK_NV_coverage_reduction_mode[]
3292e5c31af7Sopenharmony_ci
3293e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
3294e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTimelineSemaphoreFeatures',desc='Structure describing timeline semaphore features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceTimelineSemaphoreFeaturesKHR']
3295e5c31af7Sopenharmony_ci--
3296e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTimelineSemaphoreFeatures structure is defined as:
3297e5c31af7Sopenharmony_ci
3298e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreFeatures.adoc[]
3299e5c31af7Sopenharmony_ci
3300e5c31af7Sopenharmony_ciifdef::VK_KHR_timeline_semaphore[]
3301e5c31af7Sopenharmony_cior the equivalent
3302e5c31af7Sopenharmony_ci
3303e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreFeaturesKHR.adoc[]
3304e5c31af7Sopenharmony_ciendif::VK_KHR_timeline_semaphore[]
3305e5c31af7Sopenharmony_ci
3306e5c31af7Sopenharmony_ciThis structure describes the following feature:
3307e5c31af7Sopenharmony_ci
3308e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3309e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3310e5c31af7Sopenharmony_ci    structure.
3311e5c31af7Sopenharmony_ci
3312e5c31af7Sopenharmony_ci// Must have preceding whitespace
3313e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
3314e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
3315e5c31af7Sopenharmony_ci// tag::VK_KHR_timeline_semaphore-features[]
3316e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-timelineSemaphore]] pname:timelineSemaphore
3317e5c31af7Sopenharmony_ci    indicates whether semaphores created with a elink:VkSemaphoreType of
3318e5c31af7Sopenharmony_ci    ename:VK_SEMAPHORE_TYPE_TIMELINE are supported.
3319e5c31af7Sopenharmony_ci// end::VK_KHR_timeline_semaphore-features[]
3320e5c31af7Sopenharmony_ci
3321e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTimelineSemaphoreFeatures
3322e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3323e5c31af7Sopenharmony_ci
3324e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTimelineSemaphoreFeatures.adoc[]
3325e5c31af7Sopenharmony_ci--
3326e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
3327e5c31af7Sopenharmony_ci
3328e5c31af7Sopenharmony_ciifdef::VK_NV_external_sci_sync[]
3329e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalSciSyncFeaturesNV',desc='Structure describing SciSync features that can be supported by an implementation',type='structs']
3330e5c31af7Sopenharmony_ci--
3331e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalSciSyncFeaturesNV structure is defined as:
3332e5c31af7Sopenharmony_ci
3333e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalSciSyncFeaturesNV.adoc[]
3334e5c31af7Sopenharmony_ci
3335e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceExternalSciSyncFeaturesNV structure
3336e5c31af7Sopenharmony_cidescribe the following features:
3337e5c31af7Sopenharmony_ci
3338e5c31af7Sopenharmony_ci  * [[features-sciSyncFence]] pname:sciSyncFence indicates whether external
3339e5c31af7Sopenharmony_ci    fences created with a handle type of
3340e5c31af7Sopenharmony_ci    ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV and
3341e5c31af7Sopenharmony_ci    ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV are supported
3342e5c31af7Sopenharmony_ci    for import and/or export.
3343e5c31af7Sopenharmony_ci  * [[features-sciSyncSemaphore]] pname:sciSyncSemaphore indicates whether
3344e5c31af7Sopenharmony_ci    external semaphores created with a handle type of
3345e5c31af7Sopenharmony_ci    ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV are
3346e5c31af7Sopenharmony_ci    supported for import and/or export.
3347e5c31af7Sopenharmony_ci  * [[features-sciSyncImport]] pname:sciSyncImport indicates whether
3348e5c31af7Sopenharmony_ci    stext:NvSciSyncObj import functionality is supported.
3349e5c31af7Sopenharmony_ci    If pname:sciSyncImport is set to ename:VK_TRUE, slink:VkFence and/or
3350e5c31af7Sopenharmony_ci    slink:VkSemaphore support importing stext:NvSciSyncObj from
3351e5c31af7Sopenharmony_ci    applications.
3352e5c31af7Sopenharmony_ci    In this case, the application is responsible for the resource management
3353e5c31af7Sopenharmony_ci    of the stext:NvSciSyncObj.
3354e5c31af7Sopenharmony_ci  * [[features-sciSyncExport]] pname:sciSyncExport indicates whether
3355e5c31af7Sopenharmony_ci    stext:NvSciSyncObj export functionality is supported.
3356e5c31af7Sopenharmony_ci    If pname:sciSyncExport is set to ename:VK_TRUE, slink:VkFence and/or
3357e5c31af7Sopenharmony_ci    slink:VkSemaphore support exporting stext:NvSciSyncObj created by the
3358e5c31af7Sopenharmony_ci    driver to applications.
3359e5c31af7Sopenharmony_ci    In this case, the driver is responsible for the resource management of
3360e5c31af7Sopenharmony_ci    the stext:NvSciSyncObj.
3361e5c31af7Sopenharmony_ci
3362e5c31af7Sopenharmony_ci[[features-externalscisync-table]]
3363e5c31af7Sopenharmony_ci.Functionality supported for NvSciSync features
3364e5c31af7Sopenharmony_ci|=====
3365e5c31af7Sopenharmony_ci| Features           | pname:sciSyncImport | pname:sciSyncExport | Always supported^1^
3366e5c31af7Sopenharmony_ci| pname:sciSyncFence
3367e5c31af7Sopenharmony_ci  | flink:vkImportFenceSciSyncFenceNV, flink:vkImportFenceSciSyncObjNV
3368e5c31af7Sopenharmony_ci  | slink:VkExportFenceSciSyncInfoNV
3369e5c31af7Sopenharmony_ci  | flink:vkGetFenceSciSyncFenceNV, flink:vkGetFenceSciSyncObjNV, flink:vkGetPhysicalDeviceSciSyncAttributesNV (with ename:VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV)
3370e5c31af7Sopenharmony_ci| pname:sciSyncSemaphore
3371e5c31af7Sopenharmony_ci  | flink:vkImportSemaphoreSciSyncObjNV
3372e5c31af7Sopenharmony_ci  | slink:VkExportSemaphoreSciSyncInfoNV
3373e5c31af7Sopenharmony_ci  | flink:vkGetSemaphoreSciSyncObjNV, flink:vkGetPhysicalDeviceSciSyncAttributesNV (with ename:VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV)
3374e5c31af7Sopenharmony_ci|=====
3375e5c31af7Sopenharmony_ci
3376e5c31af7Sopenharmony_ci1::
3377e5c31af7Sopenharmony_ci    Functionality in this column is always available.
3378e5c31af7Sopenharmony_ci
3379e5c31af7Sopenharmony_ciThe <<features-externalscisync-table, Functionality supported for NvSciSync
3380e5c31af7Sopenharmony_cifeatures>> table summarizes the functionality enabled by the
3381e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalSciSyncFeaturesNV structure.
3382e5c31af7Sopenharmony_ciThere are two orthogonal pieces of functionality: fence and semaphore
3383e5c31af7Sopenharmony_cisupport; import and export support.
3384e5c31af7Sopenharmony_ciEach entry in the body of the table summarizes the functionality that can:
3385e5c31af7Sopenharmony_cibe used when the given features are supported and enabled.
3386e5c31af7Sopenharmony_ciThis summarizes Valid Usage statements that are added elsewhere in this
3387e5c31af7Sopenharmony_cispecification.
3388e5c31af7Sopenharmony_ci
3389e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalSciSyncFeaturesNV
3390e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3391e5c31af7Sopenharmony_ci
3392e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalSciSyncFeaturesNV.adoc[]
3393e5c31af7Sopenharmony_ci--
3394e5c31af7Sopenharmony_ciendif::VK_NV_external_sci_sync[]
3395e5c31af7Sopenharmony_ci
3396e5c31af7Sopenharmony_ciifdef::VK_NV_external_sci_sync2[]
3397e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalSciSync2FeaturesNV',desc='Structure describing SciSync features that can be supported by an implementation',type='structs']
3398e5c31af7Sopenharmony_ci--
3399e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalSciSync2FeaturesNV structure is defined
3400e5c31af7Sopenharmony_cias:
3401e5c31af7Sopenharmony_ci
3402e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalSciSync2FeaturesNV.adoc[]
3403e5c31af7Sopenharmony_ci
3404e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceExternalSciSync2FeaturesNV
3405e5c31af7Sopenharmony_cistructure describe the following features:
3406e5c31af7Sopenharmony_ci
3407e5c31af7Sopenharmony_ci  * [[features-sciSyncFence2]] pname:sciSyncFence indicates whether external
3408e5c31af7Sopenharmony_ci    fences created with a handle type of
3409e5c31af7Sopenharmony_ci    ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV and
3410e5c31af7Sopenharmony_ci    ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV are supported
3411e5c31af7Sopenharmony_ci    for import and/or export.
3412e5c31af7Sopenharmony_ci  * [[features-sciSyncSemaphore2]] pname:sciSyncSemaphore2 indicates whether
3413e5c31af7Sopenharmony_ci    semaphore SciSync pools are supported and semaphores can be created from
3414e5c31af7Sopenharmony_ci    stext:NvSciSyncObj via slink:VkSemaphoreSciSyncPoolNV objects.
3415e5c31af7Sopenharmony_ci    In this case, the application is responsible for the resource management
3416e5c31af7Sopenharmony_ci    of the stext:NvSciSyncObj.
3417e5c31af7Sopenharmony_ci  * [[features-sciSyncImport2]] pname:sciSyncImport indicates whether
3418e5c31af7Sopenharmony_ci    stext:NvSciSyncObj import functionality is supported.
3419e5c31af7Sopenharmony_ci    If pname:sciSyncImport is set to ename:VK_TRUE, slink:VkFence and/or
3420e5c31af7Sopenharmony_ci    slink:VkSemaphore support importing stext:NvSciSyncObj from
3421e5c31af7Sopenharmony_ci    applications.
3422e5c31af7Sopenharmony_ci    In this case, the application is responsible for the resource management
3423e5c31af7Sopenharmony_ci    of the stext:NvSciSyncObj.
3424e5c31af7Sopenharmony_ci  * [[features-sciSyncExport2]] pname:sciSyncExport indicates whether
3425e5c31af7Sopenharmony_ci    stext:NvSciSyncObj export functionality is supported.
3426e5c31af7Sopenharmony_ci    If pname:sciSyncExport is set to ename:VK_TRUE, slink:VkFence supports
3427e5c31af7Sopenharmony_ci    exporting stext:NvSciSyncObj created by the driver to applications.
3428e5c31af7Sopenharmony_ci    In this case, the driver is responsible for the resource management of
3429e5c31af7Sopenharmony_ci    the stext:NvSciSyncObj.
3430e5c31af7Sopenharmony_ci
3431e5c31af7Sopenharmony_ci[[features-externalscisync2-table]]
3432e5c31af7Sopenharmony_ci.Functionality supported for NvSciSync features
3433e5c31af7Sopenharmony_ci|=====
3434e5c31af7Sopenharmony_ci| Features           | pname:sciSyncImport | pname:sciSyncExport | Always supported^1^
3435e5c31af7Sopenharmony_ci| pname:sciSyncFence
3436e5c31af7Sopenharmony_ci  | flink:vkImportFenceSciSyncFenceNV, flink:vkImportFenceSciSyncObjNV
3437e5c31af7Sopenharmony_ci  | slink:VkExportFenceSciSyncInfoNV
3438e5c31af7Sopenharmony_ci  | flink:vkGetFenceSciSyncFenceNV, flink:vkGetFenceSciSyncObjNV, flink:vkGetPhysicalDeviceSciSyncAttributesNV (with ename:VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV)
3439e5c31af7Sopenharmony_ci| pname:sciSyncSemaphore2
3440e5c31af7Sopenharmony_ci  | flink:vkCreateSemaphoreSciSyncPoolNV, slink:VkSemaphoreSciSyncCreateInfoNV
3441e5c31af7Sopenharmony_ci  | n/a
3442e5c31af7Sopenharmony_ci  | flink:vkGetPhysicalDeviceSciSyncAttributesNV (with ename:VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV)
3443e5c31af7Sopenharmony_ci|=====
3444e5c31af7Sopenharmony_ci
3445e5c31af7Sopenharmony_ci1::
3446e5c31af7Sopenharmony_ci    Functionality in this column is always available.
3447e5c31af7Sopenharmony_ci
3448e5c31af7Sopenharmony_ciThe <<features-externalscisync2-table, Functionality supported for NvSciSync
3449e5c31af7Sopenharmony_cifeatures>> table summarizes the functionality enabled by the
3450e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalSciSync2FeaturesNV structure.
3451e5c31af7Sopenharmony_ciThere are two orthogonal pieces of functionality: fence and semaphore
3452e5c31af7Sopenharmony_cisupport; import and export support.
3453e5c31af7Sopenharmony_ciEach entry in the body of the table summarizes the functionality that can:
3454e5c31af7Sopenharmony_cibe used when the given features are supported and enabled.
3455e5c31af7Sopenharmony_ciThis summarizes Valid Usage statements that are added elsewhere in this
3456e5c31af7Sopenharmony_cispecification.
3457e5c31af7Sopenharmony_ci
3458e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalSciSync2FeaturesNV
3459e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3460e5c31af7Sopenharmony_ci
3461e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalSciSync2FeaturesNV.adoc[]
3462e5c31af7Sopenharmony_ci--
3463e5c31af7Sopenharmony_ciendif::VK_NV_external_sci_sync2[]
3464e5c31af7Sopenharmony_ci
3465e5c31af7Sopenharmony_ciifdef::VK_NV_external_memory_sci_buf[]
3466e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemorySciBufFeaturesNV',desc='Structure describing NvSciBuf features that can be supported by an implementation',type='structs']
3467e5c31af7Sopenharmony_ci--
3468e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemorySciBufFeaturesNV structure is
3469e5c31af7Sopenharmony_cidefined as:
3470e5c31af7Sopenharmony_ci
3471e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemorySciBufFeaturesNV.adoc[]
3472e5c31af7Sopenharmony_ci
3473e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalSciBufFeaturesNV.adoc[]
3474e5c31af7Sopenharmony_ci
3475e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceExternalMemorySciBufFeaturesNV
3476e5c31af7Sopenharmony_cistructure describe the following features:
3477e5c31af7Sopenharmony_ci
3478e5c31af7Sopenharmony_ci  * [[features-sciBufImport]] pname:sciBufImport indicates whether
3479e5c31af7Sopenharmony_ci    stext:NvSciBufObj import functionality is supported.
3480e5c31af7Sopenharmony_ci    If pname:sciBufImport is set to ename:VK_TRUE, slink:VkDeviceMemory
3481e5c31af7Sopenharmony_ci    supports importing stext:NvSciBufObj from applications.
3482e5c31af7Sopenharmony_ci    In this case, the application is responsible for the resource management
3483e5c31af7Sopenharmony_ci    of the stext:NvSciBufObj.
3484e5c31af7Sopenharmony_ci  * [[features-sciBufExport]] pname:sciBufExport indicates whether
3485e5c31af7Sopenharmony_ci    stext:NvSciBufObj export functionality is supported.
3486e5c31af7Sopenharmony_ci    If pname:sciBufExport is set to ename:VK_TRUE, slink:VkDeviceMemory
3487e5c31af7Sopenharmony_ci    supports exporting stext:NvSciBufObj created by the driver to
3488e5c31af7Sopenharmony_ci    applications.
3489e5c31af7Sopenharmony_ci    In this case, the driver is responsible for the resource management of
3490e5c31af7Sopenharmony_ci    the stext:NvSciBufObj.
3491e5c31af7Sopenharmony_ci
3492e5c31af7Sopenharmony_ci[[features-externalscibuf-table]]
3493e5c31af7Sopenharmony_ci.Functionality supported for NvSciBuf features
3494e5c31af7Sopenharmony_ci|=====
3495e5c31af7Sopenharmony_ci| Features            | Functionality
3496e5c31af7Sopenharmony_ci| pname:sciBufImport  | slink:VkImportMemorySciBufInfoNV, flink:vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV
3497e5c31af7Sopenharmony_ci| pname:sciBufExport  | slink:VkExportMemorySciBufInfoNV
3498e5c31af7Sopenharmony_ci| Always supported^1^ | flink:vkGetPhysicalDeviceSciBufAttributesNV, flink:vkGetMemorySciBufNV,
3499e5c31af7Sopenharmony_ci|=====
3500e5c31af7Sopenharmony_ci
3501e5c31af7Sopenharmony_ci1::
3502e5c31af7Sopenharmony_ci    Functionality in this row is always available.
3503e5c31af7Sopenharmony_ci
3504e5c31af7Sopenharmony_ciThe <<features-externalscibuf-table, Functionality supported for NvSciBuf
3505e5c31af7Sopenharmony_cifeatures>> table summarizes the functionality enabled by the
3506e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalMemorySciBufFeaturesNV structure.
3507e5c31af7Sopenharmony_ciEach entry in the body of the table summarizes the functionality that can:
3508e5c31af7Sopenharmony_cibe used when the given features are supported and enabled.
3509e5c31af7Sopenharmony_ciThis summarizes Valid Usage statements that are added elsewhere in this
3510e5c31af7Sopenharmony_cispecification.
3511e5c31af7Sopenharmony_ci
3512e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemorySciBufFeaturesNV
3513e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3514e5c31af7Sopenharmony_ci
3515e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemorySciBufFeaturesNV.adoc[]
3516e5c31af7Sopenharmony_ci--
3517e5c31af7Sopenharmony_ciendif::VK_NV_external_memory_sci_buf[]
3518e5c31af7Sopenharmony_ci
3519e5c31af7Sopenharmony_ciifdef::VK_QNX_external_memory_screen_buffer[]
3520e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',desc='Structure describing QNX Screen Buffer features that can be supported by an implementation',type='structs']
3521e5c31af7Sopenharmony_ci--
3522e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX structure is
3523e5c31af7Sopenharmony_cidefined as:
3524e5c31af7Sopenharmony_ci
3525e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX.adoc[]
3526e5c31af7Sopenharmony_ci
3527e5c31af7Sopenharmony_ciThe members of the
3528e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX structure
3529e5c31af7Sopenharmony_cidescribe the following features:
3530e5c31af7Sopenharmony_ci
3531e5c31af7Sopenharmony_ci  * [[features-screenBufferImport]] pname:screenBufferImport indicates
3532e5c31af7Sopenharmony_ci    whether QNX Screen buffer import functionality is supported.
3533e5c31af7Sopenharmony_ci    If pname:screenBufferImport is set to ename:VK_TRUE,
3534e5c31af7Sopenharmony_ci    slink:VkDeviceMemory supports importing code:_screen_buffer from
3535e5c31af7Sopenharmony_ci    applications.
3536e5c31af7Sopenharmony_ci    In this case, the application is responsible for the resource management
3537e5c31af7Sopenharmony_ci    of the code:_screen_buffer.
3538e5c31af7Sopenharmony_ci
3539e5c31af7Sopenharmony_ci[[features-externalscreenbuffer-table]]
3540e5c31af7Sopenharmony_ci.Functionality supported for QNX Screen Buffer features
3541e5c31af7Sopenharmony_ci|=====
3542e5c31af7Sopenharmony_ci| Features            | Functionality
3543e5c31af7Sopenharmony_ci| pname:screenBufferImport  | slink:VkImportScreenBufferInfoQNX
3544e5c31af7Sopenharmony_ci| Always supported^1^ | flink:vkGetScreenBufferPropertiesQNX, slink:VkScreenBufferPropertiesQNX, slink:VkScreenBufferFormatPropertiesQNX,
3545e5c31af7Sopenharmony_cislink:VkExternalFormatQNX
3546e5c31af7Sopenharmony_ci|=====
3547e5c31af7Sopenharmony_ci
3548e5c31af7Sopenharmony_ci1::
3549e5c31af7Sopenharmony_ci    Functionality in this row is always available.
3550e5c31af7Sopenharmony_ci
3551e5c31af7Sopenharmony_ciThe <<features-externalscreenbuffer-table, Functionality supported for QNX
3552e5c31af7Sopenharmony_ciScreen buffer features>> table summarizes the functionality enabled by the
3553e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX structure.
3554e5c31af7Sopenharmony_ciEach entry in the body of the table summarizes the functionality that can:
3555e5c31af7Sopenharmony_cibe used when the given features are supported and enabled.
3556e5c31af7Sopenharmony_ciThis summarizes Valid Usage statements that are added elsewhere in this
3557e5c31af7Sopenharmony_cispecification.
3558e5c31af7Sopenharmony_ci
3559e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX
3560e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3561e5c31af7Sopenharmony_ci
3562e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX.adoc[]
3563e5c31af7Sopenharmony_ci--
3564e5c31af7Sopenharmony_ciendif::VK_QNX_external_memory_screen_buffer[]
3565e5c31af7Sopenharmony_ci
3566e5c31af7Sopenharmony_ciifdef::VK_EXT_index_type_uint8[]
3567e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceIndexTypeUint8FeaturesEXT',desc='Structure describing whether uint8 index type can be used',type='structs']
3568e5c31af7Sopenharmony_ci--
3569e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceIndexTypeUint8FeaturesEXT structure is defined as:
3570e5c31af7Sopenharmony_ci
3571e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.adoc[]
3572e5c31af7Sopenharmony_ci
3573e5c31af7Sopenharmony_ciThis structure describes the following feature:
3574e5c31af7Sopenharmony_ci
3575e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3576e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3577e5c31af7Sopenharmony_ci    structure.
3578e5c31af7Sopenharmony_ci  * [[features-indexTypeUint8]] pname:indexTypeUint8 indicates that
3579e5c31af7Sopenharmony_ci    ename:VK_INDEX_TYPE_UINT8_EXT can be used with
3580e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[flink:vkCmdBindIndexBuffer2KHR and]
3581e5c31af7Sopenharmony_ci    flink:vkCmdBindIndexBuffer.
3582e5c31af7Sopenharmony_ci
3583e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceIndexTypeUint8FeaturesEXT
3584e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3585e5c31af7Sopenharmony_ci
3586e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.adoc[]
3587e5c31af7Sopenharmony_ci--
3588e5c31af7Sopenharmony_ciendif::VK_EXT_index_type_uint8[]
3589e5c31af7Sopenharmony_ci
3590e5c31af7Sopenharmony_ciifdef::VK_EXT_primitive_topology_list_restart[]
3591e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',desc='Structure describing whether list type primitives can support primitive restart',type='structs']
3592e5c31af7Sopenharmony_ci--
3593e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT structure
3594e5c31af7Sopenharmony_ciis defined as:
3595e5c31af7Sopenharmony_ci
3596e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.adoc[]
3597e5c31af7Sopenharmony_ci
3598e5c31af7Sopenharmony_ciThis structure describes the following features:
3599e5c31af7Sopenharmony_ci
3600e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3601e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3602e5c31af7Sopenharmony_ci    structure.
3603e5c31af7Sopenharmony_ci  * [[features-primitiveTopologyListRestart]]
3604e5c31af7Sopenharmony_ci    pname:primitiveTopologyListRestart indicates that list type primitives,
3605e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
3606e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
3607e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
3608e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY and
3609e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, can: use the
3610e5c31af7Sopenharmony_ci    primitive restart index value in index buffers.
3611e5c31af7Sopenharmony_ci  * [[features-primitiveTopologyPatchListRestart]]
3612e5c31af7Sopenharmony_ci    pname:primitiveTopologyPatchListRestart indicates that the
3613e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology can: use the primitive
3614e5c31af7Sopenharmony_ci    restart index value in index buffers.
3615e5c31af7Sopenharmony_ci
3616e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
3617e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3618e5c31af7Sopenharmony_ci
3619e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.adoc[]
3620e5c31af7Sopenharmony_ci--
3621e5c31af7Sopenharmony_ciendif::VK_EXT_primitive_topology_list_restart[]
3622e5c31af7Sopenharmony_ci
3623e5c31af7Sopenharmony_ciifdef::VK_NV_shader_sm_builtins[]
3624e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSMBuiltinsFeaturesNV',desc='Structure describing the shader SM Builtins features that can be supported by an implementation',type='structs']
3625e5c31af7Sopenharmony_ci--
3626e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSMBuiltinsFeaturesNV structure is defined
3627e5c31af7Sopenharmony_cias:
3628e5c31af7Sopenharmony_ci
3629e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.adoc[]
3630e5c31af7Sopenharmony_ci
3631e5c31af7Sopenharmony_ciThis structure describes the following feature:
3632e5c31af7Sopenharmony_ci
3633e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3634e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3635e5c31af7Sopenharmony_ci    structure.
3636e5c31af7Sopenharmony_ci  * [[features-shaderSMBuiltins]] pname:shaderSMBuiltins indicates whether
3637e5c31af7Sopenharmony_ci    the implementation supports the SPIR-V code:ShaderSMBuiltinsNV
3638e5c31af7Sopenharmony_ci    capability.
3639e5c31af7Sopenharmony_ci
3640e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSMBuiltinsFeaturesNV
3641e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3642e5c31af7Sopenharmony_ci
3643e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.adoc[]
3644e5c31af7Sopenharmony_ci--
3645e5c31af7Sopenharmony_ciendif::VK_NV_shader_sm_builtins[]
3646e5c31af7Sopenharmony_ci
3647e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
3648e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures',desc='Structure describing whether the implementation can do depth and stencil image barriers separately',type='structs',alias='VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR']
3649e5c31af7Sopenharmony_ci--
3650e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures structure is
3651e5c31af7Sopenharmony_cidefined as:
3652e5c31af7Sopenharmony_ci
3653e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.adoc[]
3654e5c31af7Sopenharmony_ci
3655e5c31af7Sopenharmony_ciifdef::VK_KHR_separate_depth_stencil_layouts[]
3656e5c31af7Sopenharmony_cior the equivalent
3657e5c31af7Sopenharmony_ci
3658e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.adoc[]
3659e5c31af7Sopenharmony_ciendif::VK_KHR_separate_depth_stencil_layouts[]
3660e5c31af7Sopenharmony_ci
3661e5c31af7Sopenharmony_ciThis structure describes the following feature:
3662e5c31af7Sopenharmony_ci
3663e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3664e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3665e5c31af7Sopenharmony_ci    structure.
3666e5c31af7Sopenharmony_ci
3667e5c31af7Sopenharmony_ci// Must have preceding whitespace
3668e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
3669e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
3670e5c31af7Sopenharmony_ci// tag::VK_KHR_separate_depth_stencil_layouts-features[]
3671e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-separateDepthStencilLayouts]]
3672e5c31af7Sopenharmony_ci    pname:separateDepthStencilLayouts indicates whether the implementation
3673e5c31af7Sopenharmony_ci    supports a sname:VkImageMemoryBarrier for a depth/stencil image with
3674e5c31af7Sopenharmony_ci    only one of ename:VK_IMAGE_ASPECT_DEPTH_BIT or
3675e5c31af7Sopenharmony_ci    ename:VK_IMAGE_ASPECT_STENCIL_BIT set, and whether
3676e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
3677e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
3678e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or
3679e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL can be used.
3680e5c31af7Sopenharmony_ci// end::VK_KHR_separate_depth_stencil_layouts-features[]
3681e5c31af7Sopenharmony_ci
3682e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
3683e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3684e5c31af7Sopenharmony_ci
3685e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.adoc[]
3686e5c31af7Sopenharmony_ci--
3687e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
3688e5c31af7Sopenharmony_ci
3689e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_executable_properties[]
3690e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR',desc='Structure describing whether pipeline executable properties are available',type='structs']
3691e5c31af7Sopenharmony_ci--
3692e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR structure
3693e5c31af7Sopenharmony_ciis defined as:
3694e5c31af7Sopenharmony_ci
3695e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.adoc[]
3696e5c31af7Sopenharmony_ci
3697e5c31af7Sopenharmony_ciThis structure describes the following feature:
3698e5c31af7Sopenharmony_ci
3699e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3700e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3701e5c31af7Sopenharmony_ci    structure.
3702e5c31af7Sopenharmony_ci  * [[features-pipelineExecutableInfo]] pname:pipelineExecutableInfo
3703e5c31af7Sopenharmony_ci    indicates that the implementation supports reporting properties and
3704e5c31af7Sopenharmony_ci    statistics about the pipeline executables associated with a compiled
3705e5c31af7Sopenharmony_ci    pipeline.
3706e5c31af7Sopenharmony_ci
3707e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
3708e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3709e5c31af7Sopenharmony_ci
3710e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.adoc[]
3711e5c31af7Sopenharmony_ci--
3712e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_executable_properties[]
3713e5c31af7Sopenharmony_ci
3714e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation[]
3715e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures',desc='Structure describing the shader demote to helper invocations features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT']
3716e5c31af7Sopenharmony_ci--
3717e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures structure
3718e5c31af7Sopenharmony_ciis defined as:
3719e5c31af7Sopenharmony_ci
3720e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures.adoc[]
3721e5c31af7Sopenharmony_ci
3722e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_demote_to_helper_invocation[]
3723e5c31af7Sopenharmony_cior the equivalent
3724e5c31af7Sopenharmony_ci
3725e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.adoc[]
3726e5c31af7Sopenharmony_ciendif::VK_EXT_shader_demote_to_helper_invocation[]
3727e5c31af7Sopenharmony_ci
3728e5c31af7Sopenharmony_ciThis structure describes the following feature:
3729e5c31af7Sopenharmony_ci
3730e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3731e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3732e5c31af7Sopenharmony_ci    structure.
3733e5c31af7Sopenharmony_ci
3734e5c31af7Sopenharmony_ci// Must have preceding whitespace
3735e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
3736e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
3737e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_demote_to_helper_invocation-features[]
3738e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderDemoteToHelperInvocation]]
3739e5c31af7Sopenharmony_ci    pname:shaderDemoteToHelperInvocation indicates whether the
3740e5c31af7Sopenharmony_ci    implementation supports the SPIR-V code:DemoteToHelperInvocationEXT
3741e5c31af7Sopenharmony_ci    capability.
3742e5c31af7Sopenharmony_ci// end::VK_EXT_shader_demote_to_helper_invocation-features[]
3743e5c31af7Sopenharmony_ci
3744e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
3745e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3746e5c31af7Sopenharmony_ci
3747e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures.adoc[]
3748e5c31af7Sopenharmony_ci--
3749e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation[]
3750e5c31af7Sopenharmony_ci
3751e5c31af7Sopenharmony_ciifdef::VK_EXT_texel_buffer_alignment[]
3752e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT',desc='Structure describing the texel buffer alignment features that can be supported by an implementation',type='structs']
3753e5c31af7Sopenharmony_ci--
3754e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT structure is
3755e5c31af7Sopenharmony_cidefined as:
3756e5c31af7Sopenharmony_ci
3757e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.adoc[]
3758e5c31af7Sopenharmony_ci
3759e5c31af7Sopenharmony_ciThis structure describes the following feature:
3760e5c31af7Sopenharmony_ci
3761e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3762e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3763e5c31af7Sopenharmony_ci    structure.
3764e5c31af7Sopenharmony_ci  * [[features-texelBufferAlignment]] pname:texelBufferAlignment indicates
3765e5c31af7Sopenharmony_ci    whether the implementation uses more specific alignment requirements
3766e5c31af7Sopenharmony_ci    advertised in slink:VkPhysicalDeviceTexelBufferAlignmentProperties
3767e5c31af7Sopenharmony_ci    rather than
3768e5c31af7Sopenharmony_ci    slink:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment.
3769e5c31af7Sopenharmony_ci
3770e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
3771e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3772e5c31af7Sopenharmony_ci
3773e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.adoc[]
3774e5c31af7Sopenharmony_ci--
3775e5c31af7Sopenharmony_ciendif::VK_EXT_texel_buffer_alignment[]
3776e5c31af7Sopenharmony_ci
3777e5c31af7Sopenharmony_ciifdef::VK_EXT_attachment_feedback_loop_dynamic_state[]
3778e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',desc='Structure describing if dynamic feedback loops can be used',type='structs']
3779e5c31af7Sopenharmony_ci--
3780e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
3781e5c31af7Sopenharmony_cistructure is defined as:
3782e5c31af7Sopenharmony_ci
3783e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.adoc[]
3784e5c31af7Sopenharmony_ci
3785e5c31af7Sopenharmony_ciThis structure describes the following features:
3786e5c31af7Sopenharmony_ci
3787e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3788e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3789e5c31af7Sopenharmony_ci    structure.
3790e5c31af7Sopenharmony_ci  * [[features-attachmentFeedbackLoopDynamicState]]
3791e5c31af7Sopenharmony_ci    pname:attachmentFeedbackLoopDynamicState specifies whether dynamic
3792e5c31af7Sopenharmony_ci    feedback loops are supported.
3793e5c31af7Sopenharmony_ci
3794e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
3795e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3796e5c31af7Sopenharmony_ci
3797e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.adoc[]
3798e5c31af7Sopenharmony_ci--
3799e5c31af7Sopenharmony_ciendif::VK_EXT_attachment_feedback_loop_dynamic_state[]
3800e5c31af7Sopenharmony_ci
3801e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[]
3802e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTextureCompressionASTCHDRFeatures',desc='Structure describing ASTC HDR features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT']
3803e5c31af7Sopenharmony_ci--
3804e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTextureCompressionASTCHDRFeatures structure is
3805e5c31af7Sopenharmony_cidefined as:
3806e5c31af7Sopenharmony_ci
3807e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeatures.adoc[]
3808e5c31af7Sopenharmony_ci
3809e5c31af7Sopenharmony_ciifdef::VK_EXT_texture_compression_astc_hdr[]
3810e5c31af7Sopenharmony_cior the equivalent
3811e5c31af7Sopenharmony_ci
3812e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.adoc[]
3813e5c31af7Sopenharmony_ciendif::VK_EXT_texture_compression_astc_hdr[]
3814e5c31af7Sopenharmony_ci
3815e5c31af7Sopenharmony_ciThis structure describes the following feature:
3816e5c31af7Sopenharmony_ci
3817e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3818e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3819e5c31af7Sopenharmony_ci    structure.
3820e5c31af7Sopenharmony_ci
3821e5c31af7Sopenharmony_ci// Must have preceding whitespace
3822e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
3823e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
3824e5c31af7Sopenharmony_ci// tag::VK_EXT_texture_compression_astc_hdr-features[]
3825e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-textureCompressionASTC_HDR]]
3826e5c31af7Sopenharmony_ci    pname:textureCompressionASTC_HDR indicates whether all of the ASTC HDR
3827e5c31af7Sopenharmony_ci    compressed texture formats are supported.
3828e5c31af7Sopenharmony_ci    If this feature is enabled, then the
3829e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
3830e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
3831e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
3832e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
3833e5c31af7Sopenharmony_ci+
3834e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK
3835e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK
3836e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK
3837e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK
3838e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK
3839e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK
3840e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK
3841e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK
3842e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK
3843e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK
3844e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK
3845e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK
3846e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK
3847e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK
3848e5c31af7Sopenharmony_ci+
3849e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled,
3850e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
3851e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
3852e5c31af7Sopenharmony_cisupported properties of individual formats as normal.
3853e5c31af7Sopenharmony_ci// end::VK_EXT_texture_compression_astc_hdr-features[]
3854e5c31af7Sopenharmony_ci
3855e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTextureCompressionASTCHDRFeatures
3856e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3857e5c31af7Sopenharmony_ci
3858e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeatures.adoc[]
3859e5c31af7Sopenharmony_ci--
3860e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[]
3861e5c31af7Sopenharmony_ci
3862e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[]
3863e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLineRasterizationFeaturesEXT',desc='Structure describing the line rasterization features that can be supported by an implementation',type='structs']
3864e5c31af7Sopenharmony_ci--
3865e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLineRasterizationFeaturesEXT structure is defined
3866e5c31af7Sopenharmony_cias:
3867e5c31af7Sopenharmony_ci
3868e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.adoc[]
3869e5c31af7Sopenharmony_ci
3870e5c31af7Sopenharmony_ciThis structure describes the following features:
3871e5c31af7Sopenharmony_ci
3872e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3873e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3874e5c31af7Sopenharmony_ci    structure.
3875e5c31af7Sopenharmony_ci  * [[features-rectangularLines]] pname:rectangularLines indicates whether
3876e5c31af7Sopenharmony_ci    the implementation supports <<primsrast-lines,rectangular line
3877e5c31af7Sopenharmony_ci    rasterization>>.
3878e5c31af7Sopenharmony_ci  * [[features-bresenhamLines]] pname:bresenhamLines indicates whether the
3879e5c31af7Sopenharmony_ci    implementation supports <<primsrast-lines-bresenham,Bresenham-style line
3880e5c31af7Sopenharmony_ci    rasterization>>.
3881e5c31af7Sopenharmony_ci  * [[features-smoothLines]] pname:smoothLines indicates whether the
3882e5c31af7Sopenharmony_ci    implementation supports <<primsrast-lines-smooth,smooth line
3883e5c31af7Sopenharmony_ci    rasterization>>.
3884e5c31af7Sopenharmony_ci  * [[features-stippledRectangularLines]] pname:stippledRectangularLines
3885e5c31af7Sopenharmony_ci    indicates whether the implementation supports
3886e5c31af7Sopenharmony_ci    <<primsrast-lines-stipple,stippled line rasterization>> with
3887e5c31af7Sopenharmony_ci    ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT lines.
3888e5c31af7Sopenharmony_ci  * [[features-stippledBresenhamLines]] pname:stippledBresenhamLines
3889e5c31af7Sopenharmony_ci    indicates whether the implementation supports
3890e5c31af7Sopenharmony_ci    <<primsrast-lines-stipple,stippled line rasterization>> with
3891e5c31af7Sopenharmony_ci    ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT lines.
3892e5c31af7Sopenharmony_ci  * [[features-stippledSmoothLines]] pname:stippledSmoothLines indicates
3893e5c31af7Sopenharmony_ci    whether the implementation supports <<primsrast-lines-stipple,stippled
3894e5c31af7Sopenharmony_ci    line rasterization>> with
3895e5c31af7Sopenharmony_ci    ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT lines.
3896e5c31af7Sopenharmony_ci
3897e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLineRasterizationFeaturesEXT
3898e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3899e5c31af7Sopenharmony_ci
3900e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.adoc[]
3901e5c31af7Sopenharmony_ci--
3902e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[]
3903e5c31af7Sopenharmony_ci
3904e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_subgroup_size_control[]
3905e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubgroupSizeControlFeatures',desc='Structure describing the subgroup size control features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceSubgroupSizeControlFeaturesEXT']
3906e5c31af7Sopenharmony_ci--
3907e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlFeatures structure is defined
3908e5c31af7Sopenharmony_cias:
3909e5c31af7Sopenharmony_ci
3910e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlFeatures.adoc[]
3911e5c31af7Sopenharmony_ci
3912e5c31af7Sopenharmony_ciifdef::VK_EXT_subgroup_size_control[]
3913e5c31af7Sopenharmony_cior the equivalent
3914e5c31af7Sopenharmony_ci
3915e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlFeaturesEXT.adoc[]
3916e5c31af7Sopenharmony_ciendif::VK_EXT_subgroup_size_control[]
3917e5c31af7Sopenharmony_ci
3918e5c31af7Sopenharmony_ciThis structure describes the following features:
3919e5c31af7Sopenharmony_ci
3920e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3921e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3922e5c31af7Sopenharmony_ci    structure.
3923e5c31af7Sopenharmony_ci
3924e5c31af7Sopenharmony_ci// Must have preceding whitespace
3925e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
3926e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
3927e5c31af7Sopenharmony_ci// tag::VK_EXT_subgroup_size_control-features[]
3928e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-subgroupSizeControl]]
3929e5c31af7Sopenharmony_ci    pname:subgroupSizeControl indicates whether the implementation supports
3930e5c31af7Sopenharmony_ci    controlling shader subgroup sizes via the
3931e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT
3932e5c31af7Sopenharmony_ci    flag and the slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfo
3933e5c31af7Sopenharmony_ci    structure.
3934e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-computeFullSubgroups]]
3935e5c31af7Sopenharmony_ci    pname:computeFullSubgroups indicates whether the implementation supports
3936e5c31af7Sopenharmony_ci    requiring full subgroups in compute
3937e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
3938e5c31af7Sopenharmony_ci    , mesh, or task
3939e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
3940e5c31af7Sopenharmony_ci    shaders via the
3941e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag.
3942e5c31af7Sopenharmony_ci// end::VK_EXT_subgroup_size_control-features[]
3943e5c31af7Sopenharmony_ci
3944e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubgroupSizeControlFeatures
3945e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3946e5c31af7Sopenharmony_ci
3947e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[]
3948e5c31af7Sopenharmony_ci[NOTE]
3949e5c31af7Sopenharmony_ci.Note
3950e5c31af7Sopenharmony_ci====
3951e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure was added
3952e5c31af7Sopenharmony_ciin version 2 of the `apiext:VK_EXT_subgroup_size_control` extension.
3953e5c31af7Sopenharmony_ciVersion 1 implementations of this extension will not fill out the features
3954e5c31af7Sopenharmony_cistructure but applications may assume that both pname:subgroupSizeControl
3955e5c31af7Sopenharmony_ciand pname:computeFullSubgroups are supported if the extension is supported.
3956e5c31af7Sopenharmony_ci(See also the <<features-requirements, Feature Requirements>> section.)
3957e5c31af7Sopenharmony_ciApplications are advised to add a
3958e5c31af7Sopenharmony_cisname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure to the
3959e5c31af7Sopenharmony_cipname:pNext chain of slink:VkDeviceCreateInfo to enable the features
3960e5c31af7Sopenharmony_ciregardless of the version of the extension supported by the implementation.
3961e5c31af7Sopenharmony_ciIf the implementation only supports version 1, it will safely ignore the
3962e5c31af7Sopenharmony_cisname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure.
3963e5c31af7Sopenharmony_ci
3964e5c31af7Sopenharmony_ciVulkan 1.3 implementations always support the features structure.
3965e5c31af7Sopenharmony_ci====
3966e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
3967e5c31af7Sopenharmony_ci
3968e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubgroupSizeControlFeatures.adoc[]
3969e5c31af7Sopenharmony_ci--
3970e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_subgroup_size_control[]
3971e5c31af7Sopenharmony_ci
3972e5c31af7Sopenharmony_ciifdef::VK_AMD_device_coherent_memory[]
3973e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCoherentMemoryFeaturesAMD',desc='Structure describing whether device coherent memory can be supported by an implementation',type='structs']
3974e5c31af7Sopenharmony_ci--
3975e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCoherentMemoryFeaturesAMD structure is defined as:
3976e5c31af7Sopenharmony_ci
3977e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCoherentMemoryFeaturesAMD.adoc[]
3978e5c31af7Sopenharmony_ci
3979e5c31af7Sopenharmony_ciThis structure describes the following feature:
3980e5c31af7Sopenharmony_ci
3981e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3982e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3983e5c31af7Sopenharmony_ci    structure.
3984e5c31af7Sopenharmony_ci  * [[features-deviceCoherentMemory]] pname:deviceCoherentMemory indicates
3985e5c31af7Sopenharmony_ci    that the implementation supports <<VkMemoryPropertyFlagBits,device
3986e5c31af7Sopenharmony_ci    coherent memory>>.
3987e5c31af7Sopenharmony_ci
3988e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCoherentMemoryFeaturesAMD
3989e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
3990e5c31af7Sopenharmony_ci
3991e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCoherentMemoryFeaturesAMD.adoc[]
3992e5c31af7Sopenharmony_ci--
3993e5c31af7Sopenharmony_ciendif::VK_AMD_device_coherent_memory[]
3994e5c31af7Sopenharmony_ci
3995e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
3996e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAccelerationStructureFeaturesKHR',desc='Structure describing the acceleration structure features that can be supported by an implementation',type='structs']
3997e5c31af7Sopenharmony_ci--
3998e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAccelerationStructureFeaturesKHR structure is
3999e5c31af7Sopenharmony_cidefined as:
4000e5c31af7Sopenharmony_ci
4001e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAccelerationStructureFeaturesKHR.adoc[]
4002e5c31af7Sopenharmony_ci
4003e5c31af7Sopenharmony_ciThis structure describes the following features:
4004e5c31af7Sopenharmony_ci
4005e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4006e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4007e5c31af7Sopenharmony_ci    structure.
4008e5c31af7Sopenharmony_ci  * [[features-accelerationStructure]] pname:accelerationStructure indicates
4009e5c31af7Sopenharmony_ci    whether the implementation supports the acceleration structure
4010e5c31af7Sopenharmony_ci    functionality.
4011e5c31af7Sopenharmony_ci    See <<acceleration-structure,Acceleration Structures>>.
4012e5c31af7Sopenharmony_ci  * [[features-accelerationStructureCaptureReplay]]
4013e5c31af7Sopenharmony_ci    pname:accelerationStructureCaptureReplay indicates whether the
4014e5c31af7Sopenharmony_ci    implementation supports saving and reusing acceleration structure device
4015e5c31af7Sopenharmony_ci    addresses, e.g. for trace capture and replay.
4016e5c31af7Sopenharmony_ci  * [[features-accelerationStructureIndirectBuild]]
4017e5c31af7Sopenharmony_ci    pname:accelerationStructureIndirectBuild indicates whether the
4018e5c31af7Sopenharmony_ci    implementation supports indirect acceleration structure build commands,
4019e5c31af7Sopenharmony_ci    e.g. flink:vkCmdBuildAccelerationStructuresIndirectKHR.
4020e5c31af7Sopenharmony_ci  * [[features-accelerationStructureHostCommands]]
4021e5c31af7Sopenharmony_ci    pname:accelerationStructureHostCommands indicates whether the
4022e5c31af7Sopenharmony_ci    implementation supports host side acceleration structure commands, e.g.
4023e5c31af7Sopenharmony_ci    flink:vkBuildAccelerationStructuresKHR,
4024e5c31af7Sopenharmony_ci    flink:vkCopyAccelerationStructureKHR,
4025e5c31af7Sopenharmony_ci    flink:vkCopyAccelerationStructureToMemoryKHR,
4026e5c31af7Sopenharmony_ci    flink:vkCopyMemoryToAccelerationStructureKHR,
4027e5c31af7Sopenharmony_ci    flink:vkWriteAccelerationStructuresPropertiesKHR.
4028e5c31af7Sopenharmony_ci  * [[features-descriptorBindingAccelerationStructureUpdateAfterBind]]
4029e5c31af7Sopenharmony_ci    pname:descriptorBindingAccelerationStructureUpdateAfterBind indicates
4030e5c31af7Sopenharmony_ci    whether the implementation supports updating acceleration structure
4031e5c31af7Sopenharmony_ci    descriptors after a set is bound.
4032e5c31af7Sopenharmony_ci    If this feature is not enabled,
4033e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
4034e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR.
4035e5c31af7Sopenharmony_ci
4036e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAccelerationStructureFeaturesKHR
4037e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4038e5c31af7Sopenharmony_ci
4039e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAccelerationStructureFeaturesKHR.adoc[]
4040e5c31af7Sopenharmony_ci--
4041e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
4042e5c31af7Sopenharmony_ci
4043e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
4044e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingPipelineFeaturesKHR',desc='Structure describing the ray tracing features that can be supported by an implementation',type='structs']
4045e5c31af7Sopenharmony_ci--
4046e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingPipelineFeaturesKHR structure is defined
4047e5c31af7Sopenharmony_cias:
4048e5c31af7Sopenharmony_ci
4049e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.adoc[]
4050e5c31af7Sopenharmony_ci
4051e5c31af7Sopenharmony_ciThis structure describes the following features:
4052e5c31af7Sopenharmony_ci
4053e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4054e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4055e5c31af7Sopenharmony_ci    structure.
4056e5c31af7Sopenharmony_ci  * [[features-rayTracingPipeline]] pname:rayTracingPipeline indicates
4057e5c31af7Sopenharmony_ci    whether the implementation supports the ray tracing pipeline
4058e5c31af7Sopenharmony_ci    functionality.
4059e5c31af7Sopenharmony_ci    See <<ray-tracing,Ray Tracing>>.
4060e5c31af7Sopenharmony_ci  * [[features-rayTracingPipelineShaderGroupHandleCaptureReplay]]
4061e5c31af7Sopenharmony_ci    pname:rayTracingPipelineShaderGroupHandleCaptureReplay indicates whether
4062e5c31af7Sopenharmony_ci    the implementation supports saving and reusing shader group handles,
4063e5c31af7Sopenharmony_ci    e.g. for trace capture and replay.
4064e5c31af7Sopenharmony_ci  * [[features-rayTracingPipelineShaderGroupHandleCaptureReplayMixed]]
4065e5c31af7Sopenharmony_ci    pname:rayTracingPipelineShaderGroupHandleCaptureReplayMixed indicates
4066e5c31af7Sopenharmony_ci    whether the implementation supports reuse of shader group handles being
4067e5c31af7Sopenharmony_ci    arbitrarily mixed with creation of non-reused shader group handles.
4068e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, all reused shader group handles must: be
4069e5c31af7Sopenharmony_ci    specified before any non-reused handles may: be created.
4070e5c31af7Sopenharmony_ci  * [[features-rayTracingPipelineTraceRaysIndirect]]
4071e5c31af7Sopenharmony_ci    pname:rayTracingPipelineTraceRaysIndirect indicates whether the
4072e5c31af7Sopenharmony_ci    implementation supports indirect ray tracing commands, e.g.
4073e5c31af7Sopenharmony_ci    flink:vkCmdTraceRaysIndirectKHR.
4074e5c31af7Sopenharmony_ci  * [[features-rayTraversalPrimitiveCulling]]
4075e5c31af7Sopenharmony_ci    pname:rayTraversalPrimitiveCulling indicates whether the implementation
4076e5c31af7Sopenharmony_ci    supports <<ray-traversal-culling-primitive, primitive culling during ray
4077e5c31af7Sopenharmony_ci    traversal>>.
4078e5c31af7Sopenharmony_ci
4079e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingPipelineFeaturesKHR
4080e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4081e5c31af7Sopenharmony_ci
4082e5c31af7Sopenharmony_ci.Valid Usage
4083e5c31af7Sopenharmony_ci****
4084e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575]]
4085e5c31af7Sopenharmony_ci    If pname:rayTracingPipelineShaderGroupHandleCaptureReplayMixed is
4086e5c31af7Sopenharmony_ci    ename:VK_TRUE, pname:rayTracingPipelineShaderGroupHandleCaptureReplay
4087e5c31af7Sopenharmony_ci    must: also be ename:VK_TRUE
4088e5c31af7Sopenharmony_ci****
4089e5c31af7Sopenharmony_ci
4090e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.adoc[]
4091e5c31af7Sopenharmony_ci--
4092e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
4093e5c31af7Sopenharmony_ci
4094e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[]
4095e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayQueryFeaturesKHR',desc='Structure describing the ray query features that can be supported by an implementation',type='structs']
4096e5c31af7Sopenharmony_ci--
4097e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayQueryFeaturesKHR structure is defined as:
4098e5c31af7Sopenharmony_ci
4099e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayQueryFeaturesKHR.adoc[]
4100e5c31af7Sopenharmony_ci
4101e5c31af7Sopenharmony_ciThis structure describes the following feature:
4102e5c31af7Sopenharmony_ci
4103e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4104e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4105e5c31af7Sopenharmony_ci    structure.
4106e5c31af7Sopenharmony_ci  * [[features-rayQuery]] pname:rayQuery indicates whether the
4107e5c31af7Sopenharmony_ci    implementation supports ray query (code:OpRayQueryProceedKHR)
4108e5c31af7Sopenharmony_ci    functionality.
4109e5c31af7Sopenharmony_ci
4110e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayQueryFeaturesKHR
4111e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4112e5c31af7Sopenharmony_ci
4113e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayQueryFeaturesKHR.adoc[]
4114e5c31af7Sopenharmony_ci--
4115e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
4116e5c31af7Sopenharmony_ci
4117e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_maintenance1[]
4118e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR',desc='Structure describing the ray tracing maintenance features that can be supported by an implementation',type='structs']
4119e5c31af7Sopenharmony_ci--
4120e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR structure is
4121e5c31af7Sopenharmony_cidefined as:
4122e5c31af7Sopenharmony_ci
4123e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR.adoc[]
4124e5c31af7Sopenharmony_ci
4125e5c31af7Sopenharmony_ciThis structure describes the following features:
4126e5c31af7Sopenharmony_ci
4127e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4128e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4129e5c31af7Sopenharmony_ci    structure.
4130e5c31af7Sopenharmony_ci  * [[features-rayTracingMaintenance1]] pname:rayTracingMaintenance1
4131e5c31af7Sopenharmony_ci    indicates that the implementation supports the following:
4132e5c31af7Sopenharmony_ci  ** The code:CullMaskKHR SPIR-V builtin using the `SPV_KHR_ray_cull_mask`
4133e5c31af7Sopenharmony_ci     SPIR-V extension.
4134e5c31af7Sopenharmony_ci  ** Additional acceleration structure property queries:
4135e5c31af7Sopenharmony_ci     ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR
4136e5c31af7Sopenharmony_ci     and ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR.
4137e5c31af7Sopenharmony_ci  ** A new access flag ename:VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR.
4138e5c31af7Sopenharmony_ci  ** A new pipeline stage flag bit
4139e5c31af7Sopenharmony_ci     ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR
4140e5c31af7Sopenharmony_ci  * [[features-rayTracingPipelineTraceRaysIndirect2]]
4141e5c31af7Sopenharmony_ci    pname:rayTracingPipelineTraceRaysIndirect2 indicates whether the
4142e5c31af7Sopenharmony_ci    implementation supports the extended indirect ray tracing command
4143e5c31af7Sopenharmony_ci    flink:vkCmdTraceRaysIndirect2KHR.
4144e5c31af7Sopenharmony_ci
4145e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
4146e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4147e5c31af7Sopenharmony_ci
4148e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR.adoc[]
4149e5c31af7Sopenharmony_ci--
4150e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_maintenance1[]
4151e5c31af7Sopenharmony_ci
4152e5c31af7Sopenharmony_ciifdef::VK_KHR_video_maintenance1[]
4153e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVideoMaintenance1FeaturesKHR',desc='Structure describing the video maintenance features that can be supported by an implementation',type='structs']
4154e5c31af7Sopenharmony_ci--
4155e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVideoMaintenance1FeaturesKHR structure is defined
4156e5c31af7Sopenharmony_cias:
4157e5c31af7Sopenharmony_ci
4158e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVideoMaintenance1FeaturesKHR.adoc[]
4159e5c31af7Sopenharmony_ci
4160e5c31af7Sopenharmony_ciThis structure describes the following features:
4161e5c31af7Sopenharmony_ci
4162e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4163e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4164e5c31af7Sopenharmony_ci    structure.
4165e5c31af7Sopenharmony_ci  * [[features-videoMaintenance1]] pname:videoMaintenance1 indicates that
4166e5c31af7Sopenharmony_ci    the implementation supports the following:
4167e5c31af7Sopenharmony_ci  ** The new buffer creation flag
4168e5c31af7Sopenharmony_ci     ename:VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR.
4169e5c31af7Sopenharmony_ci  ** The new image creation flag
4170e5c31af7Sopenharmony_ci     ename:VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR.
4171e5c31af7Sopenharmony_ci  ** The new video session creation flag
4172e5c31af7Sopenharmony_ci     ename:VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR.
4173e5c31af7Sopenharmony_ci
4174e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVideoMaintenance1FeaturesKHR
4175e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4176e5c31af7Sopenharmony_ci
4177e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVideoMaintenance1FeaturesKHR.adoc[]
4178e5c31af7Sopenharmony_ci--
4179e5c31af7Sopenharmony_ciendif::VK_KHR_video_maintenance1[]
4180e5c31af7Sopenharmony_ci
4181e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state[]
4182e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicStateFeaturesEXT',desc='Structure describing what extended dynamic state can be used',type='structs']
4183e5c31af7Sopenharmony_ci--
4184e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicStateFeaturesEXT structure is
4185e5c31af7Sopenharmony_cidefined as:
4186e5c31af7Sopenharmony_ci
4187e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.adoc[]
4188e5c31af7Sopenharmony_ci
4189e5c31af7Sopenharmony_ciThis structure describes the following feature:
4190e5c31af7Sopenharmony_ci
4191e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4192e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4193e5c31af7Sopenharmony_ci    structure.
4194e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState]] pname:extendedDynamicState indicates
4195e5c31af7Sopenharmony_ci    that the implementation supports the following dynamic states:
4196e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_CULL_MODE
4197e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_FRONT_FACE
4198e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY
4199e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT
4200e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT
4201e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE
4202e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE
4203e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE
4204e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_COMPARE_OP
4205e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE
4206e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE
4207e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_STENCIL_OP
4208e5c31af7Sopenharmony_ci
4209e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
4210e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4211e5c31af7Sopenharmony_ci
4212e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.adoc[]
4213e5c31af7Sopenharmony_ci--
4214e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state[]
4215e5c31af7Sopenharmony_ci
4216e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state2[]
4217e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicState2FeaturesEXT',desc='Structure describing what extended dynamic state can be used',type='structs']
4218e5c31af7Sopenharmony_ci--
4219e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicState2FeaturesEXT structure is
4220e5c31af7Sopenharmony_cidefined as:
4221e5c31af7Sopenharmony_ci
4222e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.adoc[]
4223e5c31af7Sopenharmony_ci
4224e5c31af7Sopenharmony_ciThis structure describes the following features:
4225e5c31af7Sopenharmony_ci
4226e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4227e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4228e5c31af7Sopenharmony_ci    structure.
4229e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState2]] pname:extendedDynamicState2 indicates
4230e5c31af7Sopenharmony_ci    that the implementation supports the following dynamic states:
4231e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE
4232e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE
4233e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE
4234e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState2LogicOp]]
4235e5c31af7Sopenharmony_ci    pname:extendedDynamicState2LogicOp indicates that the implementation
4236e5c31af7Sopenharmony_ci    supports the following dynamic state:
4237e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_LOGIC_OP_EXT
4238e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState2PatchControlPoints]]
4239e5c31af7Sopenharmony_ci    pname:extendedDynamicState2PatchControlPoints indicates that the
4240e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4241e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
4242e5c31af7Sopenharmony_ci
4243e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
4244e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4245e5c31af7Sopenharmony_ci
4246e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.adoc[]
4247e5c31af7Sopenharmony_ci--
4248e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state2[]
4249e5c31af7Sopenharmony_ci
4250e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state3[]
4251e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicState3FeaturesEXT',desc='Structure describing what extended dynamic state is supported by the implementation',type='structs']
4252e5c31af7Sopenharmony_ci--
4253e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicState3FeaturesEXT structure is
4254e5c31af7Sopenharmony_cidefined as:
4255e5c31af7Sopenharmony_ci
4256e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicState3FeaturesEXT.adoc[]
4257e5c31af7Sopenharmony_ci
4258e5c31af7Sopenharmony_ciThis structure describes the following features:
4259e5c31af7Sopenharmony_ci
4260e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4261e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4262e5c31af7Sopenharmony_ci    structure.
4263e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3TessellationDomainOrigin]]
4264e5c31af7Sopenharmony_ci    pname:extendedDynamicState3TessellationDomainOrigin indicates that the
4265e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4266e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT
4267e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3DepthClampEnable]]
4268e5c31af7Sopenharmony_ci    pname:extendedDynamicState3DepthClampEnable indicates that the
4269e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4270e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT
4271e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3PolygonMode]]
4272e5c31af7Sopenharmony_ci    pname:extendedDynamicState3PolygonMode indicates that the implementation
4273e5c31af7Sopenharmony_ci    supports the following dynamic state:
4274e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_POLYGON_MODE_EXT
4275e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3RasterizationSamples]]
4276e5c31af7Sopenharmony_ci    pname:extendedDynamicState3RasterizationSamples indicates that the
4277e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4278e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
4279e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3SampleMask]]
4280e5c31af7Sopenharmony_ci    pname:extendedDynamicState3SampleMask indicates that the implementation
4281e5c31af7Sopenharmony_ci    supports the following dynamic state:
4282e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_SAMPLE_MASK_EXT
4283e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3AlphaToCoverageEnable]]
4284e5c31af7Sopenharmony_ci    pname:extendedDynamicState3AlphaToCoverageEnable indicates that the
4285e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4286e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
4287e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3AlphaToOneEnable]]
4288e5c31af7Sopenharmony_ci    pname:extendedDynamicState3AlphaToOneEnable indicates that the
4289e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4290e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
4291e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3LogicOpEnable]]
4292e5c31af7Sopenharmony_ci    pname:extendedDynamicState3LogicOpEnable indicates that the
4293e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4294e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT
4295e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ColorBlendEnable]]
4296e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ColorBlendEnable indicates that the
4297e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4298e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
4299e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ColorBlendEquation]]
4300e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ColorBlendEquation indicates that the
4301e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4302e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
4303e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ColorWriteMask]]
4304e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ColorWriteMask indicates that the
4305e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4306e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT
4307e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3RasterizationStream]]
4308e5c31af7Sopenharmony_ci    pname:extendedDynamicState3RasterizationStream indicates that the
4309e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4310e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT
4311e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ConservativeRasterizationMode]]
4312e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ConservativeRasterizationMode indicates that
4313e5c31af7Sopenharmony_ci    the implementation supports the following dynamic state:
4314e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT
4315e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ExtraPrimitiveOverestimationSize]]
4316e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ExtraPrimitiveOverestimationSize indicates
4317e5c31af7Sopenharmony_ci    that the implementation supports the following dynamic state:
4318e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT
4319e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3DepthClipEnable]]
4320e5c31af7Sopenharmony_ci    pname:extendedDynamicState3DepthClipEnable indicates that the
4321e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4322e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT
4323e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3SampleLocationsEnable]]
4324e5c31af7Sopenharmony_ci    pname:extendedDynamicState3SampleLocationsEnable indicates that the
4325e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4326e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
4327e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ColorBlendAdvanced]]
4328e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ColorBlendAdvanced indicates that the
4329e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4330e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
4331e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ProvokingVertexMode]]
4332e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ProvokingVertexMode indicates that the
4333e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4334e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT
4335e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3LineRasterizationMode]]
4336e5c31af7Sopenharmony_ci    pname:extendedDynamicState3LineRasterizationMode indicates that the
4337e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4338e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT
4339e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3LineStippleEnable]]
4340e5c31af7Sopenharmony_ci    pname:extendedDynamicState3LineStippleEnable indicates that the
4341e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4342e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT
4343e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3DepthClipNegativeOneToOne]]
4344e5c31af7Sopenharmony_ci    pname:extendedDynamicState3DepthClipNegativeOneToOne indicates that the
4345e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4346e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT
4347e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ViewportWScalingEnable]]
4348e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ViewportWScalingEnable indicates that the
4349e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4350e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV
4351e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ViewportSwizzle]]
4352e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ViewportSwizzle indicates that the
4353e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4354e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV
4355e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3CoverageToColorEnable]]
4356e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageToColorEnable indicates that the
4357e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4358e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV
4359e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3CoverageToColorLocation]]
4360e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageToColorLocation indicates that the
4361e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4362e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV
4363e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3CoverageModulationMode]]
4364e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageModulationMode indicates that the
4365e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4366e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV
4367e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3CoverageModulationTableEnable]]
4368e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageModulationTableEnable indicates that
4369e5c31af7Sopenharmony_ci    the implementation supports the following dynamic state:
4370e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV
4371e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3CoverageModulationTable]]
4372e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageModulationTable indicates that the
4373e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4374e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV
4375e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3CoverageReductionMode]]
4376e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageReductionMode indicates that the
4377e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4378e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
4379e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3RepresentativeFragmentTestEnable]]
4380e5c31af7Sopenharmony_ci    pname:extendedDynamicState3RepresentativeFragmentTestEnable indicates
4381e5c31af7Sopenharmony_ci    that the implementation supports the following dynamic state:
4382e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV
4383e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState3ShadingRateImageEnable]]
4384e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ShadingRateImageEnable indicates that the
4385e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
4386e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV
4387e5c31af7Sopenharmony_ci
4388e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicState3FeaturesEXT
4389e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4390e5c31af7Sopenharmony_ci
4391e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicState3FeaturesEXT.adoc[]
4392e5c31af7Sopenharmony_ci--
4393e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state3[]
4394e5c31af7Sopenharmony_ci
4395e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands[]
4396e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV',desc='Structure describing the device-generated commands features that can be supported by an implementation',type='structs']
4397e5c31af7Sopenharmony_ci--
4398e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV structure is
4399e5c31af7Sopenharmony_cidefined as:
4400e5c31af7Sopenharmony_ci
4401e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.adoc[]
4402e5c31af7Sopenharmony_ci
4403e5c31af7Sopenharmony_ciThis structure describes the following feature:
4404e5c31af7Sopenharmony_ci
4405e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4406e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4407e5c31af7Sopenharmony_ci    structure.
4408e5c31af7Sopenharmony_ci  * [[features-deviceGeneratedCommands]] pname:deviceGeneratedCommands
4409e5c31af7Sopenharmony_ci    indicates whether the implementation supports functionality to generate
4410e5c31af7Sopenharmony_ci    commands on the device.
4411e5c31af7Sopenharmony_ci    See <<device-generated-commands,Device-Generated Commands>>.
4412e5c31af7Sopenharmony_ci
4413e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV
4414e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4415e5c31af7Sopenharmony_ci
4416e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.adoc[]
4417e5c31af7Sopenharmony_ci--
4418e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands[]
4419e5c31af7Sopenharmony_ci
4420e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands_compute[]
4421e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',desc='Structure describing the device-generated compute features that can be supported by an implementation',type='structs']
4422e5c31af7Sopenharmony_ci--
4423e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV structure
4424e5c31af7Sopenharmony_ciis defined as:
4425e5c31af7Sopenharmony_ci
4426e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.adoc[]
4427e5c31af7Sopenharmony_ci
4428e5c31af7Sopenharmony_ciThis structure describes the following features:
4429e5c31af7Sopenharmony_ci
4430e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4431e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4432e5c31af7Sopenharmony_ci    structure.
4433e5c31af7Sopenharmony_ci  * [[features-deviceGeneratedCompute]] pname:deviceGeneratedCompute
4434e5c31af7Sopenharmony_ci    indicates whether the implementation supports functionality to generate
4435e5c31af7Sopenharmony_ci    dispatch commands and push constants for the compute pipeline on the
4436e5c31af7Sopenharmony_ci    device.
4437e5c31af7Sopenharmony_ci    See <<device-generated-commands,Device-Generated Commands>>.
4438e5c31af7Sopenharmony_ci  * [[features-deviceGeneratedComputePipelines]]
4439e5c31af7Sopenharmony_ci    pname:deviceGeneratedComputePipelines indicates whether the
4440e5c31af7Sopenharmony_ci    implementation supports functionality to generate commands to bind
4441e5c31af7Sopenharmony_ci    compute pipelines on the device.
4442e5c31af7Sopenharmony_ci    See <<device-generated-commands,Device-Generated Commands>>.
4443e5c31af7Sopenharmony_ci  * [[features-deviceGeneratedComputeCaptureReplay]]
4444e5c31af7Sopenharmony_ci    pname:deviceGeneratedComputeCaptureReplay indicates whether the
4445e5c31af7Sopenharmony_ci    implementation supports functionality to capture compute pipeline
4446e5c31af7Sopenharmony_ci    address and reuse later for replay in
4447e5c31af7Sopenharmony_ci    <<device-generated-commands,Device-Generated Commands>>.
4448e5c31af7Sopenharmony_ci
4449e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV
4450e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4451e5c31af7Sopenharmony_ci
4452e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.adoc[]
4453e5c31af7Sopenharmony_ci--
4454e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands_compute[]
4455e5c31af7Sopenharmony_ci
4456e5c31af7Sopenharmony_ciifdef::VK_NV_device_diagnostics_config[]
4457e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDiagnosticsConfigFeaturesNV',desc='Structure describing the device-generated diagnostic configuration features that can be supported by an implementation',type='structs']
4458e5c31af7Sopenharmony_ci--
4459e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDiagnosticsConfigFeaturesNV structure is defined
4460e5c31af7Sopenharmony_cias:
4461e5c31af7Sopenharmony_ci
4462e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.adoc[]
4463e5c31af7Sopenharmony_ci
4464e5c31af7Sopenharmony_ciThis structure describes the following feature:
4465e5c31af7Sopenharmony_ci
4466e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4467e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4468e5c31af7Sopenharmony_ci    structure.
4469e5c31af7Sopenharmony_ci  * [[features-diagnosticsConfig]] pname:diagnosticsConfig indicates whether
4470e5c31af7Sopenharmony_ci    the implementation supports the ability to configure diagnostic tools.
4471e5c31af7Sopenharmony_ci
4472e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDiagnosticsConfigFeaturesNV
4473e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4474e5c31af7Sopenharmony_ci
4475e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.adoc[]
4476e5c31af7Sopenharmony_ci--
4477e5c31af7Sopenharmony_ciendif::VK_NV_device_diagnostics_config[]
4478e5c31af7Sopenharmony_ci
4479e5c31af7Sopenharmony_ciifdef::VK_EXT_device_memory_report[]
4480e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceMemoryReportFeaturesEXT',desc='Structure describing whether device memory report callback can be supported by an implementation',type='structs']
4481e5c31af7Sopenharmony_ci--
4482e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceMemoryReportFeaturesEXT structure is defined
4483e5c31af7Sopenharmony_cias:
4484e5c31af7Sopenharmony_ci
4485e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.adoc[]
4486e5c31af7Sopenharmony_ci
4487e5c31af7Sopenharmony_ciThis structure describes the following feature:
4488e5c31af7Sopenharmony_ci
4489e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4490e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4491e5c31af7Sopenharmony_ci    structure.
4492e5c31af7Sopenharmony_ci  * [[features-deviceMemoryReport]] pname:deviceMemoryReport indicates
4493e5c31af7Sopenharmony_ci    whether the implementation supports the ability to register device
4494e5c31af7Sopenharmony_ci    memory report callbacks.
4495e5c31af7Sopenharmony_ci
4496e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
4497e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4498e5c31af7Sopenharmony_ci
4499e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.adoc[]
4500e5c31af7Sopenharmony_ci--
4501e5c31af7Sopenharmony_ciendif::VK_EXT_device_memory_report[]
4502e5c31af7Sopenharmony_ci
4503e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query,VK_KHR_global_priority[]
4504e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR',desc='Structure describing whether global priority query can be supported by an implementation',type='structs']
4505e5c31af7Sopenharmony_ci--
4506e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR structure is
4507e5c31af7Sopenharmony_cidefined as:
4508e5c31af7Sopenharmony_ci
4509e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR.adoc[]
4510e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query[]
4511e5c31af7Sopenharmony_cior the equivalent
4512e5c31af7Sopenharmony_ci
4513e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT.adoc[]
4514e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query[]
4515e5c31af7Sopenharmony_ci
4516e5c31af7Sopenharmony_ciThis structure describes the following feature:
4517e5c31af7Sopenharmony_ci
4518e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4519e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4520e5c31af7Sopenharmony_ci    structure.
4521e5c31af7Sopenharmony_ci  * [[features-globalPriorityQuery]] pname:globalPriorityQuery indicates
4522e5c31af7Sopenharmony_ci    whether the implementation supports the ability to query global queue
4523e5c31af7Sopenharmony_ci    priorities.
4524e5c31af7Sopenharmony_ci
4525e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR
4526e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4527e5c31af7Sopenharmony_ci
4528e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR.adoc[]
4529e5c31af7Sopenharmony_ci--
4530e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query,VK_KHR_global_priority[]
4531e5c31af7Sopenharmony_ci
4532e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[]
4533e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineCreationCacheControlFeatures',desc='Structure describing whether pipeline cache control can be supported by an implementation',type='structs',alias='VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT']
4534e5c31af7Sopenharmony_ci--
4535e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineCreationCacheControlFeatures structure is
4536e5c31af7Sopenharmony_cidefined as:
4537e5c31af7Sopenharmony_ci
4538e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineCreationCacheControlFeatures.adoc[]
4539e5c31af7Sopenharmony_ci
4540e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_creation_cache_control[]
4541e5c31af7Sopenharmony_cior the equivalent
4542e5c31af7Sopenharmony_ci
4543e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT.adoc[]
4544e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_creation_cache_control[]
4545e5c31af7Sopenharmony_ci
4546e5c31af7Sopenharmony_ciThis structure describes the following feature:
4547e5c31af7Sopenharmony_ci
4548e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4549e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4550e5c31af7Sopenharmony_ci    structure.
4551e5c31af7Sopenharmony_ci
4552e5c31af7Sopenharmony_ci// Must have preceding whitespace
4553e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
4554e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
4555e5c31af7Sopenharmony_ci// tag::VK_EXT_pipeline_creation_cache_control-features[]
4556e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-pipelineCreationCacheControl]]
4557e5c31af7Sopenharmony_ci    pname:pipelineCreationCacheControl indicates that the implementation
4558e5c31af7Sopenharmony_ci    supports:
4559e5c31af7Sopenharmony_ci  ** The following can: be used in stext:Vk*PipelineCreateInfo::pname:flags:
4560e5c31af7Sopenharmony_ci  *** ename:VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
4561e5c31af7Sopenharmony_ci  *** ename:VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT
4562e5c31af7Sopenharmony_ci  ** The following can: be used in
4563e5c31af7Sopenharmony_ci     slink:VkPipelineCacheCreateInfo::pname:flags:
4564e5c31af7Sopenharmony_ci  *** ename:VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
4565e5c31af7Sopenharmony_ci// end::VK_EXT_pipeline_creation_cache_control-features[]
4566e5c31af7Sopenharmony_ci
4567e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineCreationCacheControlFeatures
4568e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4569e5c31af7Sopenharmony_ci
4570e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineCreationCacheControlFeatures.adoc[]
4571e5c31af7Sopenharmony_ci--
4572e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[]
4573e5c31af7Sopenharmony_ci
4574e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory[]
4575e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures',desc='Structure describing support for zero initialization of workgroup memory by an implementation',type='structs',alias='VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR']
4576e5c31af7Sopenharmony_ci--
4577e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure is
4578e5c31af7Sopenharmony_cidefined as:
4579e5c31af7Sopenharmony_ci
4580e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures.adoc[]
4581e5c31af7Sopenharmony_ci
4582e5c31af7Sopenharmony_ciifdef::VK_KHR_zero_initialize_workgroup_memory[]
4583e5c31af7Sopenharmony_cior the equivalent
4584e5c31af7Sopenharmony_ci
4585e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.adoc[]
4586e5c31af7Sopenharmony_ciendif::VK_KHR_zero_initialize_workgroup_memory[]
4587e5c31af7Sopenharmony_ci
4588e5c31af7Sopenharmony_ciThis structure describes the following feature:
4589e5c31af7Sopenharmony_ci
4590e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4591e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4592e5c31af7Sopenharmony_ci    structure.
4593e5c31af7Sopenharmony_ci
4594e5c31af7Sopenharmony_ci// Must have preceding whitespace
4595e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
4596e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
4597e5c31af7Sopenharmony_ci// tag::VK_KHR_zero_initialize_workgroup_memory-features[]
4598e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderZeroInitializeWorkgroupMemory]]
4599e5c31af7Sopenharmony_ci    pname:shaderZeroInitializeWorkgroupMemory specifies whether the
4600e5c31af7Sopenharmony_ci    implementation supports initializing a variable in Workgroup storage
4601e5c31af7Sopenharmony_ci    class.
4602e5c31af7Sopenharmony_ci// end::VK_KHR_zero_initialize_workgroup_memory-features[]
4603e5c31af7Sopenharmony_ci
4604e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
4605e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4606e5c31af7Sopenharmony_ci
4607e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures.adoc[]
4608e5c31af7Sopenharmony_ci--
4609e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory[]
4610e5c31af7Sopenharmony_ci
4611e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_private_data[]
4612e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrivateDataFeatures',desc='Structure specifying physical device support',type='structs',alias='VkPhysicalDevicePrivateDataFeaturesEXT']
4613e5c31af7Sopenharmony_ci--
4614e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrivateDataFeatures structure is defined as:
4615e5c31af7Sopenharmony_ci
4616e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrivateDataFeatures.adoc[]
4617e5c31af7Sopenharmony_ci
4618e5c31af7Sopenharmony_ciifdef::VK_EXT_private_data[]
4619e5c31af7Sopenharmony_cior the equivalent
4620e5c31af7Sopenharmony_ci
4621e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrivateDataFeaturesEXT.adoc[]
4622e5c31af7Sopenharmony_ciendif::VK_EXT_private_data[]
4623e5c31af7Sopenharmony_ci
4624e5c31af7Sopenharmony_ciThis structure describes the following feature:
4625e5c31af7Sopenharmony_ci
4626e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4627e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4628e5c31af7Sopenharmony_ci    structure.
4629e5c31af7Sopenharmony_ci
4630e5c31af7Sopenharmony_ci// Must have preceding whitespace
4631e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
4632e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
4633e5c31af7Sopenharmony_ci// tag::VK_EXT_private_data-features[]
4634e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-privateData]] pname:privateData indicates
4635e5c31af7Sopenharmony_ci    whether the implementation supports private data.
4636e5c31af7Sopenharmony_ci    See <<private-data, Private Data>>.
4637e5c31af7Sopenharmony_ci// end::VK_EXT_private_data-features[]
4638e5c31af7Sopenharmony_ci
4639e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrivateDataFeatures
4640e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4641e5c31af7Sopenharmony_ci
4642e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrivateDataFeatures.adoc[]
4643e5c31af7Sopenharmony_ci--
4644e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_private_data[]
4645e5c31af7Sopenharmony_ci
4646e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[]
4647e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',desc='Structure describing support for shader subgroup uniform control flow by an implementation',type='structs']
4648e5c31af7Sopenharmony_ci--
4649e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
4650e5c31af7Sopenharmony_cistructure is defined as:
4651e5c31af7Sopenharmony_ci
4652e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.adoc[]
4653e5c31af7Sopenharmony_ci
4654e5c31af7Sopenharmony_ciThis structure describes the following feature:
4655e5c31af7Sopenharmony_ci
4656e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4657e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4658e5c31af7Sopenharmony_ci    structure.
4659e5c31af7Sopenharmony_ci  * [[features-shaderSubgroupUniformControlFlow]]
4660e5c31af7Sopenharmony_ci    pname:shaderSubgroupUniformControlFlow specifies whether the
4661e5c31af7Sopenharmony_ci    implementation supports the shader execution mode
4662e5c31af7Sopenharmony_ci    code:SubgroupUniformControlFlowKHR
4663e5c31af7Sopenharmony_ci
4664e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
4665e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4666e5c31af7Sopenharmony_ci
4667e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.adoc[]
4668e5c31af7Sopenharmony_ci--
4669e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[]
4670e5c31af7Sopenharmony_ci
4671e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
4672e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRobustness2FeaturesEXT',desc='Structure describing the out-of-bounds behavior for an implementation',type='structs']
4673e5c31af7Sopenharmony_ci--
4674e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRobustness2FeaturesEXT structure is defined as:
4675e5c31af7Sopenharmony_ci
4676e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRobustness2FeaturesEXT.adoc[]
4677e5c31af7Sopenharmony_ci
4678e5c31af7Sopenharmony_ciThis structure describes the following features:
4679e5c31af7Sopenharmony_ci
4680e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4681e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4682e5c31af7Sopenharmony_ci    structure.
4683e5c31af7Sopenharmony_ci  * [[features-robustBufferAccess2]] pname:robustBufferAccess2 indicates
4684e5c31af7Sopenharmony_ci    whether buffer accesses are tightly bounds-checked against the range of
4685e5c31af7Sopenharmony_ci    the descriptor.
4686e5c31af7Sopenharmony_ci    Uniform buffers must: be bounds-checked to the range of the descriptor,
4687e5c31af7Sopenharmony_ci    where the range is rounded up to a multiple of
4688e5c31af7Sopenharmony_ci    <<limits-robustUniformBufferAccessSizeAlignment,
4689e5c31af7Sopenharmony_ci    pname:robustUniformBufferAccessSizeAlignment>>.
4690e5c31af7Sopenharmony_ci    Storage buffers must: be bounds-checked to the range of the descriptor,
4691e5c31af7Sopenharmony_ci    where the range is rounded up to a multiple of
4692e5c31af7Sopenharmony_ci    <<limits-robustStorageBufferAccessSizeAlignment,
4693e5c31af7Sopenharmony_ci    pname:robustStorageBufferAccessSizeAlignment>>.
4694e5c31af7Sopenharmony_ci    Out of bounds buffer loads will return zero values, and <<textures,
4695e5c31af7Sopenharmony_ci    image load, sample, and atomic operations>> from texel buffers will have
4696e5c31af7Sopenharmony_ci    [eq]#(0,0,1)# values <<textures-conversion-to-rgba,inserted for missing
4697e5c31af7Sopenharmony_ci    G, B, or A components>> based on the format.
4698e5c31af7Sopenharmony_ci  * [[features-robustImageAccess2]] pname:robustImageAccess2 indicates
4699e5c31af7Sopenharmony_ci    whether image accesses are tightly bounds-checked against the dimensions
4700e5c31af7Sopenharmony_ci    of the image view.
4701e5c31af7Sopenharmony_ci    Out of bounds <<textures, image load, sample, and atomic operations>>
4702e5c31af7Sopenharmony_ci    from images will return zero values, with [eq]#(0,0,1)# values
4703e5c31af7Sopenharmony_ci    <<textures-conversion-to-rgba,inserted for missing G, B, or A
4704e5c31af7Sopenharmony_ci    components>> based on the format.
4705e5c31af7Sopenharmony_ci  * [[{vuprefix}features-nullDescriptor]] pname:nullDescriptor indicates
4706e5c31af7Sopenharmony_ci    whether descriptors can: be written with a dlink:VK_NULL_HANDLE resource
4707e5c31af7Sopenharmony_ci    or view, which are considered valid to access and act as if the
4708e5c31af7Sopenharmony_ci    descriptor were bound to nothing.
4709e5c31af7Sopenharmony_ci
4710e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRobustness2FeaturesEXT
4711e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4712e5c31af7Sopenharmony_ci
4713e5c31af7Sopenharmony_ci.Valid Usage
4714e5c31af7Sopenharmony_ci****
4715e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000]]
4716e5c31af7Sopenharmony_ci    If pname:robustBufferAccess2 is enabled then
4717e5c31af7Sopenharmony_ci    <<features-robustBufferAccess, pname:robustBufferAccess>> must: also be
4718e5c31af7Sopenharmony_ci    enabled
4719e5c31af7Sopenharmony_ci****
4720e5c31af7Sopenharmony_ci
4721e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRobustness2FeaturesEXT.adoc[]
4722e5c31af7Sopenharmony_ci--
4723e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
4724e5c31af7Sopenharmony_ci
4725e5c31af7Sopenharmony_ciifndef::VK_EXT_robustness2[]
4726e5c31af7Sopenharmony_ci[[features-nullDescriptor]] nullDescriptor support requires the
4727e5c31af7Sopenharmony_ci`apiext:VK_EXT_robustness2` extension.
4728e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
4729e5c31af7Sopenharmony_ci
4730e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_image_robustness[]
4731e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageRobustnessFeatures',desc='Structure describing the out-of-bounds behavior for an implementation',type='structs',alias='VkPhysicalDeviceImageRobustnessFeaturesEXT']
4732e5c31af7Sopenharmony_ci--
4733e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageRobustnessFeatures structure is defined as:
4734e5c31af7Sopenharmony_ci
4735e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageRobustnessFeatures.adoc[]
4736e5c31af7Sopenharmony_ci
4737e5c31af7Sopenharmony_ciifdef::VK_EXT_image_robustness[]
4738e5c31af7Sopenharmony_cior the equivalent
4739e5c31af7Sopenharmony_ci
4740e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageRobustnessFeaturesEXT.adoc[]
4741e5c31af7Sopenharmony_ciendif::VK_EXT_image_robustness[]
4742e5c31af7Sopenharmony_ci
4743e5c31af7Sopenharmony_ciThis structure describes the following feature:
4744e5c31af7Sopenharmony_ci
4745e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4746e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4747e5c31af7Sopenharmony_ci    structure.
4748e5c31af7Sopenharmony_ci
4749e5c31af7Sopenharmony_ci// Must have preceding whitespace
4750e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
4751e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
4752e5c31af7Sopenharmony_ci// tag::VK_EXT_image_robustness-features[]
4753e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-robustImageAccess]] pname:robustImageAccess
4754e5c31af7Sopenharmony_ci    indicates whether image accesses are tightly bounds-checked against the
4755e5c31af7Sopenharmony_ci    dimensions of the image view.
4756e5c31af7Sopenharmony_ci    <<textures-input-validation,Invalid texels>> resulting from out of
4757e5c31af7Sopenharmony_ci    bounds image loads will be replaced as described in
4758e5c31af7Sopenharmony_ci    <<textures-texel-replacement,Texel Replacement>>, with either
4759e5c31af7Sopenharmony_ci    [eq]#(0,0,1)# or [eq]#(0,0,0)# values inserted for missing G, B, or A
4760e5c31af7Sopenharmony_ci    components based on the format.
4761e5c31af7Sopenharmony_ci// end::VK_EXT_image_robustness-features[]
4762e5c31af7Sopenharmony_ci
4763e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageRobustnessFeatures
4764e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4765e5c31af7Sopenharmony_ci
4766e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageRobustnessFeatures.adoc[]
4767e5c31af7Sopenharmony_ci--
4768e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_image_robustness[]
4769e5c31af7Sopenharmony_ci
4770e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_shader_terminate_invocation[]
4771e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderTerminateInvocationFeatures',desc='Structure describing support for the SPIR-V code:SPV_KHR_terminate_invocation extension',type='structs',alias='VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR']
4772e5c31af7Sopenharmony_ci--
4773e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderTerminateInvocationFeatures structure is
4774e5c31af7Sopenharmony_cidefined as:
4775e5c31af7Sopenharmony_ci
4776e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderTerminateInvocationFeatures.adoc[]
4777e5c31af7Sopenharmony_ci
4778e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_terminate_invocation[]
4779e5c31af7Sopenharmony_cior the equivalent
4780e5c31af7Sopenharmony_ci
4781e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR.adoc[]
4782e5c31af7Sopenharmony_ciendif::VK_KHR_shader_terminate_invocation[]
4783e5c31af7Sopenharmony_ci
4784e5c31af7Sopenharmony_ciThis structure describes the following feature:
4785e5c31af7Sopenharmony_ci
4786e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4787e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4788e5c31af7Sopenharmony_ci    structure.
4789e5c31af7Sopenharmony_ci
4790e5c31af7Sopenharmony_ci// Must have preceding whitespace
4791e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
4792e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
4793e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_terminate_invocation-features[]
4794e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderTerminateInvocation]]
4795e5c31af7Sopenharmony_ci    pname:shaderTerminateInvocation specifies whether the implementation
4796e5c31af7Sopenharmony_ci    supports SPIR-V modules that use the `SPV_KHR_terminate_invocation`
4797e5c31af7Sopenharmony_ci    extension.
4798e5c31af7Sopenharmony_ci// end::VK_KHR_shader_terminate_invocation-features[]
4799e5c31af7Sopenharmony_ci
4800e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderTerminateInvocationFeatures
4801e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4802e5c31af7Sopenharmony_ci
4803e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderTerminateInvocationFeatures.adoc[]
4804e5c31af7Sopenharmony_ci--
4805e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_shader_terminate_invocation[]
4806e5c31af7Sopenharmony_ci
4807e5c31af7Sopenharmony_ciifdef::VK_EXT_custom_border_color[]
4808e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCustomBorderColorFeaturesEXT',desc='Structure describing whether custom border colors can be supported by an implementation',type='structs']
4809e5c31af7Sopenharmony_ci--
4810e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCustomBorderColorFeaturesEXT structure is defined
4811e5c31af7Sopenharmony_cias:
4812e5c31af7Sopenharmony_ci
4813e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCustomBorderColorFeaturesEXT.adoc[]
4814e5c31af7Sopenharmony_ci
4815e5c31af7Sopenharmony_ciThis structure describes the following features:
4816e5c31af7Sopenharmony_ci
4817e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4818e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4819e5c31af7Sopenharmony_ci    structure.
4820e5c31af7Sopenharmony_ci  * [[features-customBorderColors]] pname:customBorderColors indicates that
4821e5c31af7Sopenharmony_ci    the implementation supports providing a pname:borderColor value with one
4822e5c31af7Sopenharmony_ci    of the following values at sampler creation time:
4823e5c31af7Sopenharmony_ci  ** ename:VK_BORDER_COLOR_FLOAT_CUSTOM_EXT
4824e5c31af7Sopenharmony_ci  ** ename:VK_BORDER_COLOR_INT_CUSTOM_EXT
4825e5c31af7Sopenharmony_ci  * [[features-customBorderColorWithoutFormat]]
4826e5c31af7Sopenharmony_ci    pname:customBorderColorWithoutFormat indicates that explicit formats are
4827e5c31af7Sopenharmony_ci    not required for custom border colors and the value of the pname:format
4828e5c31af7Sopenharmony_ci    member of the slink:VkSamplerCustomBorderColorCreateInfoEXT structure
4829e5c31af7Sopenharmony_ci    may: be ename:VK_FORMAT_UNDEFINED.
4830e5c31af7Sopenharmony_ci    If this feature bit is not set, applications must: provide the
4831e5c31af7Sopenharmony_ci    elink:VkFormat of the image view(s) being sampled by this sampler in the
4832e5c31af7Sopenharmony_ci    pname:format member of the slink:VkSamplerCustomBorderColorCreateInfoEXT
4833e5c31af7Sopenharmony_ci    structure.
4834e5c31af7Sopenharmony_ci
4835e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCustomBorderColorFeaturesEXT
4836e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4837e5c31af7Sopenharmony_ci
4838e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCustomBorderColorFeaturesEXT.adoc[]
4839e5c31af7Sopenharmony_ci--
4840e5c31af7Sopenharmony_ciendif::VK_EXT_custom_border_color[]
4841e5c31af7Sopenharmony_ci
4842e5c31af7Sopenharmony_ciifdef::VK_EXT_border_color_swizzle[]
4843e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBorderColorSwizzleFeaturesEXT',desc='Structure describing whether samplers with custom border colors require the component swizzle specified in order to have defined behavior',type='structs']
4844e5c31af7Sopenharmony_ci--
4845e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBorderColorSwizzleFeaturesEXT structure is defined
4846e5c31af7Sopenharmony_cias:
4847e5c31af7Sopenharmony_ci
4848e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.adoc[]
4849e5c31af7Sopenharmony_ci
4850e5c31af7Sopenharmony_ciThis structure describes the following features:
4851e5c31af7Sopenharmony_ci
4852e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4853e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4854e5c31af7Sopenharmony_ci    structure.
4855e5c31af7Sopenharmony_ci  * [[features-borderColorSwizzle]] pname:borderColorSwizzle indicates that
4856e5c31af7Sopenharmony_ci    defined values are returned by sampled image operations when used with a
4857e5c31af7Sopenharmony_ci    sampler that uses a ename:VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
4858e5c31af7Sopenharmony_ci    ename:VK_BORDER_COLOR_INT_OPAQUE_BLACK,
4859e5c31af7Sopenharmony_ci    ename:VK_BORDER_COLOR_FLOAT_CUSTOM_EXT, or
4860e5c31af7Sopenharmony_ci    ename:VK_BORDER_COLOR_INT_CUSTOM_EXT pname:borderColor and an image view
4861e5c31af7Sopenharmony_ci    that uses a non-<<resources-image-views-identity-mappings,identity
4862e5c31af7Sopenharmony_ci    component mapping>>, when either pname:borderColorSwizzleFromImage is
4863e5c31af7Sopenharmony_ci    enabled or the slink:VkSamplerBorderColorComponentMappingCreateInfoEXT
4864e5c31af7Sopenharmony_ci    is specified.
4865e5c31af7Sopenharmony_ci  * [[features-borderColorSwizzleFromImage]]
4866e5c31af7Sopenharmony_ci    pname:borderColorSwizzleFromImage indicates that the implementation will
4867e5c31af7Sopenharmony_ci    return the correct border color values from sampled image operations
4868e5c31af7Sopenharmony_ci    under the conditions expressed above, without the application having to
4869e5c31af7Sopenharmony_ci    specify the border color component mapping when creating the sampler
4870e5c31af7Sopenharmony_ci    object.
4871e5c31af7Sopenharmony_ci    If this feature bit is not set, applications can: chain a
4872e5c31af7Sopenharmony_ci    slink:VkSamplerBorderColorComponentMappingCreateInfoEXT structure when
4873e5c31af7Sopenharmony_ci    creating samplers for use with image views that do not have an
4874e5c31af7Sopenharmony_ci    <<resources-image-views-identity-mappings,identity swizzle>> and, when
4875e5c31af7Sopenharmony_ci    those samplers are combined with image views using the same component
4876e5c31af7Sopenharmony_ci    mapping, sampled image operations that use opaque black or custom border
4877e5c31af7Sopenharmony_ci    colors will return the correct border color values.
4878e5c31af7Sopenharmony_ci
4879e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
4880e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4881e5c31af7Sopenharmony_ci
4882e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.adoc[]
4883e5c31af7Sopenharmony_ci--
4884e5c31af7Sopenharmony_ciendif::VK_EXT_border_color_swizzle[]
4885e5c31af7Sopenharmony_ci
4886e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[]
4887e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePortabilitySubsetFeaturesKHR',desc='Structure describing the features that may not be supported by an implementation of the Vulkan 1.0 Portability Subset',type='structs']
4888e5c31af7Sopenharmony_ci--
4889e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePortabilitySubsetFeaturesKHR structure is defined
4890e5c31af7Sopenharmony_cias:
4891e5c31af7Sopenharmony_ci
4892e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePortabilitySubsetFeaturesKHR.adoc[]
4893e5c31af7Sopenharmony_ci
4894e5c31af7Sopenharmony_ciThis structure describes the following features:
4895e5c31af7Sopenharmony_ci
4896e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4897e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4898e5c31af7Sopenharmony_ci    structure.
4899e5c31af7Sopenharmony_ci  * [[features-constantAlphaColorBlendFactors]]
4900e5c31af7Sopenharmony_ci    pname:constantAlphaColorBlendFactors indicates whether this
4901e5c31af7Sopenharmony_ci    implementation supports constant _alpha_ <<framebuffer-blendfactors>>
4902e5c31af7Sopenharmony_ci    used as source or destination _color_ <<framebuffer-blending>>.
4903e5c31af7Sopenharmony_ci  * [[features-events]] pname:events indicates whether this implementation
4904e5c31af7Sopenharmony_ci    supports synchronization using <<synchronization-events>>.
4905e5c31af7Sopenharmony_ci  * [[features-imageViewFormatReinterpretation]]
4906e5c31af7Sopenharmony_ci    pname:imageViewFormatReinterpretation indicates whether this
4907e5c31af7Sopenharmony_ci    implementation supports a sname:VkImageView being created with a texel
4908e5c31af7Sopenharmony_ci    format containing a different number of components, or a different
4909e5c31af7Sopenharmony_ci    number of bits in each component, than the texel format of the
4910e5c31af7Sopenharmony_ci    underlying sname:VkImage.
4911e5c31af7Sopenharmony_ci  * [[features-imageViewFormatSwizzle]] pname:imageViewFormatSwizzle
4912e5c31af7Sopenharmony_ci    indicates whether this implementation supports remapping format
4913e5c31af7Sopenharmony_ci    components using slink:VkImageViewCreateInfo::pname:components.
4914e5c31af7Sopenharmony_ci  * [[features-imageView2DOn3DImage]] pname:imageView2DOn3DImage indicates
4915e5c31af7Sopenharmony_ci    whether this implementation supports a sname:VkImage being created with
4916e5c31af7Sopenharmony_ci    the ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT flag set, permitting a
4917e5c31af7Sopenharmony_ci    2D or 2D array image view to be created on a 3D sname:VkImage.
4918e5c31af7Sopenharmony_ci  * [[features-multisampleArrayImage]] pname:multisampleArrayImage indicates
4919e5c31af7Sopenharmony_ci    whether this implementation supports a sname:VkImage being created as a
4920e5c31af7Sopenharmony_ci    2D array with multiple samples per texel.
4921e5c31af7Sopenharmony_ci  * [[features-mutableComparisonSamplers]] pname:mutableComparisonSamplers
4922e5c31af7Sopenharmony_ci    indicates whether this implementation allows descriptors with comparison
4923e5c31af7Sopenharmony_ci    samplers to be <<descriptorsets-updates, updated>>.
4924e5c31af7Sopenharmony_ci  * [[features-pointPolygons]] pname:pointPolygons indicates whether this
4925e5c31af7Sopenharmony_ci    implementation supports <<primsrast>> using a _point_
4926e5c31af7Sopenharmony_ci    <<primsrast-polygonmode>>.
4927e5c31af7Sopenharmony_ci  * [[features-samplerMipLodBias]] pname:samplerMipLodBias indicates whether
4928e5c31af7Sopenharmony_ci    this implementation supports setting a <<samplers-mipLodBias, mipmap LOD
4929e5c31af7Sopenharmony_ci    bias value>> when <<samplers, creating a sampler>>.
4930e5c31af7Sopenharmony_ci  * [[features-separateStencilMaskRef]] pname:separateStencilMaskRef
4931e5c31af7Sopenharmony_ci    indicates whether this implementation supports separate front and back
4932e5c31af7Sopenharmony_ci    <<fragops-stencil>> reference values.
4933e5c31af7Sopenharmony_ci  * [[features-shaderSampleRateInterpolationFunctions]]
4934e5c31af7Sopenharmony_ci    pname:shaderSampleRateInterpolationFunctions indicates whether this
4935e5c31af7Sopenharmony_ci    implementation supports fragment shaders which use the
4936e5c31af7Sopenharmony_ci    <<spirvenv-capabilities-table-InterpolationFunction,
4937e5c31af7Sopenharmony_ci    code:InterpolationFunction>> capability and the extended instructions
4938e5c31af7Sopenharmony_ci    `InterpolateAtCentroid`, `InterpolateAtOffset`, and
4939e5c31af7Sopenharmony_ci    `InterpolateAtSample` from the `GLSL.std.450` extended instruction set.
4940e5c31af7Sopenharmony_ci    This member is only meaningful if the <<features-sampleRateShading,
4941e5c31af7Sopenharmony_ci    pname:sampleRateShading>> feature is supported.
4942e5c31af7Sopenharmony_ci  * [[features-tessellationIsolines]] pname:tessellationIsolines indicates
4943e5c31af7Sopenharmony_ci    whether this implementation supports
4944e5c31af7Sopenharmony_ci    <<tessellation-isoline-tessellation, isoline output>> from the
4945e5c31af7Sopenharmony_ci    <<tessellation>> stage of a graphics pipeline.
4946e5c31af7Sopenharmony_ci    This member is only meaningful if <<features-tessellationShader,
4947e5c31af7Sopenharmony_ci    pname:tessellationShader>> are supported.
4948e5c31af7Sopenharmony_ci  * [[features-tessellationPointMode]] pname:tessellationPointMode indicates
4949e5c31af7Sopenharmony_ci    whether this implementation supports <<tessellation-point-mode, point
4950e5c31af7Sopenharmony_ci    output>> from the <<tessellation>> stage of a graphics pipeline.
4951e5c31af7Sopenharmony_ci    This member is only meaningful if <<features-tessellationShader,
4952e5c31af7Sopenharmony_ci    pname:tessellationShader>> are supported.
4953e5c31af7Sopenharmony_ci  * [[features-triangleFans]] pname:triangleFans indicates whether this
4954e5c31af7Sopenharmony_ci    implementation supports <<drawing-triangle-fans>> primitive topology.
4955e5c31af7Sopenharmony_ci  * [[features-vertexAttributeAccessBeyondStride]]
4956e5c31af7Sopenharmony_ci    pname:vertexAttributeAccessBeyondStride indicates whether this
4957e5c31af7Sopenharmony_ci    implementation supports accessing a vertex input attribute beyond the
4958e5c31af7Sopenharmony_ci    stride of the corresponding vertex input binding.
4959e5c31af7Sopenharmony_ci
4960e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePortabilitySubsetFeaturesKHR
4961e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4962e5c31af7Sopenharmony_ci
4963e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePortabilitySubsetFeaturesKHR.adoc[]
4964e5c31af7Sopenharmony_ci--
4965e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
4966e5c31af7Sopenharmony_ci
4967e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
4968e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkanSC10Features',desc='Structure describing the features that may not be supported by an implementation of Vulkan SC',type='structs']
4969e5c31af7Sopenharmony_ci--
4970e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkanSC10Features structure is defined as:
4971e5c31af7Sopenharmony_ci
4972e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanSC10Features.adoc[]
4973e5c31af7Sopenharmony_ci
4974e5c31af7Sopenharmony_ciThis structure describes the following features:
4975e5c31af7Sopenharmony_ci
4976e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4977e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4978e5c31af7Sopenharmony_ci    structure.
4979e5c31af7Sopenharmony_ci  * [[features-shaderAtomicInstructions]] pname:shaderAtomicInstructions
4980e5c31af7Sopenharmony_ci    indicates whether this implementation supports shaders which use the
4981e5c31af7Sopenharmony_ci    SPIR-V code:OpAtomic* instructions.
4982e5c31af7Sopenharmony_ci
4983e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkanSC10Features
4984e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
4985e5c31af7Sopenharmony_ci
4986e5c31af7Sopenharmony_ciifdef::hidden[]
4987e5c31af7Sopenharmony_ci// tag::scaddition[]
4988e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceVulkanSC10Features <<SCID-1>>
4989e5c31af7Sopenharmony_ci// end::scaddition[]
4990e5c31af7Sopenharmony_ci// tag::scdeviation[]
4991e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceVulkanSC10Features::pname:shaderAtomicInstructions
4992e5c31af7Sopenharmony_ci    are made optional <<SCID-1>>.
4993e5c31af7Sopenharmony_ci// end::scdeviation[]
4994e5c31af7Sopenharmony_ciendif::hidden[]
4995e5c31af7Sopenharmony_ci
4996e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkanSC10Features.adoc[]
4997e5c31af7Sopenharmony_ci--
4998e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
4999e5c31af7Sopenharmony_ci
5000e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[]
5001e5c31af7Sopenharmony_ciinclude::{chapters}/VK_KHR_performance_query/features.adoc[]
5002e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[]
5003e5c31af7Sopenharmony_ci
5004e5c31af7Sopenharmony_ciifdef::VK_EXT_4444_formats[]
5005e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice4444FormatsFeaturesEXT',desc='Structure describing additional 4444 formats supported by an implementation',type='structs']
5006e5c31af7Sopenharmony_ci--
5007e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevice4444FormatsFeaturesEXT structure is defined as:
5008e5c31af7Sopenharmony_ci
5009e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice4444FormatsFeaturesEXT.adoc[]
5010e5c31af7Sopenharmony_ci
5011e5c31af7Sopenharmony_ciThis structure describes the following features:
5012e5c31af7Sopenharmony_ci
5013e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5014e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5015e5c31af7Sopenharmony_ci    structure.
5016e5c31af7Sopenharmony_ci  * [[features-formatA4R4G4B4]] pname:formatA4R4G4B4 indicates that the
5017e5c31af7Sopenharmony_ci    implementation must: support using a elink:VkFormat of
5018e5c31af7Sopenharmony_ci    ename:VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT with at least the following
5019e5c31af7Sopenharmony_ci    elink:VkFormatFeatureFlagBits:
5020e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
5021e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT
5022e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
5023e5c31af7Sopenharmony_ci  * [[features-formatA4B4G4R4]] pname:formatA4B4G4R4 indicates that the
5024e5c31af7Sopenharmony_ci    implementation must: support using a elink:VkFormat of
5025e5c31af7Sopenharmony_ci    ename:VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT with at least the following
5026e5c31af7Sopenharmony_ci    elink:VkFormatFeatureFlagBits:
5027e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
5028e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT
5029e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
5030e5c31af7Sopenharmony_ci
5031e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice4444FormatsFeaturesEXT
5032e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5033e5c31af7Sopenharmony_ci
5034e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice4444FormatsFeaturesEXT.adoc[]
5035e5c31af7Sopenharmony_ci
5036e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[]
5037e5c31af7Sopenharmony_ci[NOTE]
5038e5c31af7Sopenharmony_ci.Note
5039e5c31af7Sopenharmony_ci====
5040e5c31af7Sopenharmony_ciAlthough the formats defined by the `apiext:VK_EXT_4444_formats` extension
5041e5c31af7Sopenharmony_ciwere promoted to Vulkan 1.3 as optional formats, the
5042e5c31af7Sopenharmony_cislink:VkPhysicalDevice4444FormatsFeaturesEXT structure was not promoted to
5043e5c31af7Sopenharmony_ciVulkan 1.3.
5044e5c31af7Sopenharmony_ci====
5045e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[]
5046e5c31af7Sopenharmony_ci--
5047e5c31af7Sopenharmony_ciendif::VK_EXT_4444_formats[]
5048e5c31af7Sopenharmony_ci
5049e5c31af7Sopenharmony_ciifdef::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
5050e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT',desc='Structure describing whether the mutable descriptor type is supported',type='structs',alias='VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE']
5051e5c31af7Sopenharmony_ci--
5052e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT structure is
5053e5c31af7Sopenharmony_cidefined as:
5054e5c31af7Sopenharmony_ci
5055e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT.adoc[]
5056e5c31af7Sopenharmony_ci
5057e5c31af7Sopenharmony_ciifdef::VK_VALVE_mutable_descriptor_type[]
5058e5c31af7Sopenharmony_cior the equivalent
5059e5c31af7Sopenharmony_ci
5060e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.adoc[]
5061e5c31af7Sopenharmony_ciendif::VK_VALVE_mutable_descriptor_type[]
5062e5c31af7Sopenharmony_ci
5063e5c31af7Sopenharmony_ciThis structure describes the following feature:
5064e5c31af7Sopenharmony_ci
5065e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5066e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5067e5c31af7Sopenharmony_ci    structure.
5068e5c31af7Sopenharmony_ci  * [[features-mutableDescriptorType]] pname:mutableDescriptorType indicates
5069e5c31af7Sopenharmony_ci    that the implementation must: support using the elink:VkDescriptorType
5070e5c31af7Sopenharmony_ci    of ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT with at least the following
5071e5c31af7Sopenharmony_ci    descriptor types, where any combination of the types must: be supported:
5072e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
5073e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
5074e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
5075e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
5076e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
5077e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
5078e5c31af7Sopenharmony_ci
5079e5c31af7Sopenharmony_ci  * Additionally, pname:mutableDescriptorType indicates that:
5080e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
5081e5c31af7Sopenharmony_ci  ** Non-uniform descriptor indexing must: be supported if all descriptor
5082e5c31af7Sopenharmony_ci     types in a slink:VkMutableDescriptorTypeListEXT for
5083e5c31af7Sopenharmony_ci     ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT have the corresponding non-uniform
5084e5c31af7Sopenharmony_ci     indexing features enabled in
5085e5c31af7Sopenharmony_ci     slink:VkPhysicalDeviceDescriptorIndexingFeatures.
5086e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT with
5087e5c31af7Sopenharmony_ci     pname:descriptorType of ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT relaxes
5088e5c31af7Sopenharmony_ci     the list of required descriptor types to the descriptor types which
5089e5c31af7Sopenharmony_ci     have the corresponding update-after-bind feature enabled in
5090e5c31af7Sopenharmony_ci     slink:VkPhysicalDeviceDescriptorIndexingFeatures.
5091e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
5092e5c31af7Sopenharmony_ci  ** Dynamically uniform descriptor indexing must: be supported if all
5093e5c31af7Sopenharmony_ci     descriptor types in a slink:VkMutableDescriptorTypeListEXT for
5094e5c31af7Sopenharmony_ci     ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT have the corresponding dynamic
5095e5c31af7Sopenharmony_ci     indexing features enabled.
5096e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT must: be
5097e5c31af7Sopenharmony_ci     supported.
5098e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT must: be supported.
5099e5c31af7Sopenharmony_ci
5100e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT
5101e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5102e5c31af7Sopenharmony_ci
5103e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT.adoc[]
5104e5c31af7Sopenharmony_ci--
5105e5c31af7Sopenharmony_ciendif::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
5106e5c31af7Sopenharmony_ci
5107e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[]
5108e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClipControlFeaturesEXT',desc='Structure describing additional depth clip control supported by an implementation',type='structs']
5109e5c31af7Sopenharmony_ci--
5110e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClipControlFeaturesEXT structure is defined
5111e5c31af7Sopenharmony_cias:
5112e5c31af7Sopenharmony_ci
5113e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClipControlFeaturesEXT.adoc[]
5114e5c31af7Sopenharmony_ci
5115e5c31af7Sopenharmony_ciThis structure describes the following feature:
5116e5c31af7Sopenharmony_ci
5117e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5118e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5119e5c31af7Sopenharmony_ci    structure.
5120e5c31af7Sopenharmony_ci  * [[features-depthClipControl]] pname:depthClipControl indicates that the
5121e5c31af7Sopenharmony_ci    implementation supports setting
5122e5c31af7Sopenharmony_ci    slink:VkPipelineViewportDepthClipControlCreateInfoEXT::pname:negativeOneToOne
5123e5c31af7Sopenharmony_ci    to ename:VK_TRUE.
5124e5c31af7Sopenharmony_ci
5125e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClipControlFeaturesEXT
5126e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5127e5c31af7Sopenharmony_ci
5128e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClipControlFeaturesEXT.adoc[]
5129e5c31af7Sopenharmony_ci--
5130e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[]
5131e5c31af7Sopenharmony_ci
5132e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
5133e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',desc='Structure describing the workgroup storage explicit layout features that can be supported by an implementation',type='structs']
5134e5c31af7Sopenharmony_ci--
5135e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR structure
5136e5c31af7Sopenharmony_ciis defined as:
5137e5c31af7Sopenharmony_ci
5138e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.adoc[]
5139e5c31af7Sopenharmony_ci
5140e5c31af7Sopenharmony_ciThis structure describes the following features:
5141e5c31af7Sopenharmony_ci
5142e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5143e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5144e5c31af7Sopenharmony_ci    structure.
5145e5c31af7Sopenharmony_ci  * [[features-workgroupMemoryExplicitLayout]]
5146e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayout indicates whether the implementation
5147e5c31af7Sopenharmony_ci    supports the SPIR-V code:WorkgroupMemoryExplicitLayoutKHR capability.
5148e5c31af7Sopenharmony_ci  * [[features-workgroupMemoryExplicitLayoutScalarBlockLayout]]
5149e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayoutScalarBlockLayout indicates whether
5150e5c31af7Sopenharmony_ci    the implementation supports scalar alignment for laying out Workgroup
5151e5c31af7Sopenharmony_ci    Blocks.
5152e5c31af7Sopenharmony_ci  * [[features-workgroupMemoryExplicitLayout8BitAccess]]
5153e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayout8BitAccess indicates whether objects
5154e5c31af7Sopenharmony_ci    in the code:Workgroup storage class with the code:Block decoration can:
5155e5c31af7Sopenharmony_ci    have 8-bit integer members.
5156e5c31af7Sopenharmony_ci    If this feature is not enabled, 8-bit integer members must: not be used
5157e5c31af7Sopenharmony_ci    in such objects.
5158e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
5159e5c31af7Sopenharmony_ci    code:WorkgroupMemoryExplicitLayout8BitAccessKHR capability.
5160e5c31af7Sopenharmony_ci  * [[features-workgroupMemoryExplicitLayout16BitAccess]]
5161e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayout16BitAccess indicates whether objects
5162e5c31af7Sopenharmony_ci    in the code:Workgroup storage class with the code:Block decoration can:
5163e5c31af7Sopenharmony_ci    have 16-bit integer and 16-bit floating-point members.
5164e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or 16-bit floating-point
5165e5c31af7Sopenharmony_ci    members must: not be used in such objects.
5166e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
5167e5c31af7Sopenharmony_ci    code:WorkgroupMemoryExplicitLayout16BitAccessKHR capability.
5168e5c31af7Sopenharmony_ci
5169e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
5170e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5171e5c31af7Sopenharmony_ci
5172e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.adoc[]
5173e5c31af7Sopenharmony_ci--
5174e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
5175e5c31af7Sopenharmony_ci
5176e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_synchronization2[]
5177e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSynchronization2Features',desc='Structure describing whether the implementation supports v2 synchronization commands',type='structs',alias='VkPhysicalDeviceSynchronization2FeaturesKHR']
5178e5c31af7Sopenharmony_ci--
5179e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSynchronization2Features structure is defined as:
5180e5c31af7Sopenharmony_ci
5181e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSynchronization2Features.adoc[]
5182e5c31af7Sopenharmony_ci
5183e5c31af7Sopenharmony_ciifdef::VK_KHR_synchronization2[]
5184e5c31af7Sopenharmony_cior the equivalent
5185e5c31af7Sopenharmony_ci
5186e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSynchronization2FeaturesKHR.adoc[]
5187e5c31af7Sopenharmony_ciendif::VK_KHR_synchronization2[]
5188e5c31af7Sopenharmony_ci
5189e5c31af7Sopenharmony_ciThis structure describes the following feature:
5190e5c31af7Sopenharmony_ci
5191e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5192e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5193e5c31af7Sopenharmony_ci    structure.
5194e5c31af7Sopenharmony_ci
5195e5c31af7Sopenharmony_ci// Must have preceding whitespace
5196e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
5197e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
5198e5c31af7Sopenharmony_ci// tag::VK_KHR_synchronization2-features[]
5199e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-synchronization2]] pname:synchronization2
5200e5c31af7Sopenharmony_ci    indicates whether the implementation supports the new set of
5201e5c31af7Sopenharmony_ci    synchronization commands introduced in `apiext:VK_KHR_synchronization2`.
5202e5c31af7Sopenharmony_ci// end::VK_KHR_synchronization2-features[]
5203e5c31af7Sopenharmony_ci
5204e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSynchronization2Features
5205e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5206e5c31af7Sopenharmony_ci
5207e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSynchronization2Features.adoc[]
5208e5c31af7Sopenharmony_ci--
5209e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_synchronization2[]
5210e5c31af7Sopenharmony_ci
5211e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_input_dynamic_state[]
5212e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT',desc='Structure describing whether the dynamic vertex input state can be used',type='structs']
5213e5c31af7Sopenharmony_ci--
5214e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT structure is
5215e5c31af7Sopenharmony_cidefined as:
5216e5c31af7Sopenharmony_ci
5217e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.adoc[]
5218e5c31af7Sopenharmony_ci
5219e5c31af7Sopenharmony_ciThis structure describes the following feature:
5220e5c31af7Sopenharmony_ci
5221e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5222e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5223e5c31af7Sopenharmony_ci    structure.
5224e5c31af7Sopenharmony_ci  * [[features-vertexInputDynamicState]] pname:vertexInputDynamicState
5225e5c31af7Sopenharmony_ci    indicates that the implementation supports the following dynamic states:
5226e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_VERTEX_INPUT_EXT
5227e5c31af7Sopenharmony_ci
5228e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
5229e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5230e5c31af7Sopenharmony_ci
5231e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.adoc[]
5232e5c31af7Sopenharmony_ci--
5233e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_input_dynamic_state[]
5234e5c31af7Sopenharmony_ci
5235e5c31af7Sopenharmony_ciifdef::VK_EXT_primitives_generated_query[]
5236e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT',desc='Structure describing support for primitives generated query',type='structs']
5237e5c31af7Sopenharmony_ci--
5238e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT structure is
5239e5c31af7Sopenharmony_cidefined as:
5240e5c31af7Sopenharmony_ci
5241e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.adoc[]
5242e5c31af7Sopenharmony_ci
5243e5c31af7Sopenharmony_ciThis structure describes the following features:
5244e5c31af7Sopenharmony_ci
5245e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5246e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5247e5c31af7Sopenharmony_ci    structure.
5248e5c31af7Sopenharmony_ci  * [[features-primitivesGeneratedQuery]] pname:primitivesGeneratedQuery
5249e5c31af7Sopenharmony_ci    indicates whether the implementation supports the
5250e5c31af7Sopenharmony_ci    ename:VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query type.
5251e5c31af7Sopenharmony_ci  * [[features-primitivesGeneratedQueryWithRasterizerDiscard]]
5252e5c31af7Sopenharmony_ci    pname:primitivesGeneratedQueryWithRasterizerDiscard indicates whether
5253e5c31af7Sopenharmony_ci    the implementation supports this query when
5254e5c31af7Sopenharmony_ci    <<primsrast-discard,rasterization discard>> is enabled.
5255e5c31af7Sopenharmony_ci  * [[features-primitivesGeneratedQueryWithNonZeroStreams]]
5256e5c31af7Sopenharmony_ci    pname:primitivesGeneratedQueryWithNonZeroStreams indicates whether the
5257e5c31af7Sopenharmony_ci    implementation supports this query with a non-zero index in
5258e5c31af7Sopenharmony_ci    flink:vkCmdBeginQueryIndexedEXT.
5259e5c31af7Sopenharmony_ci
5260e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
5261e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5262e5c31af7Sopenharmony_ci
5263e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.adoc[]
5264e5c31af7Sopenharmony_ci--
5265e5c31af7Sopenharmony_ciendif::VK_EXT_primitives_generated_query[]
5266e5c31af7Sopenharmony_ci
5267e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
5268e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateFeaturesKHR',desc='Structure indicating support for variable rate fragment shading',type='structs']
5269e5c31af7Sopenharmony_ci--
5270e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateFeaturesKHR structure is
5271e5c31af7Sopenharmony_cidefined as:
5272e5c31af7Sopenharmony_ci
5273e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.adoc[]
5274e5c31af7Sopenharmony_ci
5275e5c31af7Sopenharmony_ciThis structure describes the following features:
5276e5c31af7Sopenharmony_ci
5277e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5278e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5279e5c31af7Sopenharmony_ci    structure.
5280e5c31af7Sopenharmony_ci  * [[features-pipelineFragmentShadingRate]]
5281e5c31af7Sopenharmony_ci    pname:pipelineFragmentShadingRate indicates that the implementation
5282e5c31af7Sopenharmony_ci    supports the <<primsrast-fragment-shading-rate-pipeline, pipeline
5283e5c31af7Sopenharmony_ci    fragment shading rate>>.
5284e5c31af7Sopenharmony_ci  * [[features-primitiveFragmentShadingRate]]
5285e5c31af7Sopenharmony_ci    pname:primitiveFragmentShadingRate indicates that the implementation
5286e5c31af7Sopenharmony_ci    supports the <<primsrast-fragment-shading-rate-primitive, primitive
5287e5c31af7Sopenharmony_ci    fragment shading rate>>.
5288e5c31af7Sopenharmony_ci  * [[features-attachmentFragmentShadingRate]]
5289e5c31af7Sopenharmony_ci    pname:attachmentFragmentShadingRate indicates that the implementation
5290e5c31af7Sopenharmony_ci    supports the <<primsrast-fragment-shading-rate-attachment, attachment
5291e5c31af7Sopenharmony_ci    fragment shading rate>>.
5292e5c31af7Sopenharmony_ci
5293e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateFeaturesKHR
5294e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5295e5c31af7Sopenharmony_ci
5296e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.adoc[]
5297e5c31af7Sopenharmony_ci--
5298e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
5299e5c31af7Sopenharmony_ci
5300e5c31af7Sopenharmony_ciifdef::VK_EXT_legacy_dithering[]
5301e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLegacyDitheringFeaturesEXT',desc='Structure describing support for legacy dithering',type='structs']
5302e5c31af7Sopenharmony_ci--
5303e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLegacyDitheringFeaturesEXT structure is defined
5304e5c31af7Sopenharmony_cias:
5305e5c31af7Sopenharmony_ci
5306e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLegacyDitheringFeaturesEXT.adoc[]
5307e5c31af7Sopenharmony_ci
5308e5c31af7Sopenharmony_ciThis structure describes the following feature:
5309e5c31af7Sopenharmony_ci
5310e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5311e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5312e5c31af7Sopenharmony_ci    structure.
5313e5c31af7Sopenharmony_ci  * [[features-legacyDithering]] pname:legacyDithering indicates whether the
5314e5c31af7Sopenharmony_ci    implementation supports <<interfaces-legacy-dithering, Legacy
5315e5c31af7Sopenharmony_ci    Dithering>>.
5316e5c31af7Sopenharmony_ci
5317e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLegacyDitheringFeaturesEXT
5318e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5319e5c31af7Sopenharmony_ci
5320e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLegacyDitheringFeaturesEXT.adoc[]
5321e5c31af7Sopenharmony_ci--
5322e5c31af7Sopenharmony_ciendif::VK_EXT_legacy_dithering[]
5323e5c31af7Sopenharmony_ci
5324e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shading_rate_enums[]
5325e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV',desc='Structure indicating support for fragment shading rate enums',type='structs']
5326e5c31af7Sopenharmony_ci--
5327e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV structure is
5328e5c31af7Sopenharmony_cidefined as:
5329e5c31af7Sopenharmony_ci
5330e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.adoc[]
5331e5c31af7Sopenharmony_ci
5332e5c31af7Sopenharmony_ciThis structure describes the following features:
5333e5c31af7Sopenharmony_ci
5334e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5335e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5336e5c31af7Sopenharmony_ci    structure.
5337e5c31af7Sopenharmony_ci  * [[features-fragmentShadingRateEnums]] pname:fragmentShadingRateEnums
5338e5c31af7Sopenharmony_ci    indicates that the implementation supports specifying fragment shading
5339e5c31af7Sopenharmony_ci    rates using the ename:VkFragmentShadingRateNV enumerated type.
5340e5c31af7Sopenharmony_ci  * [[features-supersampleFragmentShadingRates]]
5341e5c31af7Sopenharmony_ci    pname:supersampleFragmentShadingRates indicates that the implementation
5342e5c31af7Sopenharmony_ci    supports fragment shading rate enum values indicating more than one
5343e5c31af7Sopenharmony_ci    invocation per fragment.
5344e5c31af7Sopenharmony_ci  * [[features-noInvocationFragmentShadingRates]]
5345e5c31af7Sopenharmony_ci    pname:noInvocationFragmentShadingRates indicates that the implementation
5346e5c31af7Sopenharmony_ci    supports a fragment shading rate enum value indicating that no fragment
5347e5c31af7Sopenharmony_ci    shaders should be invoked when that shading rate is used.
5348e5c31af7Sopenharmony_ci
5349e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV
5350e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5351e5c31af7Sopenharmony_ci
5352e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.adoc[]
5353e5c31af7Sopenharmony_ci--
5354e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shading_rate_enums[]
5355e5c31af7Sopenharmony_ci
5356e5c31af7Sopenharmony_ci
5357e5c31af7Sopenharmony_ciifdef::VK_NV_inherited_viewport_scissor[]
5358e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInheritedViewportScissorFeaturesNV',desc='Structure describing the viewport scissor inheritance behavior for an implementation',type='structs']
5359e5c31af7Sopenharmony_ci--
5360e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInheritedViewportScissorFeaturesNV structure is
5361e5c31af7Sopenharmony_cidefined as:
5362e5c31af7Sopenharmony_ci
5363e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.adoc[]
5364e5c31af7Sopenharmony_ci
5365e5c31af7Sopenharmony_ciThis structure describes the following feature:
5366e5c31af7Sopenharmony_ci
5367e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5368e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5369e5c31af7Sopenharmony_ci    structure.
5370e5c31af7Sopenharmony_ci  * [[features-inheritedViewportScissor2D]] pname:inheritedViewportScissor2D
5371e5c31af7Sopenharmony_ci    indicates whether secondary command buffers can inherit most of the
5372e5c31af7Sopenharmony_ci    dynamic state affected by
5373e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[]
5374e5c31af7Sopenharmony_ci    ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
5375e5c31af7Sopenharmony_ci    ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
5376e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[]
5377e5c31af7Sopenharmony_ciifdef::VK_EXT_discard_rectangles[]
5378e5c31af7Sopenharmony_ci    ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
5379e5c31af7Sopenharmony_ci    ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT,
5380e5c31af7Sopenharmony_ci    ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT,
5381e5c31af7Sopenharmony_ciendif::VK_EXT_discard_rectangles[]
5382e5c31af7Sopenharmony_ci    ename:VK_DYNAMIC_STATE_VIEWPORT or ename:VK_DYNAMIC_STATE_SCISSOR, from
5383e5c31af7Sopenharmony_ci    a primary command buffer.
5384e5c31af7Sopenharmony_ci
5385e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInheritedViewportScissorFeaturesNV
5386e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5387e5c31af7Sopenharmony_ci
5388e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.adoc[]
5389e5c31af7Sopenharmony_ci--
5390e5c31af7Sopenharmony_ciendif::VK_NV_inherited_viewport_scissor[]
5391e5c31af7Sopenharmony_ci
5392e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_protected_access[]
5393e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineProtectedAccessFeaturesEXT',desc='Structure describing support for specifying protected access on individual pipelines',type='structs']
5394e5c31af7Sopenharmony_ci--
5395e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineProtectedAccessFeaturesEXT structure is
5396e5c31af7Sopenharmony_cidefined as:
5397e5c31af7Sopenharmony_ci
5398e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineProtectedAccessFeaturesEXT.adoc[]
5399e5c31af7Sopenharmony_ci
5400e5c31af7Sopenharmony_ciThis structure describes the following feature:
5401e5c31af7Sopenharmony_ci
5402e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5403e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5404e5c31af7Sopenharmony_ci    structure.
5405e5c31af7Sopenharmony_ci  * [[features-pipelineProtectedAccess]] pname:pipelineProtectedAccess
5406e5c31af7Sopenharmony_ci    indicates whether the implementation supports specifying protected
5407e5c31af7Sopenharmony_ci    access on individual pipelines.
5408e5c31af7Sopenharmony_ci
5409e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineProtectedAccessFeaturesEXT
5410e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5411e5c31af7Sopenharmony_ci
5412e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineProtectedAccessFeaturesEXT.adoc[]
5413e5c31af7Sopenharmony_ci--
5414e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_protected_access[]
5415e5c31af7Sopenharmony_ci
5416e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_2plane_444_formats[]
5417e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',desc='Structure describing whether the implementation supports additional 2-plane 444 {YCbCr} formats',type='structs']
5418e5c31af7Sopenharmony_ci--
5419e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT structure is
5420e5c31af7Sopenharmony_cidefined as:
5421e5c31af7Sopenharmony_ci
5422e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.adoc[]
5423e5c31af7Sopenharmony_ci
5424e5c31af7Sopenharmony_ciThis structure describes the following feature:
5425e5c31af7Sopenharmony_ci
5426e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5427e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5428e5c31af7Sopenharmony_ci    structure.
5429e5c31af7Sopenharmony_ci  * [[features-ycbcr2plane444Formats]] pname:ycbcr2plane444Formats indicates
5430e5c31af7Sopenharmony_ci    that the implementation supports the following 2-plane 444 {YCbCr}
5431e5c31af7Sopenharmony_ci    formats:
5432e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_G8_B8R8_2PLANE_444_UNORM
5433e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16
5434e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16
5435e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_G16_B16R16_2PLANE_444_UNORM
5436e5c31af7Sopenharmony_ci
5437e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
5438e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5439e5c31af7Sopenharmony_ci
5440e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.adoc[]
5441e5c31af7Sopenharmony_ci
5442e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[]
5443e5c31af7Sopenharmony_ci[NOTE]
5444e5c31af7Sopenharmony_ci.Note
5445e5c31af7Sopenharmony_ci====
5446e5c31af7Sopenharmony_ciAlthough the formats defined by the `apiext:VK_EXT_ycbcr_2plane_444_formats`
5447e5c31af7Sopenharmony_ciwere promoted to Vulkan 1.3 as optional formats, the
5448e5c31af7Sopenharmony_cislink:VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT structure was not
5449e5c31af7Sopenharmony_cipromoted to Vulkan 1.3.
5450e5c31af7Sopenharmony_ci====
5451e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[]
5452e5c31af7Sopenharmony_ci--
5453e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_2plane_444_formats[]
5454e5c31af7Sopenharmony_ci
5455e5c31af7Sopenharmony_ciifdef::VK_EXT_color_write_enable[]
5456e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceColorWriteEnableFeaturesEXT',desc='Structure describing whether writes to color attachments can be enabled and disabled dynamically',type='structs']
5457e5c31af7Sopenharmony_ci--
5458e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceColorWriteEnableFeaturesEXT structure is defined
5459e5c31af7Sopenharmony_cias:
5460e5c31af7Sopenharmony_ci
5461e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceColorWriteEnableFeaturesEXT.adoc[]
5462e5c31af7Sopenharmony_ci
5463e5c31af7Sopenharmony_ciThis structure describes the following feature:
5464e5c31af7Sopenharmony_ci
5465e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5466e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5467e5c31af7Sopenharmony_ci    structure.
5468e5c31af7Sopenharmony_ci  * [[features-colorWriteEnable]] pname:colorWriteEnable indicates that the
5469e5c31af7Sopenharmony_ci    implementation supports the dynamic state
5470e5c31af7Sopenharmony_ci    ename:VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT.
5471e5c31af7Sopenharmony_ci
5472e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceColorWriteEnableFeaturesEXT
5473e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5474e5c31af7Sopenharmony_ci
5475e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceColorWriteEnableFeaturesEXT.adoc[]
5476e5c31af7Sopenharmony_ci--
5477e5c31af7Sopenharmony_ciendif::VK_EXT_color_write_enable[]
5478e5c31af7Sopenharmony_ci
5479e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_properties[]
5480e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelinePropertiesFeaturesEXT',desc='Structure describing what pipeline properties are supported',type='structs']
5481e5c31af7Sopenharmony_ci--
5482e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelinePropertiesFeaturesEXT structure is defined
5483e5c31af7Sopenharmony_cias:
5484e5c31af7Sopenharmony_ci
5485e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelinePropertiesFeaturesEXT.adoc[]
5486e5c31af7Sopenharmony_ci
5487e5c31af7Sopenharmony_ciThis structure describes the following feature:
5488e5c31af7Sopenharmony_ci
5489e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5490e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5491e5c31af7Sopenharmony_ci    structure.
5492e5c31af7Sopenharmony_ci  * [[features-pipelinePropertiesIdentifier]]
5493e5c31af7Sopenharmony_ci    pname:pipelinePropertiesIdentifier indicates that the implementation
5494e5c31af7Sopenharmony_ci    supports querying a unique pipeline identifier.
5495e5c31af7Sopenharmony_ci
5496e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelinePropertiesFeaturesEXT
5497e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5498e5c31af7Sopenharmony_ci
5499e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelinePropertiesFeaturesEXT.adoc[]
5500e5c31af7Sopenharmony_ci--
5501e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_properties[]
5502e5c31af7Sopenharmony_ci
5503e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[]
5504e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProvokingVertexFeaturesEXT',desc='Structure describing the provoking vertex features that can be supported by an implementation',type='structs']
5505e5c31af7Sopenharmony_ci--
5506e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProvokingVertexFeaturesEXT structure is defined
5507e5c31af7Sopenharmony_cias:
5508e5c31af7Sopenharmony_ci
5509e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProvokingVertexFeaturesEXT.adoc[]
5510e5c31af7Sopenharmony_ci
5511e5c31af7Sopenharmony_ciThis structure describes the following features:
5512e5c31af7Sopenharmony_ci
5513e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5514e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5515e5c31af7Sopenharmony_ci    structure.
5516e5c31af7Sopenharmony_ci  * [[features-provokingVertexLast]] pname:provokingVertexLast indicates
5517e5c31af7Sopenharmony_ci    whether the implementation supports the
5518e5c31af7Sopenharmony_ci    ename:VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
5519e5c31af7Sopenharmony_ci    <<VkProvokingVertexModeEXT,provoking vertex mode>> for flat shading.
5520e5c31af7Sopenharmony_ci  * [[features-transformFeedbackPreservesProvokingVertex]]
5521e5c31af7Sopenharmony_ci    pname:transformFeedbackPreservesProvokingVertex indicates that the order
5522e5c31af7Sopenharmony_ci    of vertices within each primitive written by transform feedback will
5523e5c31af7Sopenharmony_ci    preserve the provoking vertex.
5524e5c31af7Sopenharmony_ci    This does not apply to triangle fan primitives when
5525e5c31af7Sopenharmony_ci    <<limits-transformFeedbackPreservesTriangleFanProvokingVertex,
5526e5c31af7Sopenharmony_ci    pname:transformFeedbackPreservesTriangleFanProvokingVertex>> is
5527e5c31af7Sopenharmony_ci    ename:VK_FALSE.
5528e5c31af7Sopenharmony_ci    pname:transformFeedbackPreservesProvokingVertex must: be ename:VK_FALSE
5529e5c31af7Sopenharmony_ci    when the `apiext:VK_EXT_transform_feedback` extension is not supported.
5530e5c31af7Sopenharmony_ci
5531e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProvokingVertexFeaturesEXT
5532e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5533e5c31af7Sopenharmony_ci
5534e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
5535e5c31af7Sopenharmony_ciWhen sname:VkPhysicalDeviceProvokingVertexFeaturesEXT is in the pname:pNext
5536e5c31af7Sopenharmony_cichain of slink:VkDeviceCreateInfo but the <<features-transformFeedback,
5537e5c31af7Sopenharmony_cipname:transformFeedback>> feature is not enabled, the value of
5538e5c31af7Sopenharmony_cipname:transformFeedbackPreservesProvokingVertex is ignored.
5539e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
5540e5c31af7Sopenharmony_ci
5541e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProvokingVertexFeaturesEXT.adoc[]
5542e5c31af7Sopenharmony_ci--
5543e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[]
5544e5c31af7Sopenharmony_ci
5545e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_buffer[]
5546e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorBufferFeaturesEXT',desc='Structure describing the descriptor buffer features that can be supported by an implementation',type='structs']
5547e5c31af7Sopenharmony_ci--
5548e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorBufferFeaturesEXT structure is defined
5549e5c31af7Sopenharmony_cias:
5550e5c31af7Sopenharmony_ci
5551e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorBufferFeaturesEXT.adoc[]
5552e5c31af7Sopenharmony_ci
5553e5c31af7Sopenharmony_ciThis structure describes the following feature:
5554e5c31af7Sopenharmony_ci
5555e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5556e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5557e5c31af7Sopenharmony_ci    structure.
5558e5c31af7Sopenharmony_ci  * [[features-descriptorBuffer]] pname:descriptorBuffer indicates that the
5559e5c31af7Sopenharmony_ci    implementation supports putting shader-accessible descriptors directly
5560e5c31af7Sopenharmony_ci    in memory.
5561e5c31af7Sopenharmony_ci  * [[features-descriptorBufferCaptureReplay]]
5562e5c31af7Sopenharmony_ci    pname:descriptorBufferCaptureReplay indicates that the implementation
5563e5c31af7Sopenharmony_ci    supports capture and replay when using descriptor buffers.
5564e5c31af7Sopenharmony_ci    If this is ename:VK_TRUE, all resources created with
5565e5c31af7Sopenharmony_ci    ename:VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
5566e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
5567e5c31af7Sopenharmony_ci    ename:VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT,
5568e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, or
5569e5c31af7Sopenharmony_ci    ename:VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
5570e5c31af7Sopenharmony_ci    must: be created before resources of the same types without those flags.
5571e5c31af7Sopenharmony_ci  * [[features-descriptorBufferImageLayoutIgnored]]
5572e5c31af7Sopenharmony_ci    pname:descriptorBufferImageLayoutIgnored indicates that the
5573e5c31af7Sopenharmony_ci    implementation will ignore pname:imageLayout in
5574e5c31af7Sopenharmony_ci    sname:VkDescriptorImageInfo when calling flink:vkGetDescriptorEXT.
5575e5c31af7Sopenharmony_ci  * [[features-descriptorBufferPushDescriptors]]
5576e5c31af7Sopenharmony_ci    pname:descriptorBufferPushDescriptors indicates that the implementation
5577e5c31af7Sopenharmony_ci    supports using push descriptors with descriptor buffers.
5578e5c31af7Sopenharmony_ci
5579e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorBufferFeaturesEXT
5580e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5581e5c31af7Sopenharmony_ci
5582e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorBufferFeaturesEXT.adoc[]
5583e5c31af7Sopenharmony_ci--
5584e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_buffer[]
5585e5c31af7Sopenharmony_ci
5586e5c31af7Sopenharmony_ciifdef::VK_EXT_pageable_device_local_memory[]
5587e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',desc='Structure describing whether the implementation supports pageable device-local memory',type='structs']
5588e5c31af7Sopenharmony_ci--
5589e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT structure is
5590e5c31af7Sopenharmony_cidefined as:
5591e5c31af7Sopenharmony_ci
5592e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.adoc[]
5593e5c31af7Sopenharmony_ci
5594e5c31af7Sopenharmony_ciThis structure describes the following feature:
5595e5c31af7Sopenharmony_ci
5596e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5597e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5598e5c31af7Sopenharmony_ci    structure.
5599e5c31af7Sopenharmony_ci  * [[features-pageableDeviceLocalMemory]] pname:pageableDeviceLocalMemory
5600e5c31af7Sopenharmony_ci    indicates that the implementation supports pageable device-local memory
5601e5c31af7Sopenharmony_ci    and may: transparently move device-local memory allocations to
5602e5c31af7Sopenharmony_ci    host-local memory to better share device-local memory with other
5603e5c31af7Sopenharmony_ci    applications.
5604e5c31af7Sopenharmony_ci
5605e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
5606e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5607e5c31af7Sopenharmony_ci
5608e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.adoc[]
5609e5c31af7Sopenharmony_ci--
5610e5c31af7Sopenharmony_ciendif::VK_EXT_pageable_device_local_memory[]
5611e5c31af7Sopenharmony_ci
5612e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
5613e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiDrawFeaturesEXT',desc='Structure describing whether the implementation supports multi draw functionality',type='structs']
5614e5c31af7Sopenharmony_ci--
5615e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiDrawFeaturesEXT structure is defined as:
5616e5c31af7Sopenharmony_ci
5617e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiDrawFeaturesEXT.adoc[]
5618e5c31af7Sopenharmony_ci
5619e5c31af7Sopenharmony_ciThis structure describes the following features:
5620e5c31af7Sopenharmony_ci
5621e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5622e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5623e5c31af7Sopenharmony_ci    structure.
5624e5c31af7Sopenharmony_ci  * [[features-multiDraw]] pname:multiDraw indicates that the implementation
5625e5c31af7Sopenharmony_ci    supports flink:vkCmdDrawMultiEXT and flink:vkCmdDrawMultiIndexedEXT.
5626e5c31af7Sopenharmony_ci
5627e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiDrawFeaturesEXT
5628e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5629e5c31af7Sopenharmony_ci
5630e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiDrawFeaturesEXT.adoc[]
5631e5c31af7Sopenharmony_ci--
5632e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
5633e5c31af7Sopenharmony_ci
5634e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_motion_blur[]
5635e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingMotionBlurFeaturesNV',desc='Structure describing the ray tracing motion blur features that can be supported by an implementation',type='structs']
5636e5c31af7Sopenharmony_ci--
5637e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV structure is
5638e5c31af7Sopenharmony_cidefined as:
5639e5c31af7Sopenharmony_ci
5640e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.adoc[]
5641e5c31af7Sopenharmony_ci
5642e5c31af7Sopenharmony_ciThis structure describes the following features:
5643e5c31af7Sopenharmony_ci
5644e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5645e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5646e5c31af7Sopenharmony_ci    structure.
5647e5c31af7Sopenharmony_ci  * [[features-rayTracingMotionBlur]] pname:rayTracingMotionBlur indicates
5648e5c31af7Sopenharmony_ci    whether the implementation supports the motion blur feature.
5649e5c31af7Sopenharmony_ci  * [[features-rayTracingMotionBlurPipelineTraceRaysIndirect]]
5650e5c31af7Sopenharmony_ci    pname:rayTracingMotionBlurPipelineTraceRaysIndirect indicates whether
5651e5c31af7Sopenharmony_ci    the implementation supports indirect ray tracing commands with the
5652e5c31af7Sopenharmony_ci    motion blur feature enabled.
5653e5c31af7Sopenharmony_ci
5654e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingMotionBlurFeaturesNV
5655e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5656e5c31af7Sopenharmony_ci
5657e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.adoc[]
5658e5c31af7Sopenharmony_ci--
5659e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing_motion_blur[]
5660e5c31af7Sopenharmony_ci
5661e5c31af7Sopenharmony_ciifdef::VK_EXT_opacity_micromap[]
5662e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceOpacityMicromapFeaturesEXT',desc='Structure describing the ray tracing opacity micromap features that can be supported by an implementation',type='structs']
5663e5c31af7Sopenharmony_ci--
5664e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceOpacityMicromapFeaturesEXT structure is defined
5665e5c31af7Sopenharmony_cias:
5666e5c31af7Sopenharmony_ci
5667e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceOpacityMicromapFeaturesEXT.adoc[]
5668e5c31af7Sopenharmony_ci
5669e5c31af7Sopenharmony_ciThis structure describes the following feature:
5670e5c31af7Sopenharmony_ci
5671e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5672e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5673e5c31af7Sopenharmony_ci    structure.
5674e5c31af7Sopenharmony_ci  * [[features-micromap]] pname:micromap indicates whether the
5675e5c31af7Sopenharmony_ci    implementation supports the micromap array feature.
5676e5c31af7Sopenharmony_ci  * [[features-micromapCaptureReplay]] pname:micromapCaptureReplay indicates
5677e5c31af7Sopenharmony_ci    whether the implementation supports capture and replay of addresses for
5678e5c31af7Sopenharmony_ci    micromap arrays.
5679e5c31af7Sopenharmony_ci  * [[features-micromapHostCommands]] pname:micromapHostCommands indicates
5680e5c31af7Sopenharmony_ci    whether the implementation supports host side micromap array commands.
5681e5c31af7Sopenharmony_ci
5682e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceOpacityMicromapFeaturesEXT
5683e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5684e5c31af7Sopenharmony_ci
5685e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceOpacityMicromapFeaturesEXT.adoc[]
5686e5c31af7Sopenharmony_ci--
5687e5c31af7Sopenharmony_ciendif::VK_EXT_opacity_micromap[]
5688e5c31af7Sopenharmony_ci
5689e5c31af7Sopenharmony_ciifdef::VK_NV_displacement_micromap[]
5690e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDisplacementMicromapFeaturesNV',desc='Structure describing the ray tracing displacement micromap features that can be supported by an implementation',type='structs']
5691e5c31af7Sopenharmony_ci--
5692e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDisplacementMicromapFeaturesNV structure is
5693e5c31af7Sopenharmony_cidefined as:
5694e5c31af7Sopenharmony_ci
5695e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDisplacementMicromapFeaturesNV.adoc[]
5696e5c31af7Sopenharmony_ci
5697e5c31af7Sopenharmony_ciThis structure describes the following feature:
5698e5c31af7Sopenharmony_ci
5699e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5700e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5701e5c31af7Sopenharmony_ci    structure.
5702e5c31af7Sopenharmony_ci  * [[features-displacementMicromap]] pname:displacementMicromap indicates
5703e5c31af7Sopenharmony_ci    whether the implementation supports the displacement micromap feature.
5704e5c31af7Sopenharmony_ci
5705e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDisplacementMicromapFeaturesNV
5706e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5707e5c31af7Sopenharmony_ci
5708e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDisplacementMicromapFeaturesNV.adoc[]
5709e5c31af7Sopenharmony_ci--
5710e5c31af7Sopenharmony_ciendif::VK_NV_displacement_micromap[]
5711e5c31af7Sopenharmony_ci
5712e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_subpass_shading[]
5713e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubpassShadingFeaturesHUAWEI',desc='Structure describing whether subpass shading is enabled',type='structs']
5714e5c31af7Sopenharmony_ci--
5715e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubpassShadingFeaturesHUAWEI structure is defined
5716e5c31af7Sopenharmony_cias:
5717e5c31af7Sopenharmony_ci
5718e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.adoc[]
5719e5c31af7Sopenharmony_ci
5720e5c31af7Sopenharmony_ciThis structure describes the following feature:
5721e5c31af7Sopenharmony_ci
5722e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5723e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5724e5c31af7Sopenharmony_ci    structure.
5725e5c31af7Sopenharmony_ci  * [[features-subpassShading]] pname:subpassShading specifies whether
5726e5c31af7Sopenharmony_ci    subpass shading is supported.
5727e5c31af7Sopenharmony_ci
5728e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubpassShadingFeaturesHUAWEI
5729e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5730e5c31af7Sopenharmony_ci
5731e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.adoc[]
5732e5c31af7Sopenharmony_ci--
5733e5c31af7Sopenharmony_ciendif::VK_HUAWEI_subpass_shading[]
5734e5c31af7Sopenharmony_ci
5735e5c31af7Sopenharmony_ciifdef::VK_NV_external_memory_rdma[]
5736e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemoryRDMAFeaturesNV',desc='Structure describing the external memory RDMA features supported by the implementation',type='structs']
5737e5c31af7Sopenharmony_ci--
5738e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemoryRDMAFeaturesNV structure is defined
5739e5c31af7Sopenharmony_cias:
5740e5c31af7Sopenharmony_ci
5741e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.adoc[]
5742e5c31af7Sopenharmony_ci
5743e5c31af7Sopenharmony_ciThis structure describes the following feature:
5744e5c31af7Sopenharmony_ci
5745e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5746e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5747e5c31af7Sopenharmony_ci    structure.
5748e5c31af7Sopenharmony_ci  * [[features-externalMemoryRDMA]] pname:externalMemoryRDMA indicates
5749e5c31af7Sopenharmony_ci    whether the implementation has support for the
5750e5c31af7Sopenharmony_ci    ename:VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV memory property and the
5751e5c31af7Sopenharmony_ci    ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV external memory
5752e5c31af7Sopenharmony_ci    handle type.
5753e5c31af7Sopenharmony_ci
5754e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemoryRDMAFeaturesNV
5755e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5756e5c31af7Sopenharmony_ci
5757e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.adoc[]
5758e5c31af7Sopenharmony_ci--
5759e5c31af7Sopenharmony_ciendif::VK_NV_external_memory_rdma[]
5760e5c31af7Sopenharmony_ci
5761e5c31af7Sopenharmony_ciifdef::VK_KHR_present_id[]
5762e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentIdFeaturesKHR',desc='Structure indicating support for present id',type='structs']
5763e5c31af7Sopenharmony_ci--
5764e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentIdFeaturesKHR structure is defined as:
5765e5c31af7Sopenharmony_ci
5766e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentIdFeaturesKHR.adoc[]
5767e5c31af7Sopenharmony_ci
5768e5c31af7Sopenharmony_ciThis structure describes the following feature:
5769e5c31af7Sopenharmony_ci
5770e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5771e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5772e5c31af7Sopenharmony_ci    structure.
5773e5c31af7Sopenharmony_ci  * [[features-presentId]] pname:presentId indicates that the implementation
5774e5c31af7Sopenharmony_ci    supports specifying present ID values in the sname:VkPresentIdKHR
5775e5c31af7Sopenharmony_ci    extension to the sname:VkPresentInfoKHR struct.
5776e5c31af7Sopenharmony_ci
5777e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentIdFeaturesKHR
5778e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5779e5c31af7Sopenharmony_ci
5780e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentIdFeaturesKHR.adoc[]
5781e5c31af7Sopenharmony_ci--
5782e5c31af7Sopenharmony_ciendif::VK_KHR_present_id[]
5783e5c31af7Sopenharmony_ci
5784e5c31af7Sopenharmony_ciifdef::VK_KHR_present_wait[]
5785e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentWaitFeaturesKHR',desc='Structure indicating support for present wait',type='structs']
5786e5c31af7Sopenharmony_ci--
5787e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentWaitFeaturesKHR structure is defined as:
5788e5c31af7Sopenharmony_ci
5789e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentWaitFeaturesKHR.adoc[]
5790e5c31af7Sopenharmony_ci
5791e5c31af7Sopenharmony_ciThis structure describes the following feature:
5792e5c31af7Sopenharmony_ci
5793e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5794e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5795e5c31af7Sopenharmony_ci    structure.
5796e5c31af7Sopenharmony_ci  * [[features-presentWait]] pname:presentWait indicates that the
5797e5c31af7Sopenharmony_ci    implementation supports fname:vkWaitForPresentKHR.
5798e5c31af7Sopenharmony_ci
5799e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentWaitFeaturesKHR
5800e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5801e5c31af7Sopenharmony_ci
5802e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentWaitFeaturesKHR.adoc[]
5803e5c31af7Sopenharmony_ci--
5804e5c31af7Sopenharmony_ciendif::VK_KHR_present_wait[]
5805e5c31af7Sopenharmony_ci
5806e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[]
5807e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceHostImageCopyFeaturesEXT',desc='Structure indicating support for copies to or from images from host memory',type='structs']
5808e5c31af7Sopenharmony_ci--
5809e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceHostImageCopyFeaturesEXT structure is defined as:
5810e5c31af7Sopenharmony_ci
5811e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostImageCopyFeaturesEXT.adoc[]
5812e5c31af7Sopenharmony_ci
5813e5c31af7Sopenharmony_ciThis structure describes the following feature:
5814e5c31af7Sopenharmony_ci
5815e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5816e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5817e5c31af7Sopenharmony_ci    structure.
5818e5c31af7Sopenharmony_ci  * [[features-hostImageCopy]] pname:hostImageCopy indicates that the
5819e5c31af7Sopenharmony_ci    implementation supports copying from host memory to images using the
5820e5c31af7Sopenharmony_ci    flink:vkCopyMemoryToImageEXT command, copying from images to host memory
5821e5c31af7Sopenharmony_ci    using the flink:vkCopyImageToMemoryEXT command, and copying between
5822e5c31af7Sopenharmony_ci    images using the flink:vkCopyImageToImageEXT command.
5823e5c31af7Sopenharmony_ci
5824e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceHostImageCopyFeaturesEXT
5825e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5826e5c31af7Sopenharmony_ci
5827e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceHostImageCopyFeaturesEXT.adoc[]
5828e5c31af7Sopenharmony_ci--
5829e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[]
5830e5c31af7Sopenharmony_ci
5831e5c31af7Sopenharmony_ciifdef::VK_NV_present_barrier[]
5832e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentBarrierFeaturesNV',desc='Structure indicating support for VK_NV_present_barrier extension',type='structs']
5833e5c31af7Sopenharmony_ci--
5834e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentBarrierFeaturesNV structure is defined as:
5835e5c31af7Sopenharmony_ci
5836e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentBarrierFeaturesNV.adoc[]
5837e5c31af7Sopenharmony_ci
5838e5c31af7Sopenharmony_ciThis structure describes the following feature:
5839e5c31af7Sopenharmony_ci
5840e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5841e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5842e5c31af7Sopenharmony_ci    structure.
5843e5c31af7Sopenharmony_ci  * [[features-presentBarrier]] pname:presentBarrier indicates that the
5844e5c31af7Sopenharmony_ci    implementation supports the present barrier feature.
5845e5c31af7Sopenharmony_ci
5846e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentBarrierFeaturesNV
5847e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5848e5c31af7Sopenharmony_ci
5849e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentBarrierFeaturesNV.adoc[]
5850e5c31af7Sopenharmony_ci--
5851e5c31af7Sopenharmony_ciendif::VK_NV_present_barrier[]
5852e5c31af7Sopenharmony_ci
5853e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_shader_integer_dot_product[]
5854e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderIntegerDotProductFeatures',desc='Structure describing integer dot product features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR']
5855e5c31af7Sopenharmony_ci--
5856e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderIntegerDotProductFeatures structure is
5857e5c31af7Sopenharmony_cidefined as:
5858e5c31af7Sopenharmony_ci
5859e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerDotProductFeatures.adoc[]
5860e5c31af7Sopenharmony_ci
5861e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_integer_dot_product[]
5862e5c31af7Sopenharmony_cior the equivalent
5863e5c31af7Sopenharmony_ci
5864e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR.adoc[]
5865e5c31af7Sopenharmony_ciendif::VK_KHR_shader_integer_dot_product[]
5866e5c31af7Sopenharmony_ci
5867e5c31af7Sopenharmony_ciThis structure describes the following feature:
5868e5c31af7Sopenharmony_ci
5869e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5870e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5871e5c31af7Sopenharmony_ci    structure.
5872e5c31af7Sopenharmony_ci
5873e5c31af7Sopenharmony_ci// Must have preceding whitespace
5874e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
5875e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
5876e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_integer_dot_product-features[]
5877e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderIntegerDotProduct]]
5878e5c31af7Sopenharmony_ci    pname:shaderIntegerDotProduct specifies whether shader modules can:
5879e5c31af7Sopenharmony_ci    declare the code:DotProductInputAllKHR, code:DotProductInput4x8BitKHR,
5880e5c31af7Sopenharmony_ci    code:DotProductInput4x8BitPackedKHR and code:DotProductKHR capabilities.
5881e5c31af7Sopenharmony_ci// end::VK_KHR_shader_integer_dot_product-features[]
5882e5c31af7Sopenharmony_ci
5883e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderIntegerDotProductFeatures
5884e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5885e5c31af7Sopenharmony_ci
5886e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerDotProductFeatures.adoc[]
5887e5c31af7Sopenharmony_ci--
5888e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_shader_integer_dot_product[]
5889e5c31af7Sopenharmony_ci
5890e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[]
5891e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance4Features',desc='Structure describing whether the implementation supports maintenance4 functionality',type='structs',alias='VkPhysicalDeviceMaintenance4FeaturesKHR']
5892e5c31af7Sopenharmony_ci--
5893e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance4Features structure is defined as:
5894e5c31af7Sopenharmony_ci
5895e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance4Features.adoc[]
5896e5c31af7Sopenharmony_ci
5897e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[]
5898e5c31af7Sopenharmony_cior the equivalent
5899e5c31af7Sopenharmony_ci
5900e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance4FeaturesKHR.adoc[]
5901e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance4[]
5902e5c31af7Sopenharmony_ci
5903e5c31af7Sopenharmony_ciThis structure describes the following feature:
5904e5c31af7Sopenharmony_ci
5905e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5906e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5907e5c31af7Sopenharmony_ci    structure.
5908e5c31af7Sopenharmony_ci
5909e5c31af7Sopenharmony_ci// Must have preceding whitespace
5910e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
5911e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
5912e5c31af7Sopenharmony_ci// tag::VK_KHR_maintenance4-features[]
5913e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-maintenance4]] pname:maintenance4 indicates
5914e5c31af7Sopenharmony_ci    that the implementation supports the following:
5915e5c31af7Sopenharmony_ci  ** The application may: destroy a slink:VkPipelineLayout object
5916e5c31af7Sopenharmony_ci     immediately after using it to create another object.
5917e5c31af7Sopenharmony_ci  ** code:LocalSizeId can: be used as an alternative to code:LocalSize to
5918e5c31af7Sopenharmony_ci     specify the local workgroup size with specialization constants.
5919e5c31af7Sopenharmony_ci  ** Images created with identical creation parameters will always have the
5920e5c31af7Sopenharmony_ci     same alignment requirements.
5921e5c31af7Sopenharmony_ci  ** The size memory requirement of a buffer or image is never greater than
5922e5c31af7Sopenharmony_ci     that of another buffer or image created with a greater or equal size.
5923e5c31af7Sopenharmony_ci  ** Push constants do not have to be initialized before they are
5924e5c31af7Sopenharmony_ci     dynamically accessed.
5925e5c31af7Sopenharmony_ci  ** The interface matching rules allow a larger output vector to match with
5926e5c31af7Sopenharmony_ci     a smaller input vector, with additional values being discarded.
5927e5c31af7Sopenharmony_ci// end::VK_KHR_maintenance4-features[]
5928e5c31af7Sopenharmony_ci
5929e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance4Features
5930e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5931e5c31af7Sopenharmony_ci
5932e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance4Features.adoc[]
5933e5c31af7Sopenharmony_ci--
5934e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_maintenance4[]
5935e5c31af7Sopenharmony_ci
5936e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[]
5937e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance5FeaturesKHR',desc='Structure describing whether the implementation supports maintenance5 functionality',type='structs',alias='VkPhysicalDeviceMaintenance5FeaturesKHR']
5938e5c31af7Sopenharmony_ci--
5939e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance5FeaturesKHR structure is defined as:
5940e5c31af7Sopenharmony_ci
5941e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance5FeaturesKHR.adoc[]
5942e5c31af7Sopenharmony_ci
5943e5c31af7Sopenharmony_ciThis structure describes the following feature:
5944e5c31af7Sopenharmony_ci
5945e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5946e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5947e5c31af7Sopenharmony_ci    structure.
5948e5c31af7Sopenharmony_ci  * [[features-maintenance5]] pname:maintenance5 indicates that the
5949e5c31af7Sopenharmony_ci    implementation supports the following:
5950e5c31af7Sopenharmony_ci  ** The ability to expose support for the optional format
5951e5c31af7Sopenharmony_ci     ename:VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR.
5952e5c31af7Sopenharmony_ci  ** The ability to expose support for the optional format
5953e5c31af7Sopenharmony_ci     ename:VK_FORMAT_A8_UNORM_KHR.
5954e5c31af7Sopenharmony_ci  ** A property to indicate that multisample coverage operations are
5955e5c31af7Sopenharmony_ci     performed after sample counting in EarlyFragmentTests mode.
5956e5c31af7Sopenharmony_ci  ** Creating a sname:VkBufferView with a subset of the associated
5957e5c31af7Sopenharmony_ci     sname:VkBuffer usage using slink:VkBufferUsageFlags2CreateInfoKHR.
5958e5c31af7Sopenharmony_ci  ** A new function flink:vkCmdBindIndexBuffer2KHR, allowing a range of
5959e5c31af7Sopenharmony_ci     memory to be bound as an index buffer.
5960e5c31af7Sopenharmony_ci  ** flink:vkGetDeviceProcAddr will return `NULL` for function pointers of
5961e5c31af7Sopenharmony_ci     core functions for versions higher than the version requested by the
5962e5c31af7Sopenharmony_ci     application.
5963e5c31af7Sopenharmony_ci  ** flink:vkCmdBindVertexBuffers2 supports using ename:VK_WHOLE_SIZE in the
5964e5c31af7Sopenharmony_ci     pname:pSizes parameter.
5965e5c31af7Sopenharmony_ci  ** If code:PointSize is not written, a default value of `1.0` is used for
5966e5c31af7Sopenharmony_ci     the size of points.
5967e5c31af7Sopenharmony_ci  ** slink:VkShaderModuleCreateInfo can: be added as a chained structure to
5968e5c31af7Sopenharmony_ci     pipeline creation via slink:VkPipelineShaderStageCreateInfo, rather
5969e5c31af7Sopenharmony_ci     than having to create a shader module.
5970e5c31af7Sopenharmony_ci  ** A function flink:vkGetRenderingAreaGranularityKHR to query the optimal
5971e5c31af7Sopenharmony_ci     render area for a dynamic rendering instance.
5972e5c31af7Sopenharmony_ci  ** A property to indicate that depth/stencil texturing operations with
5973e5c31af7Sopenharmony_ci     ename:VK_COMPONENT_SWIZZLE_ONE have defined behavior.
5974e5c31af7Sopenharmony_ci  ** flink:vkGetDeviceImageSubresourceLayoutKHR allows an application to
5975e5c31af7Sopenharmony_ci     perform a flink:vkGetImageSubresourceLayout query without having to
5976e5c31af7Sopenharmony_ci     create an image.
5977e5c31af7Sopenharmony_ci  ** ename:VK_REMAINING_ARRAY_LAYERS as the pname:layerCount member of
5978e5c31af7Sopenharmony_ci     slink:VkImageSubresourceLayers.
5979e5c31af7Sopenharmony_ci  ** A property to indicate whether code:PointSize controls the final
5980e5c31af7Sopenharmony_ci     rasterization of polygons if <<primsrast-polygonmode, polygon mode>> is
5981e5c31af7Sopenharmony_ci     ename:VK_POLYGON_MODE_POINT.
5982e5c31af7Sopenharmony_ci  ** Two properties to indicate the non-strict line rasterization algorithm
5983e5c31af7Sopenharmony_ci     used.
5984e5c31af7Sopenharmony_ci  ** Two new flags words elink:VkPipelineCreateFlagBits2KHR and
5985e5c31af7Sopenharmony_ci     elink:VkBufferUsageFlagBits2KHR.
5986e5c31af7Sopenharmony_ci  ** Physical-device-level functions can: now be called with any value in
5987e5c31af7Sopenharmony_ci     the valid range for a type beyond the defined enumerants, such that
5988e5c31af7Sopenharmony_ci     applications can avoid checking individual features, extensions, or
5989e5c31af7Sopenharmony_ci     versions before querying supported properties of a particular
5990e5c31af7Sopenharmony_ci     enumerant.
5991e5c31af7Sopenharmony_ci  ** Copies between images of any type are allowed, with 1D images treated
5992e5c31af7Sopenharmony_ci     as 2D images with a height of `1`.
5993e5c31af7Sopenharmony_ci
5994e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance5FeaturesKHR
5995e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
5996e5c31af7Sopenharmony_ci
5997e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance5FeaturesKHR.adoc[]
5998e5c31af7Sopenharmony_ci--
5999e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[]
6000e5c31af7Sopenharmony_ci
6001e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance6[]
6002e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance6FeaturesKHR',desc='Structure describing whether the implementation supports maintenance6 functionality',type='structs',alias='VkPhysicalDeviceMaintenance6FeaturesKHR']
6003e5c31af7Sopenharmony_ci--
6004e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance6FeaturesKHR structure is defined as:
6005e5c31af7Sopenharmony_ci
6006e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance6FeaturesKHR.adoc[]
6007e5c31af7Sopenharmony_ci
6008e5c31af7Sopenharmony_ciThis structure describes the following feature:
6009e5c31af7Sopenharmony_ci
6010e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6011e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6012e5c31af7Sopenharmony_ci    structure.
6013e5c31af7Sopenharmony_ci  * [[features-maintenance6]] pname:maintenance6 indicates that the
6014e5c31af7Sopenharmony_ci    implementation supports the following:
6015e5c31af7Sopenharmony_ci  ** dlink:VK_NULL_HANDLE can: be used when binding an index buffer
6016e5c31af7Sopenharmony_ci  ** slink:VkBindMemoryStatusKHR can: be included in the pname:pNext chain
6017e5c31af7Sopenharmony_ci     of the slink:VkBindBufferMemoryInfo and slink:VkBindImageMemoryInfo
6018e5c31af7Sopenharmony_ci     structures, enabling applications to retrieve elink:VkResult values for
6019e5c31af7Sopenharmony_ci     individual memory binding operations.
6020e5c31af7Sopenharmony_ci  ** slink:VkPhysicalDeviceMaintenance6PropertiesKHR::pname:blockTexelViewCompatibleMultipleLayers
6021e5c31af7Sopenharmony_ci     property to indicate that the implementation supports creating image
6022e5c31af7Sopenharmony_ci     views with ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT where
6023e5c31af7Sopenharmony_ci     the pname:layerCount member of pname:subresourceRange is greater than
6024e5c31af7Sopenharmony_ci     `1`.
6025e5c31af7Sopenharmony_ci  ** slink:VkPhysicalDeviceMaintenance6PropertiesKHR::pname:maxCombinedImageSamplerDescriptorCount
6026e5c31af7Sopenharmony_ci     property which indicates the maximum descriptor size required for any
6027e5c31af7Sopenharmony_ci     <<formats-requiring-sampler-ycbcr-conversion, format that requires a
6028e5c31af7Sopenharmony_ci     sampler {YCbCr} conversion>> supported by the implementation.
6029e5c31af7Sopenharmony_ci  ** A
6030e5c31af7Sopenharmony_ci     slink:VkPhysicalDeviceMaintenance6PropertiesKHR::pname:fragmentShadingRateClampCombinerInputs
6031e5c31af7Sopenharmony_ci     property which indicates whether the implementation clamps the inputs
6032e5c31af7Sopenharmony_ci     to fragment shading rate combiner operations.
6033e5c31af7Sopenharmony_ci
6034e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance6FeaturesKHR
6035e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6036e5c31af7Sopenharmony_ci
6037e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance6FeaturesKHR.adoc[]
6038e5c31af7Sopenharmony_ci--
6039e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance6[]
6040e5c31af7Sopenharmony_ci
6041e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
6042e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDynamicRenderingFeatures',desc='Structure indicating support for dynamic render pass instances',type='structs',alias='VkPhysicalDeviceDynamicRenderingFeaturesKHR']
6043e5c31af7Sopenharmony_ci--
6044e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDynamicRenderingFeatures structure is defined as:
6045e5c31af7Sopenharmony_ci
6046e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDynamicRenderingFeatures.adoc[]
6047e5c31af7Sopenharmony_ci
6048e5c31af7Sopenharmony_ciifdef::VK_KHR_dynamic_rendering[]
6049e5c31af7Sopenharmony_cior the equivalent
6050e5c31af7Sopenharmony_ci
6051e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDynamicRenderingFeaturesKHR.adoc[]
6052e5c31af7Sopenharmony_ciendif::VK_KHR_dynamic_rendering[]
6053e5c31af7Sopenharmony_ci
6054e5c31af7Sopenharmony_ciThis structure describes the following feature:
6055e5c31af7Sopenharmony_ci
6056e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6057e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6058e5c31af7Sopenharmony_ci    structure.
6059e5c31af7Sopenharmony_ci
6060e5c31af7Sopenharmony_ci// Must have preceding whitespace
6061e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
6062e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
6063e5c31af7Sopenharmony_ci// tag::VK_KHR_dynamic_rendering-features[]
6064e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-dynamicRendering]] pname:dynamicRendering
6065e5c31af7Sopenharmony_ci    specifies that the implementation supports dynamic render pass instances
6066e5c31af7Sopenharmony_ci    using the flink:vkCmdBeginRendering command.
6067e5c31af7Sopenharmony_ci// end::VK_KHR_dynamic_rendering-features[]
6068e5c31af7Sopenharmony_ci
6069e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDynamicRenderingFeatures
6070e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6071e5c31af7Sopenharmony_ci
6072e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDynamicRenderingFeatures.adoc[]
6073e5c31af7Sopenharmony_ci--
6074e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
6075e5c31af7Sopenharmony_ci
6076e5c31af7Sopenharmony_ciifdef::VK_EXT_rgba10x6_formats[]
6077e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT',desc='Structure describing whether rendering to VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 formats can be supported by an implementation',type='structs']
6078e5c31af7Sopenharmony_ci--
6079e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT structure is defined
6080e5c31af7Sopenharmony_cias:
6081e5c31af7Sopenharmony_ci
6082e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.adoc[]
6083e5c31af7Sopenharmony_ci
6084e5c31af7Sopenharmony_ciThis structure describes the following feature:
6085e5c31af7Sopenharmony_ci
6086e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6087e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6088e5c31af7Sopenharmony_ci    structure.
6089e5c31af7Sopenharmony_ci  * [[features-formatRgba10x6WithoutYCbCrSampler]]
6090e5c31af7Sopenharmony_ci    pname:formatRgba10x6WithoutYCbCrSampler indicates that
6091e5c31af7Sopenharmony_ci    ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 can: be used with a
6092e5c31af7Sopenharmony_ci    sname:VkImageView with pname:subresourceRange.aspectMask equal to
6093e5c31af7Sopenharmony_ci    ename:VK_IMAGE_ASPECT_COLOR_BIT without a <<samplers-YCbCr-conversion,
6094e5c31af7Sopenharmony_ci    sampler {YCbCr} conversion>> enabled.
6095e5c31af7Sopenharmony_ci
6096e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
6097e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6098e5c31af7Sopenharmony_ci
6099e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.adoc[]
6100e5c31af7Sopenharmony_ci--
6101e5c31af7Sopenharmony_ciendif::VK_EXT_rgba10x6_formats[]
6102e5c31af7Sopenharmony_ci
6103e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_robustness[]
6104e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineRobustnessFeaturesEXT',desc='Structure describing whether an implementation supports robustness requests on a per-pipeline stage granularity',type='structs']
6105e5c31af7Sopenharmony_ci--
6106e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineRobustnessFeaturesEXT structure is defined
6107e5c31af7Sopenharmony_cias:
6108e5c31af7Sopenharmony_ci
6109e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineRobustnessFeaturesEXT.adoc[]
6110e5c31af7Sopenharmony_ci
6111e5c31af7Sopenharmony_ciThis structure describes the following feature:
6112e5c31af7Sopenharmony_ci
6113e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6114e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6115e5c31af7Sopenharmony_ci    structure.
6116e5c31af7Sopenharmony_ci  * [[features-pipelineRobustness]] pname:pipelineRobustness indicates that
6117e5c31af7Sopenharmony_ci    robustness can: be requested on a per-pipeline-stage granularity.
6118e5c31af7Sopenharmony_ci
6119e5c31af7Sopenharmony_ci[NOTE]
6120e5c31af7Sopenharmony_ci.Note
6121e5c31af7Sopenharmony_ci====
6122e5c31af7Sopenharmony_ciEnabling <<features-pipelineRobustness, pname:pipelineRobustness>> may, on
6123e5c31af7Sopenharmony_cisome platforms, incur a minor performance cost when
6124e5c31af7Sopenharmony_ci<<features-robustBufferAccess, pname:robustBufferAccess>> is disabled, even
6125e5c31af7Sopenharmony_cifor pipelines which do not make use of any robustness features.
6126e5c31af7Sopenharmony_ciIf robustness is not needed, <<features-pipelineRobustness,
6127e5c31af7Sopenharmony_cipname:pipelineRobustness>> should not be enabled by an application.
6128e5c31af7Sopenharmony_ci====
6129e5c31af7Sopenharmony_ci
6130e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineRobustnessFeaturesEXT
6131e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6132e5c31af7Sopenharmony_ci
6133e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineRobustnessFeaturesEXT.adoc[]
6134e5c31af7Sopenharmony_ci--
6135e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_robustness[]
6136e5c31af7Sopenharmony_ci
6137e5c31af7Sopenharmony_ciifdef::VK_EXT_image_view_min_lod[]
6138e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageViewMinLodFeaturesEXT',desc='Structure describing whether clamping the min LOD of a image view is supported by the implementation',type='structs']
6139e5c31af7Sopenharmony_ci--
6140e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageViewMinLodFeaturesEXT structure is defined
6141e5c31af7Sopenharmony_cias:
6142e5c31af7Sopenharmony_ci
6143e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageViewMinLodFeaturesEXT.adoc[]
6144e5c31af7Sopenharmony_ci
6145e5c31af7Sopenharmony_ciThis structure describes the following feature:
6146e5c31af7Sopenharmony_ci
6147e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6148e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6149e5c31af7Sopenharmony_ci    structure.
6150e5c31af7Sopenharmony_ci  * [[features-minLod]] pname:minLod indicates whether the implementation
6151e5c31af7Sopenharmony_ci    supports clamping the minimum LOD value during
6152e5c31af7Sopenharmony_ci    <<textures-image-level-selection,Image Level(s) Selection>>,
6153e5c31af7Sopenharmony_ci    <<textures-gather,Texel Gathering>> and
6154e5c31af7Sopenharmony_ci    <<textures-integer-coordinate-operations,Integer Texel Coordinate
6155e5c31af7Sopenharmony_ci    Operations>> with a given slink:VkImageView by
6156e5c31af7Sopenharmony_ci    slink:VkImageViewMinLodCreateInfoEXT::pname:minLod.
6157e5c31af7Sopenharmony_ci
6158e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageViewMinLodFeaturesEXT
6159e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6160e5c31af7Sopenharmony_ci
6161e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageViewMinLodFeaturesEXT.adoc[]
6162e5c31af7Sopenharmony_ci--
6163e5c31af7Sopenharmony_ciendif::VK_EXT_image_view_min_lod[]
6164e5c31af7Sopenharmony_ci
6165e5c31af7Sopenharmony_ciifdef::VK_EXT_rasterization_order_attachment_access[]
6166e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',desc='Structure describing whether rasterization order attachment access can be supported by an implementation',type='structs']
6167e5c31af7Sopenharmony_ci--
6168e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
6169e5c31af7Sopenharmony_cistructure is defined as:
6170e5c31af7Sopenharmony_ci
6171e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.adoc[]
6172e5c31af7Sopenharmony_ci
6173e5c31af7Sopenharmony_ciifdef::VK_ARM_rasterization_order_attachment_access[]
6174e5c31af7Sopenharmony_cior the equivalent
6175e5c31af7Sopenharmony_ci
6176e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.adoc[]
6177e5c31af7Sopenharmony_ciendif::VK_ARM_rasterization_order_attachment_access[]
6178e5c31af7Sopenharmony_ci
6179e5c31af7Sopenharmony_ciThis structure describes the following features:
6180e5c31af7Sopenharmony_ci
6181e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6182e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6183e5c31af7Sopenharmony_ci    structure.
6184e5c31af7Sopenharmony_ci  * [[features-rasterizationOrderColorAttachmentAccess]]
6185e5c31af7Sopenharmony_ci    pname:rasterizationOrderColorAttachmentAccess indicates that
6186e5c31af7Sopenharmony_ci    rasterization order access to color and input attachments is supported
6187e5c31af7Sopenharmony_ci    by the implementation.
6188e5c31af7Sopenharmony_ci  * [[features-rasterizationOrderDepthAttachmentAccess]]
6189e5c31af7Sopenharmony_ci    pname:rasterizationOrderDepthAttachmentAccess indicates that
6190e5c31af7Sopenharmony_ci    rasterization order access to the depth aspect of depth/stencil and
6191e5c31af7Sopenharmony_ci    input attachments is supported by the implementation.
6192e5c31af7Sopenharmony_ci  * [[features-rasterizationOrderStencilAttachmentAccess]]
6193e5c31af7Sopenharmony_ci    pname:rasterizationOrderStencilAttachmentAccess indicates that
6194e5c31af7Sopenharmony_ci    rasterization order access to the stencil aspect of depth/stencil and
6195e5c31af7Sopenharmony_ci    input attachments is supported by the implementation.
6196e5c31af7Sopenharmony_ci
6197e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
6198e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6199e5c31af7Sopenharmony_ci
6200e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.adoc[]
6201e5c31af7Sopenharmony_ci--
6202e5c31af7Sopenharmony_ciendif::VK_EXT_rasterization_order_attachment_access[]
6203e5c31af7Sopenharmony_ci
6204e5c31af7Sopenharmony_ciifdef::VK_EXT_subpass_merge_feedback[]
6205e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT',desc='Structure describing whether subpass merging feedback can be supported by the implementation',type='structs']
6206e5c31af7Sopenharmony_ci--
6207e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT structure is
6208e5c31af7Sopenharmony_cidefined as:
6209e5c31af7Sopenharmony_ci
6210e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT.adoc[]
6211e5c31af7Sopenharmony_ci
6212e5c31af7Sopenharmony_ciThis structure describes the following feature:
6213e5c31af7Sopenharmony_ci
6214e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6215e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6216e5c31af7Sopenharmony_ci    structure.
6217e5c31af7Sopenharmony_ci  * [[features-subpassMergeFeedback]] pname:subpassMergeFeedback indicates
6218e5c31af7Sopenharmony_ci    whether the implementation supports feedback of subpass merging.
6219e5c31af7Sopenharmony_ci
6220e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
6221e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6222e5c31af7Sopenharmony_ci
6223e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT.adoc[]
6224e5c31af7Sopenharmony_ci--
6225e5c31af7Sopenharmony_ciendif::VK_EXT_subpass_merge_feedback[]
6226e5c31af7Sopenharmony_ci
6227e5c31af7Sopenharmony_ciifdef::VK_NV_linear_color_attachment[]
6228e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLinearColorAttachmentFeaturesNV',desc='Structure describing whether <<glossary-linear-color-attachment, Linear Color Attachment>> rendering is supported by the implementation',type='structs']
6229e5c31af7Sopenharmony_ci--
6230e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLinearColorAttachmentFeaturesNV structure is
6231e5c31af7Sopenharmony_cidefined as:
6232e5c31af7Sopenharmony_ci
6233e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.adoc[]
6234e5c31af7Sopenharmony_ci
6235e5c31af7Sopenharmony_ciThis structure describes the following feature:
6236e5c31af7Sopenharmony_ci
6237e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6238e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6239e5c31af7Sopenharmony_ci    structure.
6240e5c31af7Sopenharmony_ci  * [[features-linearColorAttachment]] pname:linearColorAttachment indicates
6241e5c31af7Sopenharmony_ci    whether the implementation supports renderable
6242e5c31af7Sopenharmony_ci    <<glossary-linear-color-attachment, Linear Color Attachment>>
6243e5c31af7Sopenharmony_ci
6244e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLinearColorAttachmentFeaturesNV
6245e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6246e5c31af7Sopenharmony_ci
6247e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.adoc[]
6248e5c31af7Sopenharmony_ci--
6249e5c31af7Sopenharmony_ciendif::VK_NV_linear_color_attachment[]
6250e5c31af7Sopenharmony_ciifdef::VK_EXT_attachment_feedback_loop_layout[]
6251e5c31af7Sopenharmony_ci
6252e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT',desc='Structure indicating support for a render feedback loop image layout',type='structs']
6253e5c31af7Sopenharmony_ci--
6254e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT structure
6255e5c31af7Sopenharmony_ciis defined as:
6256e5c31af7Sopenharmony_ci
6257e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.adoc[]
6258e5c31af7Sopenharmony_ci
6259e5c31af7Sopenharmony_ciThis structure describes the following feature:
6260e5c31af7Sopenharmony_ci
6261e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6262e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6263e5c31af7Sopenharmony_ci    structure.
6264e5c31af7Sopenharmony_ci  * [[features-attachmentFeedbackLoopLayout]]
6265e5c31af7Sopenharmony_ci    pname:attachmentFeedbackLoopLayout indicates whether the implementation
6266e5c31af7Sopenharmony_ci    supports using
6267e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout
6268e5c31af7Sopenharmony_ci    for images created with
6269e5c31af7Sopenharmony_ci    ename:VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT.
6270e5c31af7Sopenharmony_ci
6271e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.adoc[]
6272e5c31af7Sopenharmony_ci--
6273e5c31af7Sopenharmony_ci
6274e5c31af7Sopenharmony_ciendif::VK_EXT_attachment_feedback_loop_layout[]
6275e5c31af7Sopenharmony_ci
6276e5c31af7Sopenharmony_ciifdef::VK_EXT_nested_command_buffer[]
6277e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceNestedCommandBufferFeaturesEXT',desc='Structure describing whether nested command buffers are supported by the implementation',type='structs']
6278e5c31af7Sopenharmony_ci--
6279e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceNestedCommandBufferFeaturesEXT structure is
6280e5c31af7Sopenharmony_cidefined as:
6281e5c31af7Sopenharmony_ci
6282e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceNestedCommandBufferFeaturesEXT.adoc[]
6283e5c31af7Sopenharmony_ci
6284e5c31af7Sopenharmony_ciThis structure describes the following features:
6285e5c31af7Sopenharmony_ci
6286e5c31af7Sopenharmony_ci  * [[features-nestedCommandBuffer]] pname:nestedCommandBuffer indicates the
6287e5c31af7Sopenharmony_ci    implementation supports nested command buffers, which allows <<glossary,
6288e5c31af7Sopenharmony_ci    Secondary Command Buffers>> to execute other <<glossary, Secondary
6289e5c31af7Sopenharmony_ci    Command Buffers>>.
6290e5c31af7Sopenharmony_ci  * [[features-nestedCommandBufferRendering]]
6291e5c31af7Sopenharmony_ci    pname:nestedCommandBufferRendering indicates that it is valid to call
6292e5c31af7Sopenharmony_ci    flink:vkCmdExecuteCommands inside a <<glossary, Secondary Command
6293e5c31af7Sopenharmony_ci    Buffer>> recorded with
6294e5c31af7Sopenharmony_ci    ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT.
6295e5c31af7Sopenharmony_ci  * [[features-nestedCommandBufferSimultaneousUse]]
6296e5c31af7Sopenharmony_ci    pname:nestedCommandBufferSimultaneousUse indicates that the
6297e5c31af7Sopenharmony_ci    implementation supports nested command buffers with command buffers that
6298e5c31af7Sopenharmony_ci    are recorded with ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT.
6299e5c31af7Sopenharmony_ci
6300e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceNestedCommandBufferFeaturesEXT
6301e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6302e5c31af7Sopenharmony_ci
6303e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceNestedCommandBufferFeaturesEXT.adoc[]
6304e5c31af7Sopenharmony_ci--
6305e5c31af7Sopenharmony_ciendif::VK_EXT_nested_command_buffer[]
6306e5c31af7Sopenharmony_ci
6307e5c31af7Sopenharmony_ciifdef::VK_EXT_graphics_pipeline_library[]
6308e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',desc='Structure describing support for graphics pipeline libraries',type='structs']
6309e5c31af7Sopenharmony_ci--
6310e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT structure is
6311e5c31af7Sopenharmony_cidefined as:
6312e5c31af7Sopenharmony_ci
6313e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT.adoc[]
6314e5c31af7Sopenharmony_ci
6315e5c31af7Sopenharmony_ciThis structure describes the following feature:
6316e5c31af7Sopenharmony_ci
6317e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6318e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6319e5c31af7Sopenharmony_ci    structure.
6320e5c31af7Sopenharmony_ci  * [[features-graphicsPipelineLibrary]] pname:graphicsPipelineLibrary
6321e5c31af7Sopenharmony_ci    indicates that the implementation supports <<pipelines-library, graphics
6322e5c31af7Sopenharmony_ci    pipeline libraries>>.
6323e5c31af7Sopenharmony_ci
6324e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
6325e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6326e5c31af7Sopenharmony_ci
6327e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT.adoc[]
6328e5c31af7Sopenharmony_ci--
6329e5c31af7Sopenharmony_ciendif::VK_EXT_graphics_pipeline_library[]
6330e5c31af7Sopenharmony_ci
6331e5c31af7Sopenharmony_ciifdef::VK_EXT_multisampled_render_to_single_sampled[]
6332e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',desc='Structure describing whether multisampled rendering to single-sampled attachments is supported',type='structs']
6333e5c31af7Sopenharmony_ci--
6334e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
6335e5c31af7Sopenharmony_cistructure is defined as:
6336e5c31af7Sopenharmony_ci
6337e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.adoc[]
6338e5c31af7Sopenharmony_ci
6339e5c31af7Sopenharmony_ciThis structure describes the following features:
6340e5c31af7Sopenharmony_ci
6341e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6342e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6343e5c31af7Sopenharmony_ci    structure.
6344e5c31af7Sopenharmony_ci  * [[features-multisampledRenderToSingleSampled]]
6345e5c31af7Sopenharmony_ci    pname:multisampledRenderToSingleSampled indicates that the
6346e5c31af7Sopenharmony_ci    implementation supports multisampled rendering to single-sampled render
6347e5c31af7Sopenharmony_ci    pass attachments.
6348e5c31af7Sopenharmony_ci
6349e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
6350e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6351e5c31af7Sopenharmony_ci
6352e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.adoc[]
6353e5c31af7Sopenharmony_ci--
6354e5c31af7Sopenharmony_ciendif::VK_EXT_multisampled_render_to_single_sampled[]
6355e5c31af7Sopenharmony_ci
6356e5c31af7Sopenharmony_ciifdef::VK_EXT_image_2d_view_of_3d[]
6357e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImage2DViewOf3DFeaturesEXT',desc='Structure describing whether single-slice 2D views of 3D images can be used in image descriptors',type='structs']
6358e5c31af7Sopenharmony_ci--
6359e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImage2DViewOf3DFeaturesEXT structure is defined
6360e5c31af7Sopenharmony_cias:
6361e5c31af7Sopenharmony_ci
6362e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.adoc[]
6363e5c31af7Sopenharmony_ci
6364e5c31af7Sopenharmony_ciThis structure describes the following features:
6365e5c31af7Sopenharmony_ci
6366e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6367e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6368e5c31af7Sopenharmony_ci    structure.
6369e5c31af7Sopenharmony_ci  * [[features-image2DViewOf3D]] pname:image2DViewOf3D indicates that the
6370e5c31af7Sopenharmony_ci    implementation supports using a 2D view of a 3D image in a descriptor of
6371e5c31af7Sopenharmony_ci    type ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE if the image is created
6372e5c31af7Sopenharmony_ci    using ename:VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT.
6373e5c31af7Sopenharmony_ci  * [[features-sampler2DViewOf3D]] pname:sampler2DViewOf3D indicates that
6374e5c31af7Sopenharmony_ci    the implementation supports using a 2D view of a 3D image in a
6375e5c31af7Sopenharmony_ci    descriptor of type ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or
6376e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER if the image is created
6377e5c31af7Sopenharmony_ci    using ename:VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT.
6378e5c31af7Sopenharmony_ci
6379e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
6380e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6381e5c31af7Sopenharmony_ci
6382e5c31af7Sopenharmony_ci
6383e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.adoc[]
6384e5c31af7Sopenharmony_ci--
6385e5c31af7Sopenharmony_ciendif::VK_EXT_image_2d_view_of_3d[]
6386e5c31af7Sopenharmony_ci
6387e5c31af7Sopenharmony_ciifdef::VK_EXT_image_sliced_view_of_3d[]
6388e5c31af7Sopenharmony_ci
6389e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT',desc='Structure describing whether slice-based views of 3D images can be used in storage image descriptors',type='structs']
6390e5c31af7Sopenharmony_ci--
6391e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT structure is
6392e5c31af7Sopenharmony_cidefined as:
6393e5c31af7Sopenharmony_ci
6394e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT.adoc[]
6395e5c31af7Sopenharmony_ci
6396e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT
6397e5c31af7Sopenharmony_cistructure describe the following features:
6398e5c31af7Sopenharmony_ci
6399e5c31af7Sopenharmony_ci  * [[features-imageSlicedViewOf3D]] pname:imageSlicedViewOf3D indicates
6400e5c31af7Sopenharmony_ci    that the implementation supports using a sliced view of a 3D image in a
6401e5c31af7Sopenharmony_ci    descriptor of type ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE by using a
6402e5c31af7Sopenharmony_ci    slink:VkImageViewSlicedCreateInfoEXT structure when creating the view.
6403e5c31af7Sopenharmony_ci
6404e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT
6405e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6406e5c31af7Sopenharmony_ci
6407e5c31af7Sopenharmony_ci
6408e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT.adoc[]
6409e5c31af7Sopenharmony_ci--
6410e5c31af7Sopenharmony_ci
6411e5c31af7Sopenharmony_ciendif::VK_EXT_image_sliced_view_of_3d[]
6412e5c31af7Sopenharmony_ci
6413e5c31af7Sopenharmony_ciifdef::VK_EXT_image_compression_control[]
6414e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageCompressionControlFeaturesEXT',desc='Structure describing whether image compression controls can be supported by an implementation',type='structs']
6415e5c31af7Sopenharmony_ci--
6416e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageCompressionControlFeaturesEXT structure is
6417e5c31af7Sopenharmony_cidefined as:
6418e5c31af7Sopenharmony_ci
6419e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageCompressionControlFeaturesEXT.adoc[]
6420e5c31af7Sopenharmony_ci
6421e5c31af7Sopenharmony_ciThis structure describes the following feature:
6422e5c31af7Sopenharmony_ci
6423e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6424e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6425e5c31af7Sopenharmony_ci    structure.
6426e5c31af7Sopenharmony_ci  * [[features-imageCompressionControl]] pname:imageCompressionControl
6427e5c31af7Sopenharmony_ci    indicates that the implementation supports providing controls for image
6428e5c31af7Sopenharmony_ci    compression at image creation time.
6429e5c31af7Sopenharmony_ci
6430e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageCompressionControlFeaturesEXT
6431e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6432e5c31af7Sopenharmony_ci
6433e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageCompressionControlFeaturesEXT.adoc[]
6434e5c31af7Sopenharmony_ci--
6435e5c31af7Sopenharmony_ci
6436e5c31af7Sopenharmony_ciifdef::VK_EXT_image_compression_control_swapchain[]
6437e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',desc='Structure describing whether per-swapchain image compression controls can be supported by an implementation',type='structs']
6438e5c31af7Sopenharmony_ci--
6439e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
6440e5c31af7Sopenharmony_cistructure is defined as:
6441e5c31af7Sopenharmony_ci
6442e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT.adoc[]
6443e5c31af7Sopenharmony_ci
6444e5c31af7Sopenharmony_ciThis structure describes the following feature:
6445e5c31af7Sopenharmony_ci
6446e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6447e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6448e5c31af7Sopenharmony_ci    structure.
6449e5c31af7Sopenharmony_ci  * [[features-imageCompressionControlSwapchain]]
6450e5c31af7Sopenharmony_ci    pname:imageCompressionControlSwapchain indicates that the implementation
6451e5c31af7Sopenharmony_ci    supports controlling image controls per swapchain and querying image
6452e5c31af7Sopenharmony_ci    compression properties per surface.
6453e5c31af7Sopenharmony_ci
6454e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
6455e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6456e5c31af7Sopenharmony_ci
6457e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT.adoc[]
6458e5c31af7Sopenharmony_ci--
6459e5c31af7Sopenharmony_ciendif::VK_EXT_image_compression_control_swapchain[]
6460e5c31af7Sopenharmony_ci
6461e5c31af7Sopenharmony_ciendif::VK_EXT_image_compression_control[]
6462e5c31af7Sopenharmony_ci
6463e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_position_fetch[]
6464e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR',desc='Structure describing support for fetching vertex positions of hit triangles',type='structs']
6465e5c31af7Sopenharmony_ci--
6466e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR structure is
6467e5c31af7Sopenharmony_cidefined as:
6468e5c31af7Sopenharmony_ci
6469e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR.adoc[]
6470e5c31af7Sopenharmony_ci
6471e5c31af7Sopenharmony_ciThis structure describes the following feature:
6472e5c31af7Sopenharmony_ci
6473e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6474e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6475e5c31af7Sopenharmony_ci    structure.
6476e5c31af7Sopenharmony_ci  * [[features-rayTracingPositionFetch]] pname:rayTracingPositionFetch
6477e5c31af7Sopenharmony_ci    indicates that the implementation supports fetching the object space
6478e5c31af7Sopenharmony_ci    vertex positions of a hit triangle.
6479e5c31af7Sopenharmony_ci
6480e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR
6481e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6482e5c31af7Sopenharmony_ci
6483e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR.adoc[]
6484e5c31af7Sopenharmony_ci--
6485e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_position_fetch[]
6486e5c31af7Sopenharmony_ci
6487e5c31af7Sopenharmony_ci
6488e5c31af7Sopenharmony_ciifdef::VK_AMD_shader_early_and_late_fragment_tests[]
6489e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD',desc='Structure describing whether early and late fragment tests can be supported by an implementation',type='structs']
6490e5c31af7Sopenharmony_ci--
6491e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
6492e5c31af7Sopenharmony_cistructure is defined as:
6493e5c31af7Sopenharmony_ci
6494e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.adoc[]
6495e5c31af7Sopenharmony_ci
6496e5c31af7Sopenharmony_ciThis structure describes the following feature:
6497e5c31af7Sopenharmony_ci
6498e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6499e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6500e5c31af7Sopenharmony_ci    structure.
6501e5c31af7Sopenharmony_ci  * [[features-shaderEarlyAndLateFragmentTests]]
6502e5c31af7Sopenharmony_ci    pname:shaderEarlyAndLateFragmentTests indicates whether the
6503e5c31af7Sopenharmony_ci    implementation supports the code:EarlyAndLateFragmentTestsAMD
6504e5c31af7Sopenharmony_ci    {ExecutionMode}.
6505e5c31af7Sopenharmony_ci
6506e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
6507e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6508e5c31af7Sopenharmony_ci
6509e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.adoc[]
6510e5c31af7Sopenharmony_ci--
6511e5c31af7Sopenharmony_ciendif::VK_AMD_shader_early_and_late_fragment_tests[]
6512e5c31af7Sopenharmony_ci
6513e5c31af7Sopenharmony_ciifdef::VK_EXT_non_seamless_cube_map[]
6514e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT',desc='Structure describing features to disable seamless cube maps',type='structs']
6515e5c31af7Sopenharmony_ci--
6516e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT structure is defined
6517e5c31af7Sopenharmony_cias:
6518e5c31af7Sopenharmony_ci
6519e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT.adoc[]
6520e5c31af7Sopenharmony_ci
6521e5c31af7Sopenharmony_ciThis structure describes the following feature:
6522e5c31af7Sopenharmony_ci
6523e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6524e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6525e5c31af7Sopenharmony_ci    structure.
6526e5c31af7Sopenharmony_ci  * [[features-nonSeamlessCubeMap]] pname:nonSeamlessCubeMap indicates that
6527e5c31af7Sopenharmony_ci    the implementation supports
6528e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT.
6529e5c31af7Sopenharmony_ci
6530e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
6531e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6532e5c31af7Sopenharmony_ci
6533e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT.adoc[]
6534e5c31af7Sopenharmony_ci--
6535e5c31af7Sopenharmony_ciendif::VK_EXT_non_seamless_cube_map[]
6536e5c31af7Sopenharmony_ci
6537e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_module_identifier[]
6538e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT',desc='Structure describing whether querying and providing an identifier of a shader module is supported by the implementation',type='structs']
6539e5c31af7Sopenharmony_ci--
6540e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT structure is
6541e5c31af7Sopenharmony_cidefined as:
6542e5c31af7Sopenharmony_ci
6543e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT.adoc[]
6544e5c31af7Sopenharmony_ci
6545e5c31af7Sopenharmony_ciThis structure describes the following feature:
6546e5c31af7Sopenharmony_ci
6547e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6548e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6549e5c31af7Sopenharmony_ci    structure.
6550e5c31af7Sopenharmony_ci  * [[features-shaderModuleIdentifier]] pname:shaderModuleIdentifier
6551e5c31af7Sopenharmony_ci    indicates whether the implementation supports querying an identifier of
6552e5c31af7Sopenharmony_ci    a slink:VkShaderModule or slink:VkShaderModuleCreateInfo structure, and
6553e5c31af7Sopenharmony_ci    creating pipelines from identifiers only.
6554e5c31af7Sopenharmony_ci
6555e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
6556e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6557e5c31af7Sopenharmony_ci
6558e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT.adoc[]
6559e5c31af7Sopenharmony_ci--
6560e5c31af7Sopenharmony_ciendif::VK_EXT_shader_module_identifier[]
6561e5c31af7Sopenharmony_ci
6562e5c31af7Sopenharmony_ciifdef::VK_QCOM_tile_properties[]
6563e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTilePropertiesFeaturesQCOM',desc='Structure describing tile properties features that can be supported by an implementation',type='structs']
6564e5c31af7Sopenharmony_ci--
6565e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTilePropertiesFeaturesQCOM structure is defined
6566e5c31af7Sopenharmony_cias:
6567e5c31af7Sopenharmony_ci
6568e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTilePropertiesFeaturesQCOM.adoc[]
6569e5c31af7Sopenharmony_ci
6570e5c31af7Sopenharmony_ciThis structure describes the following features:
6571e5c31af7Sopenharmony_ci
6572e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6573e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6574e5c31af7Sopenharmony_ci    structure.
6575e5c31af7Sopenharmony_ci  * [[features-tileProperties]] pname:tileProperties indicates that the
6576e5c31af7Sopenharmony_ci    implementation supports queries for returning tile properties.
6577e5c31af7Sopenharmony_ci
6578e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTilePropertiesFeaturesQCOM
6579e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6580e5c31af7Sopenharmony_ci
6581e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTilePropertiesFeaturesQCOM.adoc[]
6582e5c31af7Sopenharmony_ci--
6583e5c31af7Sopenharmony_ciendif::VK_QCOM_tile_properties[]
6584e5c31af7Sopenharmony_ci
6585e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing[]
6586e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageProcessingFeaturesQCOM',desc='Structure describing image processing features that can be supported by an implementation',type='structs']
6587e5c31af7Sopenharmony_ci--
6588e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageProcessingFeaturesQCOM structure is defined
6589e5c31af7Sopenharmony_cias:
6590e5c31af7Sopenharmony_ci
6591e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageProcessingFeaturesQCOM.adoc[]
6592e5c31af7Sopenharmony_ci
6593e5c31af7Sopenharmony_ciThis structure describes the following features:
6594e5c31af7Sopenharmony_ci
6595e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6596e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6597e5c31af7Sopenharmony_ci    structure.
6598e5c31af7Sopenharmony_ci  * [[features-textureSampleWeighted]] pname:textureSampleWeighted indicates
6599e5c31af7Sopenharmony_ci    that the implementation supports shader modules that declare the
6600e5c31af7Sopenharmony_ci    pname:TextureSampleWeightedQCOM capability.
6601e5c31af7Sopenharmony_ci  * [[features-textureBoxFilter]] pname:textureBoxFilter indicates that the
6602e5c31af7Sopenharmony_ci    implementation supports shader modules that declare the
6603e5c31af7Sopenharmony_ci    pname:TextureBoxFilterQCOM capability.
6604e5c31af7Sopenharmony_ci  * [[features-textureBlockMatch]] pname:textureBlockMatch indicates that
6605e5c31af7Sopenharmony_ci    the implementation supports shader modules that declare the
6606e5c31af7Sopenharmony_ci    pname:TextureBlockMatchQCOM capability.
6607e5c31af7Sopenharmony_ci
6608e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageProcessingFeaturesQCOM
6609e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6610e5c31af7Sopenharmony_ci
6611e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageProcessingFeaturesQCOM.adoc[]
6612e5c31af7Sopenharmony_ci--
6613e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing[]
6614e5c31af7Sopenharmony_ci
6615e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing2[]
6616e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageProcessing2FeaturesQCOM',desc='Structure describing image processing features that can be supported by an implementation',type='structs']
6617e5c31af7Sopenharmony_ci--
6618e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageProcessing2FeaturesQCOM structure is defined
6619e5c31af7Sopenharmony_cias:
6620e5c31af7Sopenharmony_ci
6621e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageProcessing2FeaturesQCOM.adoc[]
6622e5c31af7Sopenharmony_ci
6623e5c31af7Sopenharmony_ciThis structure describes the following features:
6624e5c31af7Sopenharmony_ci
6625e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6626e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6627e5c31af7Sopenharmony_ci    structure.
6628e5c31af7Sopenharmony_ci  * [[features-textureBlockMatch2]] pname:textureBlockMatch2 indicates that
6629e5c31af7Sopenharmony_ci    the implementation supports shader modules that declare the
6630e5c31af7Sopenharmony_ci    code:TextureBlockMatch2QCOM capability.
6631e5c31af7Sopenharmony_ci
6632e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageProcessing2FeaturesQCOM
6633e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6634e5c31af7Sopenharmony_ci
6635e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageProcessing2FeaturesQCOM.adoc[]
6636e5c31af7Sopenharmony_ci--
6637e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing2[]
6638e5c31af7Sopenharmony_ci
6639e5c31af7Sopenharmony_ci
6640e5c31af7Sopenharmony_ci
6641e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clamp_zero_one[]
6642e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClampZeroOneFeaturesEXT',desc='Structure describing feature to control zero to one depth clamping',type='structs']
6643e5c31af7Sopenharmony_ci--
6644e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClampZeroOneFeaturesEXT structure is defined
6645e5c31af7Sopenharmony_cias:
6646e5c31af7Sopenharmony_ci
6647e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClampZeroOneFeaturesEXT.adoc[]
6648e5c31af7Sopenharmony_ci
6649e5c31af7Sopenharmony_ciThis structure describes the following feature:
6650e5c31af7Sopenharmony_ci
6651e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6652e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6653e5c31af7Sopenharmony_ci    structure.
6654e5c31af7Sopenharmony_ci
6655e5c31af7Sopenharmony_ci  * [[features-depthClampZeroOne]] pname:depthClampZeroOne indicates that
6656e5c31af7Sopenharmony_ci    the implementation supports clamping the depth to a range of `0` to `1`.
6657e5c31af7Sopenharmony_ci
6658e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClampZeroOneFeaturesEXT
6659e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6660e5c31af7Sopenharmony_ci
6661e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClampZeroOneFeaturesEXT.adoc[]
6662e5c31af7Sopenharmony_ci--
6663e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clamp_zero_one[]
6664e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_tile_image[]
6665e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderTileImageFeaturesEXT',desc='Structure describing tile image features supported by the implementation',type='structs']
6666e5c31af7Sopenharmony_ci--
6667e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderTileImageFeaturesEXT structure is defined
6668e5c31af7Sopenharmony_cias:
6669e5c31af7Sopenharmony_ci
6670e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderTileImageFeaturesEXT.adoc[]
6671e5c31af7Sopenharmony_ci
6672e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceShaderTileImageFeaturesEXT
6673e5c31af7Sopenharmony_cistructure describe the following features:
6674e5c31af7Sopenharmony_ci
6675e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6676e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6677e5c31af7Sopenharmony_ci    structure.
6678e5c31af7Sopenharmony_ci  * [[features-shaderTileImageColorReadAccess]]
6679e5c31af7Sopenharmony_ci    pname:shaderTileImageColorReadAccess indicates that the implementation
6680e5c31af7Sopenharmony_ci    supports the code:TileImageColorReadAccessEXT SPIR-V capability.
6681e5c31af7Sopenharmony_ci  * [[features-shaderTileImageDepthReadAccess]]
6682e5c31af7Sopenharmony_ci    pname:shaderTileImageDepthReadAccess indicates that the implementation
6683e5c31af7Sopenharmony_ci    supports the code:TileImageDepthReadAccessEXT SPIR-V capability.
6684e5c31af7Sopenharmony_ci  * [[features-shaderTileImageStencilReadAccess]]
6685e5c31af7Sopenharmony_ci    pname:shaderTileImageStencilReadAccess indicates that the implementation
6686e5c31af7Sopenharmony_ci    supports the code:TileImageStencilReadAccessEXT SPIR-V capability.
6687e5c31af7Sopenharmony_ci
6688e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderTileImageFeaturesEXT
6689e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6690e5c31af7Sopenharmony_ci
6691e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderTileImageFeaturesEXT.adoc[]
6692e5c31af7Sopenharmony_ci--
6693e5c31af7Sopenharmony_ciendif::VK_EXT_shader_tile_image[]
6694e5c31af7Sopenharmony_ci
6695e5c31af7Sopenharmony_ci
6696e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_bias_control[]
6697e5c31af7Sopenharmony_ci
6698e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthBiasControlFeaturesEXT',desc='Structure indicating support for depth bias scaling and representation control',type='structs']
6699e5c31af7Sopenharmony_ci--
6700e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthBiasControlFeaturesEXT structure is defined
6701e5c31af7Sopenharmony_cias:
6702e5c31af7Sopenharmony_ci
6703e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthBiasControlFeaturesEXT.adoc[]
6704e5c31af7Sopenharmony_ci
6705e5c31af7Sopenharmony_ciThis structure describes the following feature:
6706e5c31af7Sopenharmony_ci
6707e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6708e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6709e5c31af7Sopenharmony_ci    structure.
6710e5c31af7Sopenharmony_ci  * [[features-depthBiasControl]] pname:depthBiasControl indicates whether
6711e5c31af7Sopenharmony_ci    the implementation supports the fname:vkCmdSetDepthBias2EXT command and
6712e5c31af7Sopenharmony_ci    the sname:VkDepthBiasRepresentationInfoEXT structure.
6713e5c31af7Sopenharmony_ci  * [[features-leastRepresentableValueForceUnormRepresentation]]
6714e5c31af7Sopenharmony_ci    pname:leastRepresentableValueForceUnormRepresentation indicates whether
6715e5c31af7Sopenharmony_ci    the implementation supports using the
6716e5c31af7Sopenharmony_ci    ename:VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT
6717e5c31af7Sopenharmony_ci    depth bias representation.
6718e5c31af7Sopenharmony_ci  * [[features-floatRepresentation]] pname:floatRepresentation indicates
6719e5c31af7Sopenharmony_ci    whether the implementation supports using the
6720e5c31af7Sopenharmony_ci    ename:VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT depth bias representation.
6721e5c31af7Sopenharmony_ci  * [[features-depthBiasExact]] pname:depthBiasExact indicates whether the
6722e5c31af7Sopenharmony_ci    implementation supports forcing depth bias to not be scaled to ensure a
6723e5c31af7Sopenharmony_ci    minimum resolvable difference using
6724e5c31af7Sopenharmony_ci    sname:VkDepthBiasRepresentationInfoEXT::pname:depthBiasExact.
6725e5c31af7Sopenharmony_ci
6726e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthBiasControlFeaturesEXT.adoc[]
6727e5c31af7Sopenharmony_ci--
6728e5c31af7Sopenharmony_ci
6729e5c31af7Sopenharmony_ciendif::VK_EXT_depth_bias_control[]
6730e5c31af7Sopenharmony_ci
6731e5c31af7Sopenharmony_ciifdef::VK_EXT_device_address_binding_report[]
6732e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAddressBindingReportFeaturesEXT',desc='Structure describing the virtual allocation reporting feature supported by an implementation',type='structs']
6733e5c31af7Sopenharmony_ci--
6734e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAddressBindingReportFeaturesEXT structure is
6735e5c31af7Sopenharmony_cidefined as:
6736e5c31af7Sopenharmony_ci
6737e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAddressBindingReportFeaturesEXT.adoc[]
6738e5c31af7Sopenharmony_ci
6739e5c31af7Sopenharmony_ciThis structure describes the following feature:
6740e5c31af7Sopenharmony_ci
6741e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6742e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6743e5c31af7Sopenharmony_ci    structure.
6744e5c31af7Sopenharmony_ci  * [[features-reportAddressBinding]] pname:reportAddressBinding indicates
6745e5c31af7Sopenharmony_ci    whether this implementation supports reporting the binding of GPU
6746e5c31af7Sopenharmony_ci    virtual address ranges to Vulkan objects.
6747e5c31af7Sopenharmony_ci
6748e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAddressBindingReportFeaturesEXT
6749e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6750e5c31af7Sopenharmony_ci
6751e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAddressBindingReportFeaturesEXT.adoc[]
6752e5c31af7Sopenharmony_ci--
6753e5c31af7Sopenharmony_ciendif::VK_EXT_device_address_binding_report[]
6754e5c31af7Sopenharmony_ci
6755e5c31af7Sopenharmony_ciifdef::VK_NV_optical_flow[]
6756e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceOpticalFlowFeaturesNV',desc='Structure describing the optical flow features supported by the implementation',type='structs']
6757e5c31af7Sopenharmony_ci--
6758e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceOpticalFlowFeaturesNV structure is defined as:
6759e5c31af7Sopenharmony_ci
6760e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceOpticalFlowFeaturesNV.adoc[]
6761e5c31af7Sopenharmony_ci
6762e5c31af7Sopenharmony_ciThis structure describes the following feature:
6763e5c31af7Sopenharmony_ci
6764e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6765e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6766e5c31af7Sopenharmony_ci    structure.
6767e5c31af7Sopenharmony_ci  * [[features-opticalFlow]] pname:opticalFlow indicates whether the
6768e5c31af7Sopenharmony_ci    implementation supports optical flow.
6769e5c31af7Sopenharmony_ci
6770e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceOpticalFlowFeaturesNV
6771e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6772e5c31af7Sopenharmony_ci
6773e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceOpticalFlowFeaturesNV.adoc[]
6774e5c31af7Sopenharmony_ci--
6775e5c31af7Sopenharmony_ciendif::VK_NV_optical_flow[]
6776e5c31af7Sopenharmony_ci
6777e5c31af7Sopenharmony_ciifdef::VK_EXT_device_fault[]
6778e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFaultFeaturesEXT',desc='Structure indicating support for device fault reporting',type='structs']
6779e5c31af7Sopenharmony_ci--
6780e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFaultFeaturesEXT structure is defined as:
6781e5c31af7Sopenharmony_ci
6782e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFaultFeaturesEXT.adoc[]
6783e5c31af7Sopenharmony_ci
6784e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceFaultFeaturesEXT structure describe
6785e5c31af7Sopenharmony_cithe following features:
6786e5c31af7Sopenharmony_ci
6787e5c31af7Sopenharmony_ci  * [[features-deviceFault]] pname:deviceFault indicates that the
6788e5c31af7Sopenharmony_ci    implementation supports the reporting of device fault information.
6789e5c31af7Sopenharmony_ci  * [[features-deviceFaultVendorBinary]] pname:deviceFaultVendorBinary
6790e5c31af7Sopenharmony_ci    indicates that the implementation supports the generation of
6791e5c31af7Sopenharmony_ci    vendor-specific binary crash dumps.
6792e5c31af7Sopenharmony_ci    These may provide additional information when imported into
6793e5c31af7Sopenharmony_ci    vendor-specific external tools.
6794e5c31af7Sopenharmony_ci
6795e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFaultFeaturesEXT
6796e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6797e5c31af7Sopenharmony_ci
6798e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFaultFeaturesEXT.adoc[]
6799e5c31af7Sopenharmony_ci--
6800e5c31af7Sopenharmony_ciendif::VK_EXT_device_fault[]
6801e5c31af7Sopenharmony_ci
6802e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_library_group_handles[]
6803e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT',desc='Structure describing whether querying shader group handles from a pipeline library is supported by the implementation',type='structs']
6804e5c31af7Sopenharmony_ci--
6805e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT structure
6806e5c31af7Sopenharmony_ciis defined as:
6807e5c31af7Sopenharmony_ci
6808e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT.adoc[]
6809e5c31af7Sopenharmony_ci
6810e5c31af7Sopenharmony_ciThis structure describes the following features:
6811e5c31af7Sopenharmony_ci
6812e5c31af7Sopenharmony_ci  * [[features-pipelineLibraryGroupHandles]]
6813e5c31af7Sopenharmony_ci    pname:pipelineLibraryGroupHandles indicates whether the implementation
6814e5c31af7Sopenharmony_ci    supports querying group handles directly from a ray tracing pipeline
6815e5c31af7Sopenharmony_ci    library, and guarantees bitwise identical group handles for such
6816e5c31af7Sopenharmony_ci    libraries when linked into other pipelines.
6817e5c31af7Sopenharmony_ci
6818e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
6819e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6820e5c31af7Sopenharmony_ci
6821e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT.adoc[]
6822e5c31af7Sopenharmony_ci--
6823e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_library_group_handles[]
6824e5c31af7Sopenharmony_ci
6825e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_object[]
6826e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderObjectFeaturesEXT',desc='Structure describing whether shader objects can be supported by an implementation',type='structs']
6827e5c31af7Sopenharmony_ci--
6828e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderObjectFeaturesEXT structure is defined as:
6829e5c31af7Sopenharmony_ci
6830e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderObjectFeaturesEXT.adoc[]
6831e5c31af7Sopenharmony_ci
6832e5c31af7Sopenharmony_ciThis structure describes the following feature:
6833e5c31af7Sopenharmony_ci
6834e5c31af7Sopenharmony_ci  * [[features-shaderObject]] pname:shaderObject indicates whether the
6835e5c31af7Sopenharmony_ci    implementation supports <<shaders-objects, shader objects>>.
6836e5c31af7Sopenharmony_ci
6837e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderObjectFeaturesEXT
6838e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6839e5c31af7Sopenharmony_ci
6840e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderObjectFeaturesEXT.adoc[]
6841e5c31af7Sopenharmony_ci--
6842e5c31af7Sopenharmony_ciendif::VK_EXT_shader_object[]
6843e5c31af7Sopenharmony_ci
6844e5c31af7Sopenharmony_ciifdef::VK_ARM_shader_core_builtins[]
6845e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM',desc='Structure describing the shader core builtins features that can be supported by an implementation',type='structs']
6846e5c31af7Sopenharmony_ci--
6847e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM structure is defined
6848e5c31af7Sopenharmony_cias:
6849e5c31af7Sopenharmony_ci
6850e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM.adoc[]
6851e5c31af7Sopenharmony_ci
6852e5c31af7Sopenharmony_ciThis structure describes the following feature:
6853e5c31af7Sopenharmony_ci
6854e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6855e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6856e5c31af7Sopenharmony_ci    structure.
6857e5c31af7Sopenharmony_ci  * [[features-shaderCoreBuiltins]] pname:shaderCoreBuiltins indicates
6858e5c31af7Sopenharmony_ci    whether the implementation supports the SPIR-V code:CoreBuiltinsARM
6859e5c31af7Sopenharmony_ci    capability.
6860e5c31af7Sopenharmony_ci
6861e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM
6862e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6863e5c31af7Sopenharmony_ci
6864e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM.adoc[]
6865e5c31af7Sopenharmony_ci--
6866e5c31af7Sopenharmony_ciendif::VK_ARM_shader_core_builtins[]
6867e5c31af7Sopenharmony_ci
6868e5c31af7Sopenharmony_ciifdef::VK_EXT_frame_boundary[]
6869e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFrameBoundaryFeaturesEXT',desc='Structure describing the frame boundary features that can be supported by an implementation',type='structs']
6870e5c31af7Sopenharmony_ci--
6871e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFrameBoundaryFeaturesEXT structure is defined as:
6872e5c31af7Sopenharmony_ci
6873e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFrameBoundaryFeaturesEXT.adoc[]
6874e5c31af7Sopenharmony_ci
6875e5c31af7Sopenharmony_ciThis structure describes the following feature:
6876e5c31af7Sopenharmony_ci
6877e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6878e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6879e5c31af7Sopenharmony_ci    structure.
6880e5c31af7Sopenharmony_ci  * [[features-frameBoundary]] pname:frameBoundary indicates whether the
6881e5c31af7Sopenharmony_ci    implementation supports frame boundary information.
6882e5c31af7Sopenharmony_ci
6883e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFrameBoundaryFeaturesEXT
6884e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6885e5c31af7Sopenharmony_ci
6886e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFrameBoundaryFeaturesEXT.adoc[]
6887e5c31af7Sopenharmony_ci--
6888e5c31af7Sopenharmony_ciendif::VK_EXT_frame_boundary[]
6889e5c31af7Sopenharmony_ci
6890e5c31af7Sopenharmony_ciifdef::VK_EXT_swapchain_maintenance1[]
6891e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT',desc='Structure describing whether implementation supports swapchain maintenance1 functionality',type='structs']
6892e5c31af7Sopenharmony_ci--
6893e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT structure is
6894e5c31af7Sopenharmony_cidefined as:
6895e5c31af7Sopenharmony_ci
6896e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT.adoc[]
6897e5c31af7Sopenharmony_ci
6898e5c31af7Sopenharmony_ciThis structure describes the following feature:
6899e5c31af7Sopenharmony_ci
6900e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6901e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6902e5c31af7Sopenharmony_ci    structure.
6903e5c31af7Sopenharmony_ci  * [[features-swapchainMaintenance1]] pname:swapchainMaintenance1 indicates
6904e5c31af7Sopenharmony_ci    that the implementation supports the following:
6905e5c31af7Sopenharmony_ci  ** slink:VkSwapchainPresentFenceInfoEXT, specifying a fence that is
6906e5c31af7Sopenharmony_ci     signaled when the resources associated with a present operation can: be
6907e5c31af7Sopenharmony_ci     safely destroyed.
6908e5c31af7Sopenharmony_ci  ** slink:VkSwapchainPresentModesCreateInfoEXT and
6909e5c31af7Sopenharmony_ci     slink:VkSwapchainPresentModeInfoEXT, allowing the swapchain to switch
6910e5c31af7Sopenharmony_ci     present modes without a need for recreation.
6911e5c31af7Sopenharmony_ci  ** slink:VkSwapchainPresentScalingCreateInfoEXT, specifying the scaling
6912e5c31af7Sopenharmony_ci     behavior of the swapchain in presence of window resizing.
6913e5c31af7Sopenharmony_ci  ** The ename:VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT flag,
6914e5c31af7Sopenharmony_ci     allowing the implementation to defer the allocation of swapchain image
6915e5c31af7Sopenharmony_ci     memory until first acquisition.
6916e5c31af7Sopenharmony_ci  ** flink:vkReleaseSwapchainImagesEXT, allowing acquired swapchain images
6917e5c31af7Sopenharmony_ci     to be released without presenting them.
6918e5c31af7Sopenharmony_ci
6919e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT
6920e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6921e5c31af7Sopenharmony_ci
6922e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT.adoc[]
6923e5c31af7Sopenharmony_ci--
6924e5c31af7Sopenharmony_ciendif::VK_EXT_swapchain_maintenance1[]
6925e5c31af7Sopenharmony_ci
6926e5c31af7Sopenharmony_ciifdef::VK_EXT_dynamic_rendering_unused_attachments[]
6927e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT',desc='Structure describing the dynamic rendering unused attachment features that can be supported by an implementation',type='structs']
6928e5c31af7Sopenharmony_ci--
6929e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
6930e5c31af7Sopenharmony_cistructure is defined as:
6931e5c31af7Sopenharmony_ci
6932e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.adoc[]
6933e5c31af7Sopenharmony_ci
6934e5c31af7Sopenharmony_ciThis structure describes the following feature:
6935e5c31af7Sopenharmony_ci
6936e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6937e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6938e5c31af7Sopenharmony_ci    structure.
6939e5c31af7Sopenharmony_ci  * [[features-dynamicRenderingUnusedAttachments]]
6940e5c31af7Sopenharmony_ci    pname:dynamicRenderingUnusedAttachments indicates that the
6941e5c31af7Sopenharmony_ci    implementation supports binding graphics pipelines within a render pass
6942e5c31af7Sopenharmony_ci    instance where any pipeline
6943e5c31af7Sopenharmony_ci    slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats
6944e5c31af7Sopenharmony_ci    element with a format other than ename:VK_FORMAT_UNDEFINED is allowed
6945e5c31af7Sopenharmony_ci    with a corresponding slink:VkRenderingInfo::pname:pColorAttachments
6946e5c31af7Sopenharmony_ci    element with a pname:imageView equal to dlink:VK_NULL_HANDLE, or any
6947e5c31af7Sopenharmony_ci    pipeline
6948e5c31af7Sopenharmony_ci    slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats
6949e5c31af7Sopenharmony_ci    element with a ename:VK_FORMAT_UNDEFINED format is allowed with a
6950e5c31af7Sopenharmony_ci    corresponding slink:VkRenderingInfo::pname:pColorAttachments element
6951e5c31af7Sopenharmony_ci    with a non-dlink:VK_NULL_HANDLE pname:imageView.
6952e5c31af7Sopenharmony_ci    Also a slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat
6953e5c31af7Sopenharmony_ci    other than ename:VK_FORMAT_UNDEFINED is allowed with a
6954e5c31af7Sopenharmony_ci    dlink:VK_NULL_HANDLE slink:VkRenderingInfo::pname:pDepthAttachment, or a
6955e5c31af7Sopenharmony_ci    slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat of
6956e5c31af7Sopenharmony_ci    ename:VK_FORMAT_UNDEFINED is allowed with a non-dlink:VK_NULL_HANDLE
6957e5c31af7Sopenharmony_ci    slink:VkRenderingInfo::pname:pDepthAttachment.
6958e5c31af7Sopenharmony_ci    Also a
6959e5c31af7Sopenharmony_ci    slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat other
6960e5c31af7Sopenharmony_ci    than ename:VK_FORMAT_UNDEFINED is allowed with a dlink:VK_NULL_HANDLE
6961e5c31af7Sopenharmony_ci    slink:VkRenderingInfo::pname:pStencilAttachment, or a
6962e5c31af7Sopenharmony_ci    slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat of
6963e5c31af7Sopenharmony_ci    ename:VK_FORMAT_UNDEFINED is allowed with a non-dlink:VK_NULL_HANDLE
6964e5c31af7Sopenharmony_ci    slink:VkRenderingInfo::pname:pStencilAttachment.
6965e5c31af7Sopenharmony_ci    Any writes to a slink:VkRenderingInfo::pname:pColorAttachments,
6966e5c31af7Sopenharmony_ci    slink:VkRenderingInfo::pname:pDepthAttachment, or
6967e5c31af7Sopenharmony_ci    slink:VkRenderingInfo::pname:pStencilAttachment with
6968e5c31af7Sopenharmony_ci    dlink:VK_NULL_HANDLE are discarded.
6969e5c31af7Sopenharmony_ci
6970e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
6971e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6972e5c31af7Sopenharmony_ci
6973e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.adoc[]
6974e5c31af7Sopenharmony_ci
6975e5c31af7Sopenharmony_ci--
6976e5c31af7Sopenharmony_ciendif::VK_EXT_dynamic_rendering_unused_attachments[]
6977e5c31af7Sopenharmony_ci
6978e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_invocation_reorder[]
6979e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV',desc='Structure describing feature to control ray tracing invocation reordering',type='structs']
6980e5c31af7Sopenharmony_ci--
6981e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV structure is
6982e5c31af7Sopenharmony_cidefined as:
6983e5c31af7Sopenharmony_ci
6984e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV.adoc[]
6985e5c31af7Sopenharmony_ci
6986e5c31af7Sopenharmony_ciThis structure describes the following feature:
6987e5c31af7Sopenharmony_ci
6988e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
6989e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
6990e5c31af7Sopenharmony_ci    structure.
6991e5c31af7Sopenharmony_ci  * [[features-rayTracingInvocationReorder]]
6992e5c31af7Sopenharmony_ci    pname:rayTracingInvocationReorder indicates that the implementation
6993e5c31af7Sopenharmony_ci    supports `SPV_NV_shader_invocation_reorder`.
6994e5c31af7Sopenharmony_ci
6995e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV
6996e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
6997e5c31af7Sopenharmony_ci
6998e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV.adoc[]
6999e5c31af7Sopenharmony_ci
7000e5c31af7Sopenharmony_ci--
7001e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing_invocation_reorder[]
7002e5c31af7Sopenharmony_ci
7003e5c31af7Sopenharmony_ciifdef::VK_NV_extended_sparse_address_space[]
7004e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',desc='Structure describing feature to use extended sparse address space',type='structs']
7005e5c31af7Sopenharmony_ci--
7006e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV structure is
7007e5c31af7Sopenharmony_cidefined as:
7008e5c31af7Sopenharmony_ci
7009e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV.adoc[]
7010e5c31af7Sopenharmony_ci
7011e5c31af7Sopenharmony_ciThis structure describes the following feature:
7012e5c31af7Sopenharmony_ci
7013e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7014e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7015e5c31af7Sopenharmony_ci    structure.
7016e5c31af7Sopenharmony_ci  * [[features-extendedSparseAddressSpace]] pname:extendedSparseAddressSpace
7017e5c31af7Sopenharmony_ci    indicates that the implementation supports allowing certain usages of
7018e5c31af7Sopenharmony_ci    sparse memory resources to exceed
7019e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceLimits::pname:sparseAddressSpaceSize.
7020e5c31af7Sopenharmony_ci    See slink:VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV.
7021e5c31af7Sopenharmony_ci
7022e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV
7023e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7024e5c31af7Sopenharmony_ci
7025e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV.adoc[]
7026e5c31af7Sopenharmony_ci
7027e5c31af7Sopenharmony_ci--
7028e5c31af7Sopenharmony_ciendif::VK_NV_extended_sparse_address_space[]
7029e5c31af7Sopenharmony_ci
7030e5c31af7Sopenharmony_ciifdef::VK_QCOM_multiview_per_view_viewports[]
7031e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM',desc='Structure describing multiview per view viewports features that can be supported by an implementation',type='structs']
7032e5c31af7Sopenharmony_ci--
7033e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM structure is
7034e5c31af7Sopenharmony_cidefined as:
7035e5c31af7Sopenharmony_ci
7036e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.adoc[]
7037e5c31af7Sopenharmony_ci
7038e5c31af7Sopenharmony_ciThis structure describes the following features:
7039e5c31af7Sopenharmony_ci
7040e5c31af7Sopenharmony_ci  * [[features-multiview-per-view-viewports]]
7041e5c31af7Sopenharmony_ci    pname:multiviewPerViewViewports indicates that the implementation
7042e5c31af7Sopenharmony_ci    supports multiview per-view viewports.
7043e5c31af7Sopenharmony_ci
7044e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
7045e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7046e5c31af7Sopenharmony_ci
7047e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.adoc[]
7048e5c31af7Sopenharmony_ci--
7049e5c31af7Sopenharmony_ciendif::VK_QCOM_multiview_per_view_viewports[]
7050e5c31af7Sopenharmony_ci
7051e5c31af7Sopenharmony_ciifdef::VK_QCOM_multiview_per_view_render_areas[]
7052e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM',desc='Structure describing multiview per view render areas features that can be supported by an implementation',type='structs']
7053e5c31af7Sopenharmony_ci--
7054e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM structure
7055e5c31af7Sopenharmony_ciis defined as:
7056e5c31af7Sopenharmony_ci
7057e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.adoc[]
7058e5c31af7Sopenharmony_ci
7059e5c31af7Sopenharmony_ciThis structure describes the following features:
7060e5c31af7Sopenharmony_ci
7061e5c31af7Sopenharmony_ci  * [[features-multiview-per-view-render-areas]]
7062e5c31af7Sopenharmony_ci    pname:multiviewPerViewRenderAreas indicates that the implementation
7063e5c31af7Sopenharmony_ci    supports multiview per-view render areas.
7064e5c31af7Sopenharmony_ci
7065e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM
7066e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7067e5c31af7Sopenharmony_ci
7068e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.adoc[]
7069e5c31af7Sopenharmony_ci--
7070e5c31af7Sopenharmony_ciendif::VK_QCOM_multiview_per_view_render_areas[]
7071e5c31af7Sopenharmony_ci
7072e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_cluster_culling_shader[]
7073e5c31af7Sopenharmony_ci
7074e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI',desc='Structure describing whether cluster culling shader is enabled',type='structs']
7075e5c31af7Sopenharmony_ci--
7076e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI structure is
7077e5c31af7Sopenharmony_cidefined as:
7078e5c31af7Sopenharmony_ci
7079e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI.adoc[]
7080e5c31af7Sopenharmony_ci
7081e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7082e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7083e5c31af7Sopenharmony_ci    structure.
7084e5c31af7Sopenharmony_ci  * [[features-clustercullingShader]] pname:clustercullingShader specifies
7085e5c31af7Sopenharmony_ci    whether cluster culling shader is supported.
7086e5c31af7Sopenharmony_ci  * [[features-multiviewClusterCullingShader]]
7087e5c31af7Sopenharmony_ci    pname:multiviewClusterCullingShader specifies whether multiview is
7088e5c31af7Sopenharmony_ci    supported.
7089e5c31af7Sopenharmony_ci
7090e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI
7091e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7092e5c31af7Sopenharmony_ci
7093e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI.adoc[]
7094e5c31af7Sopenharmony_ci--
7095e5c31af7Sopenharmony_ciendif::VK_HUAWEI_cluster_culling_shader[]
7096e5c31af7Sopenharmony_ci
7097e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_cluster_culling_shader[]
7098e5c31af7Sopenharmony_ci
7099e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',desc='Structure describing whether cluster culling shader support VRS',type='structs']
7100e5c31af7Sopenharmony_ci--
7101e5c31af7Sopenharmony_ciTo query whether a Cluster Culling Shader supports the per-cluster shading
7102e5c31af7Sopenharmony_cirate feature, include a
7103e5c31af7Sopenharmony_cisname:VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI structure in the
7104e5c31af7Sopenharmony_cipname:pNext chain of the
7105e5c31af7Sopenharmony_cisname:VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI structure.
7106e5c31af7Sopenharmony_ciThis structure is defined as:
7107e5c31af7Sopenharmony_ci
7108e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.adoc[]
7109e5c31af7Sopenharmony_ci
7110e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7111e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7112e5c31af7Sopenharmony_ci    structure.
7113e5c31af7Sopenharmony_ci  * [[features-clusterShadingRate]] pname:clusterShadingRate specifies
7114e5c31af7Sopenharmony_ci    whether per-cluster shading rates is supported.
7115e5c31af7Sopenharmony_ci
7116e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.adoc[]
7117e5c31af7Sopenharmony_ci--
7118e5c31af7Sopenharmony_ci
7119e5c31af7Sopenharmony_ciendif::VK_HUAWEI_cluster_culling_shader[]
7120e5c31af7Sopenharmony_ci
7121e5c31af7Sopenharmony_ci
7122e5c31af7Sopenharmony_ciifdef::VK_AMDX_shader_enqueue[]
7123e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderEnqueueFeaturesAMDX',desc='Structure describing whether shader enqueue within execution graphs are supported by the implementation',type='structs']
7124e5c31af7Sopenharmony_ci--
7125e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderEnqueueFeaturesAMDX structure is defined as:
7126e5c31af7Sopenharmony_ci
7127e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.adoc[]
7128e5c31af7Sopenharmony_ci
7129e5c31af7Sopenharmony_ciThis structure describes the following feature:
7130e5c31af7Sopenharmony_ci
7131e5c31af7Sopenharmony_ci  * [[features-shaderEnqueue]] pname:shaderEnqueue indicates whether the
7132e5c31af7Sopenharmony_ci    implementation supports <<executiongraphs,execution graphs>>.
7133e5c31af7Sopenharmony_ci
7134e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderEnqueueFeaturesAMDX
7135e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7136e5c31af7Sopenharmony_ci
7137e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.adoc[]
7138e5c31af7Sopenharmony_ci--
7139e5c31af7Sopenharmony_ciendif::VK_AMDX_shader_enqueue[]
7140e5c31af7Sopenharmony_ci
7141e5c31af7Sopenharmony_ciifdef::VK_QCOM_filter_cubic_clamp[]
7142e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCubicClampFeaturesQCOM',desc='Structure describing cubic clamp features that can be supported by an implementation',type='structs']
7143e5c31af7Sopenharmony_ci--
7144e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCubicClampFeaturesQCOM structure is defined as:
7145e5c31af7Sopenharmony_ci
7146e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCubicClampFeaturesQCOM.adoc[]
7147e5c31af7Sopenharmony_ci
7148e5c31af7Sopenharmony_ciThis structure describes the following features:
7149e5c31af7Sopenharmony_ci
7150e5c31af7Sopenharmony_ci  * [[features-filter-cubic-range-clamp]] pname:cubicRangeClamp indicates
7151e5c31af7Sopenharmony_ci    that the implementation supports cubic filtering in combination with a
7152e5c31af7Sopenharmony_ci    <<textures-texel-range-clamp,texel range clamp>>.
7153e5c31af7Sopenharmony_ci
7154e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCubicClampFeaturesQCOM
7155e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7156e5c31af7Sopenharmony_ci
7157e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCubicClampFeaturesQCOM.adoc[]
7158e5c31af7Sopenharmony_ci--
7159e5c31af7Sopenharmony_ciendif::VK_QCOM_filter_cubic_clamp[]
7160e5c31af7Sopenharmony_ci
7161e5c31af7Sopenharmony_ciifdef::VK_QCOM_ycbcr_degamma[]
7162e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcrDegammaFeaturesQCOM',desc='Structure describing {YCbCr} degamma features that can be supported by an implementation',type='structs']
7163e5c31af7Sopenharmony_ci--
7164e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcrDegammaFeaturesQCOM structure is defined as:
7165e5c31af7Sopenharmony_ci
7166e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcrDegammaFeaturesQCOM.adoc[]
7167e5c31af7Sopenharmony_ci
7168e5c31af7Sopenharmony_ciThis structure describes the following features:
7169e5c31af7Sopenharmony_ci
7170e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7171e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7172e5c31af7Sopenharmony_ci    structure.
7173e5c31af7Sopenharmony_ci  * [[features-ycbcr-degamma]] pname:ycbcrDegamma indicates whether the
7174e5c31af7Sopenharmony_ci    implementation supports <<textures-ycbcr-degamma,{YCbCr} degamma>>.
7175e5c31af7Sopenharmony_ci
7176e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcrDegammaFeaturesQCOM
7177e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7178e5c31af7Sopenharmony_ci
7179e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcrDegammaFeaturesQCOM.adoc[]
7180e5c31af7Sopenharmony_ci--
7181e5c31af7Sopenharmony_ciendif::VK_QCOM_ycbcr_degamma[]
7182e5c31af7Sopenharmony_ci
7183e5c31af7Sopenharmony_ciifdef::VK_QCOM_filter_cubic_weights[]
7184e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCubicWeightsFeaturesQCOM',desc='Structure describing cubic weight selection features that can be supported by an implementation',type='structs']
7185e5c31af7Sopenharmony_ci--
7186e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCubicWeightsFeaturesQCOM structure is defined as:
7187e5c31af7Sopenharmony_ci
7188e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCubicWeightsFeaturesQCOM.adoc[]
7189e5c31af7Sopenharmony_ci
7190e5c31af7Sopenharmony_ciThis structure describes the following feature:
7191e5c31af7Sopenharmony_ci
7192e5c31af7Sopenharmony_ci  * [[features-filter-cubic-weight-selection]] pname:selectableCubicWeights
7193e5c31af7Sopenharmony_ci    indicates that the implementation supports the selection of filter cubic
7194e5c31af7Sopenharmony_ci    weights.
7195e5c31af7Sopenharmony_ci
7196e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCubicWeightsFeaturesQCOM
7197e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7198e5c31af7Sopenharmony_ci
7199e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCubicWeightsFeaturesQCOM.adoc[]
7200e5c31af7Sopenharmony_ci--
7201e5c31af7Sopenharmony_ciendif::VK_QCOM_filter_cubic_weights[]
7202e5c31af7Sopenharmony_ci
7203e5c31af7Sopenharmony_ciifdef::VK_NV_descriptor_pool_overallocation[]
7204e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV',desc='Structure describing feature to allow descriptor pool overallocation',type='structs']
7205e5c31af7Sopenharmony_ci--
7206e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV structure
7207e5c31af7Sopenharmony_ciis defined as:
7208e5c31af7Sopenharmony_ci
7209e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV.adoc[]
7210e5c31af7Sopenharmony_ci
7211e5c31af7Sopenharmony_ciThis structure describes the following feature:
7212e5c31af7Sopenharmony_ci
7213e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7214e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7215e5c31af7Sopenharmony_ci    structure.
7216e5c31af7Sopenharmony_ci  * [[features-descriptorPoolOverallocation]]
7217e5c31af7Sopenharmony_ci    pname:descriptorPoolOverallocation indicates that the implementation
7218e5c31af7Sopenharmony_ci    allows the application to opt into descriptor pool overallocation by
7219e5c31af7Sopenharmony_ci    creating the descriptor pool with
7220e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV and/or
7221e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV flags.
7222e5c31af7Sopenharmony_ci
7223e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV
7224e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7225e5c31af7Sopenharmony_ci
7226e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV.adoc[]
7227e5c31af7Sopenharmony_ci--
7228e5c31af7Sopenharmony_ciendif::VK_NV_descriptor_pool_overallocation[]
7229e5c31af7Sopenharmony_ci
7230e5c31af7Sopenharmony_ciifdef::VK_NV_per_stage_descriptor_set[]
7231e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePerStageDescriptorSetFeaturesNV',desc='Structure describing feature to allow descriptor set layout bindings to be per-stage',type='structs']
7232e5c31af7Sopenharmony_ci--
7233e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePerStageDescriptorSetFeaturesNV structure is
7234e5c31af7Sopenharmony_cidefined as:
7235e5c31af7Sopenharmony_ci
7236e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePerStageDescriptorSetFeaturesNV.adoc[]
7237e5c31af7Sopenharmony_ci
7238e5c31af7Sopenharmony_ciThis structure describes the following feature:
7239e5c31af7Sopenharmony_ci
7240e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7241e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7242e5c31af7Sopenharmony_ci    structure.
7243e5c31af7Sopenharmony_ci  * [[features-perStageDescriptorSet]] pname:perStageDescriptorSet indicates
7244e5c31af7Sopenharmony_ci    that the implementation allows the
7245e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV descriptor set
7246e5c31af7Sopenharmony_ci    layout creation flag to be used so the bindings are specified per-stage
7247e5c31af7Sopenharmony_ci    rather than across all stages.
7248e5c31af7Sopenharmony_ci  * [[features-dynamicPipelineLayout]] pname:dynamicPipelineLayout indicates
7249e5c31af7Sopenharmony_ci    the implementation allows the pname:layout member of
7250e5c31af7Sopenharmony_ci    slink:VkBindDescriptorSetsInfoKHR, slink:VkPushConstantsInfoKHR,
7251e5c31af7Sopenharmony_ci    slink:VkPushDescriptorSetInfoKHR,
7252e5c31af7Sopenharmony_ci    slink:VkPushDescriptorSetWithTemplateInfoKHR,
7253e5c31af7Sopenharmony_ci    slink:VkSetDescriptorBufferOffsetsInfoEXT and
7254e5c31af7Sopenharmony_ci    slink:VkBindDescriptorBufferEmbeddedSamplersInfoEXT to be
7255e5c31af7Sopenharmony_ci    dlink:VK_NULL_HANDLE and slink:VkPipelineLayoutCreateInfo can: be
7256e5c31af7Sopenharmony_ci    chained off those structures' pname:pNext instead.
7257e5c31af7Sopenharmony_ci
7258e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePerStageDescriptorSetFeaturesNV
7259e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7260e5c31af7Sopenharmony_ci
7261e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePerStageDescriptorSetFeaturesNV.adoc[]
7262e5c31af7Sopenharmony_ci
7263e5c31af7Sopenharmony_ci--
7264e5c31af7Sopenharmony_ciendif::VK_NV_per_stage_descriptor_set[]
7265e5c31af7Sopenharmony_ci
7266e5c31af7Sopenharmony_ciifdef::VK_NV_cuda_kernel_launch[]
7267e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCudaKernelLaunchFeaturesNV',desc='Structure describing whether cuda kernel launch is supported by the implementation',type='structs']
7268e5c31af7Sopenharmony_ci--
7269e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCudaKernelLaunchFeaturesNV structure is defined
7270e5c31af7Sopenharmony_cias:
7271e5c31af7Sopenharmony_ci
7272e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCudaKernelLaunchFeaturesNV.adoc[]
7273e5c31af7Sopenharmony_ci
7274e5c31af7Sopenharmony_ciThis structure describes the following features:
7275e5c31af7Sopenharmony_ci
7276e5c31af7Sopenharmony_ci  * [[features-cudaKernelLaunchFeatures]] pname:cudaKernelLaunchFeatures is
7277e5c31af7Sopenharmony_ci    non-zero if cuda kernel launch is supported.
7278e5c31af7Sopenharmony_ci
7279e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCudaKernelLaunchFeaturesNV
7280e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7281e5c31af7Sopenharmony_ci
7282e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCudaKernelLaunchFeaturesNV.adoc[]
7283e5c31af7Sopenharmony_ci--
7284e5c31af7Sopenharmony_ciendif::VK_NV_cuda_kernel_launch[]
7285e5c31af7Sopenharmony_ci
7286e5c31af7Sopenharmony_ciifdef::VK_ANDROID_external_format_resolve[]
7287e5c31af7Sopenharmony_ci
7288e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalFormatResolveFeaturesANDROID',desc='Structure describing whether external format resolves are supported',type='structs']
7289e5c31af7Sopenharmony_ci--
7290e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalFormatResolveFeaturesANDROID structure is
7291e5c31af7Sopenharmony_cidefined as:
7292e5c31af7Sopenharmony_ci
7293e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalFormatResolveFeaturesANDROID.adoc[]
7294e5c31af7Sopenharmony_ci
7295e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7296e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7297e5c31af7Sopenharmony_ci    structure.
7298e5c31af7Sopenharmony_ci  * [[features-externalFormatResolve]] pname:externalFormatResolve specifies
7299e5c31af7Sopenharmony_ci    whether external format resolves are supported.
7300e5c31af7Sopenharmony_ci
7301e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalFormatResolveFeaturesANDROID
7302e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7303e5c31af7Sopenharmony_ci
7304e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalFormatResolveFeaturesANDROID.adoc[]
7305e5c31af7Sopenharmony_ci--
7306e5c31af7Sopenharmony_ci
7307e5c31af7Sopenharmony_ciendif::VK_ANDROID_external_format_resolve[]
7308e5c31af7Sopenharmony_ci
7309e5c31af7Sopenharmony_ciifdef::VK_ARM_scheduling_controls[]
7310e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSchedulingControlsFeaturesARM',desc='Structure describing scheduling controls features that can be supported by an implementation',type='structs']
7311e5c31af7Sopenharmony_ci--
7312e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSchedulingControlsFeaturesARM structure is defined
7313e5c31af7Sopenharmony_cias:
7314e5c31af7Sopenharmony_ci
7315e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSchedulingControlsFeaturesARM.adoc[]
7316e5c31af7Sopenharmony_ci
7317e5c31af7Sopenharmony_ciThis structure describes the following features:
7318e5c31af7Sopenharmony_ci
7319e5c31af7Sopenharmony_ci  * [[features-schedulingControls]] pname:schedulingControls indicates that
7320e5c31af7Sopenharmony_ci    the implementation supports scheduling controls.
7321e5c31af7Sopenharmony_ci
7322e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSchedulingControlsFeaturesARM
7323e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7324e5c31af7Sopenharmony_ci
7325e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSchedulingControlsFeaturesARM.adoc[]
7326e5c31af7Sopenharmony_ci--
7327e5c31af7Sopenharmony_ciendif::VK_ARM_scheduling_controls[]
7328e5c31af7Sopenharmony_ci
7329e5c31af7Sopenharmony_ciifdef::VK_IMG_relaxed_line_rasterization[]
7330e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG',desc='Structure describing relaxed line rasterization features that can be supported by an implementation',type='structs']
7331e5c31af7Sopenharmony_ci--
7332e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG structure is
7333e5c31af7Sopenharmony_cidefined as:
7334e5c31af7Sopenharmony_ci
7335e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG.adoc[]
7336e5c31af7Sopenharmony_ci
7337e5c31af7Sopenharmony_ciThis structure describes the following feature:
7338e5c31af7Sopenharmony_ci
7339e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7340e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7341e5c31af7Sopenharmony_ci    structure.
7342e5c31af7Sopenharmony_ci  * [[features-relaxedLineRasterization]] pname:relaxedLineRasterization
7343e5c31af7Sopenharmony_ci    indicates that the implementation supports relaxed line rasterization
7344e5c31af7Sopenharmony_ci    control.
7345e5c31af7Sopenharmony_ci
7346e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG
7347e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7348e5c31af7Sopenharmony_ci
7349e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG.adoc[]
7350e5c31af7Sopenharmony_ci--
7351e5c31af7Sopenharmony_ciendif::VK_IMG_relaxed_line_rasterization[]
7352e5c31af7Sopenharmony_ci
7353e5c31af7Sopenharmony_ciifdef::VK_ARM_render_pass_striped[]
7354e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRenderPassStripedFeaturesARM',desc='Structure describing whether striped rendering can be supported by an implementation',type='structs']
7355e5c31af7Sopenharmony_ci--
7356e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRenderPassStripedFeaturesARM structure is defined
7357e5c31af7Sopenharmony_cias:
7358e5c31af7Sopenharmony_ci
7359e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRenderPassStripedFeaturesARM.adoc[]
7360e5c31af7Sopenharmony_ci
7361e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceRenderPassStripedFeaturesARM
7362e5c31af7Sopenharmony_cistructure describe the following features:
7363e5c31af7Sopenharmony_ci
7364e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
7365e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
7366e5c31af7Sopenharmony_ci    structure.
7367e5c31af7Sopenharmony_ci  * [[features-renderPassStriped]] pname:renderPassStriped indicates that
7368e5c31af7Sopenharmony_ci    striped rendering is supported by the implementation.
7369e5c31af7Sopenharmony_ci
7370e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRenderPassStripedFeaturesARM
7371e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features]
7372e5c31af7Sopenharmony_ci
7373e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRenderPassStripedFeaturesARM.adoc[]
7374e5c31af7Sopenharmony_ci--
7375e5c31af7Sopenharmony_ci
7376e5c31af7Sopenharmony_ciendif::VK_ARM_render_pass_striped[]
7377e5c31af7Sopenharmony_ci
7378e5c31af7Sopenharmony_ci[[features-requirements]]
7379e5c31af7Sopenharmony_ci== Feature Requirements
7380e5c31af7Sopenharmony_ci
7381e5c31af7Sopenharmony_ciAll Vulkan graphics implementations must: support the following features:
7382e5c31af7Sopenharmony_ci
7383e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[]
7384e5c31af7Sopenharmony_ci  * <<features-robustBufferAccess, pname:robustBufferAccess>>, unless the
7385e5c31af7Sopenharmony_ci    `apiext:VK_KHR_portability_subset` extension is enabled.
7386e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
7387e5c31af7Sopenharmony_ciifndef::VK_KHR_portability_subset[]
7388e5c31af7Sopenharmony_ci  * <<features-robustBufferAccess, pname:robustBufferAccess>>
7389e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
7390e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
7391e5c31af7Sopenharmony_ci  * <<features-multiview, pname:multiview>>, if Vulkan 1.1 is supported.
7392e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
7393e5c31af7Sopenharmony_ci    Vulkan SC 1.0 does not require pname:multiview to be supported
7394e5c31af7Sopenharmony_ci    <<SCID-8>>.
7395e5c31af7Sopenharmony_ciifdef::hidden[]
7396e5c31af7Sopenharmony_ci// tag::scdeviation[]
7397e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceVulkan11Features::pname:multiview is made optional
7398e5c31af7Sopenharmony_ci    <<SCID-8>>.
7399e5c31af7Sopenharmony_ci// end::scdeviation[]
7400e5c31af7Sopenharmony_ciendif::hidden[]
7401e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
7402e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_draw_parameters[]
7403e5c31af7Sopenharmony_ci  * <<features-shaderDrawParameters, pname:shaderDrawParameters>>, if the
7404e5c31af7Sopenharmony_ci    `apiext:VK_KHR_shader_draw_parameters` extension is supported.
7405e5c31af7Sopenharmony_ciendif::VK_KHR_shader_draw_parameters[]
7406e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
7407e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[]
7408e5c31af7Sopenharmony_ci  * <<features-uniformBufferStandardLayout,
7409e5c31af7Sopenharmony_ci    pname:uniformBufferStandardLayout>>, if Vulkan 1.2 or the
7410e5c31af7Sopenharmony_ci    `apiext:VK_KHR_uniform_buffer_standard_layout` extension is supported.
7411e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[]
7412e5c31af7Sopenharmony_ciifdef::VK_KHR_variable_pointers[]
7413e5c31af7Sopenharmony_ci  * <<features-variablePointersStorageBuffer,
7414e5c31af7Sopenharmony_ci    pname:variablePointersStorageBuffer>>, if the
7415e5c31af7Sopenharmony_ci    `apiext:VK_KHR_variable_pointers` extension is supported.
7416e5c31af7Sopenharmony_ciendif::VK_KHR_variable_pointers[]
7417e5c31af7Sopenharmony_ciifdef::VK_KHR_8bit_storage[]
7418e5c31af7Sopenharmony_ci  * <<features-storageBuffer8BitAccess, pname:storageBuffer8BitAccess>>, if
7419e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_8bit_storage` extension is supported.
7420e5c31af7Sopenharmony_ciendif::VK_KHR_8bit_storage[]
7421e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_8bit_storage[]
7422e5c31af7Sopenharmony_ci  * <<features-storageBuffer8BitAccess, pname:storageBuffer8BitAccess>>, if
7423e5c31af7Sopenharmony_ci    <<features-uniformAndStorageBuffer8BitAccess,
7424e5c31af7Sopenharmony_ci    pname:uniformAndStorageBuffer8BitAccess>> is enabled.
7425e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_8bit_storage[]
7426e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
7427e5c31af7Sopenharmony_ci  * If
7428e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing, pname:descriptorIndexing>> feature is supported, or if]
7429e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_descriptor_indexing` extension is supported:
7430e5c31af7Sopenharmony_ci  ** <<features-shaderSampledImageArrayDynamicIndexing,
7431e5c31af7Sopenharmony_ci     pname:shaderSampledImageArrayDynamicIndexing>>
7432e5c31af7Sopenharmony_ci  ** <<features-shaderStorageBufferArrayDynamicIndexing,
7433e5c31af7Sopenharmony_ci     pname:shaderStorageBufferArrayDynamicIndexing>>
7434e5c31af7Sopenharmony_ci  ** <<features-shaderUniformTexelBufferArrayDynamicIndexing,
7435e5c31af7Sopenharmony_ci     pname:shaderUniformTexelBufferArrayDynamicIndexing>>
7436e5c31af7Sopenharmony_ci  ** <<features-shaderStorageTexelBufferArrayDynamicIndexing,
7437e5c31af7Sopenharmony_ci     pname:shaderStorageTexelBufferArrayDynamicIndexing>>
7438e5c31af7Sopenharmony_ci  ** <<features-shaderSampledImageArrayNonUniformIndexing,
7439e5c31af7Sopenharmony_ci     pname:shaderSampledImageArrayNonUniformIndexing>>
7440e5c31af7Sopenharmony_ci  ** <<features-shaderStorageBufferArrayNonUniformIndexing,
7441e5c31af7Sopenharmony_ci     pname:shaderStorageBufferArrayNonUniformIndexing>>
7442e5c31af7Sopenharmony_ci  ** <<features-shaderUniformTexelBufferArrayNonUniformIndexing,
7443e5c31af7Sopenharmony_ci     pname:shaderUniformTexelBufferArrayNonUniformIndexing>>
7444e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingSampledImageUpdateAfterBind,
7445e5c31af7Sopenharmony_ci     pname:descriptorBindingSampledImageUpdateAfterBind>>
7446e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingStorageImageUpdateAfterBind,
7447e5c31af7Sopenharmony_ci     pname:descriptorBindingStorageImageUpdateAfterBind>>
7448e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingStorageBufferUpdateAfterBind,
7449e5c31af7Sopenharmony_ci     pname:descriptorBindingStorageBufferUpdateAfterBind>> (see also
7450e5c31af7Sopenharmony_ci     <<limits-robustBufferAccessUpdateAfterBind,
7451e5c31af7Sopenharmony_ci     pname:robustBufferAccessUpdateAfterBind>>)
7452e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingUniformTexelBufferUpdateAfterBind,
7453e5c31af7Sopenharmony_ci     pname:descriptorBindingUniformTexelBufferUpdateAfterBind>> (see also
7454e5c31af7Sopenharmony_ci     <<limits-robustBufferAccessUpdateAfterBind,
7455e5c31af7Sopenharmony_ci     pname:robustBufferAccessUpdateAfterBind>>)
7456e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingStorageTexelBufferUpdateAfterBind,
7457e5c31af7Sopenharmony_ci     pname:descriptorBindingStorageTexelBufferUpdateAfterBind>> (see also
7458e5c31af7Sopenharmony_ci     <<limits-robustBufferAccessUpdateAfterBind,
7459e5c31af7Sopenharmony_ci     pname:robustBufferAccessUpdateAfterBind>>)
7460e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingUpdateUnusedWhilePending,
7461e5c31af7Sopenharmony_ci     pname:descriptorBindingUpdateUnusedWhilePending>>
7462e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingPartiallyBound,
7463e5c31af7Sopenharmony_ci     pname:descriptorBindingPartiallyBound>>
7464e5c31af7Sopenharmony_ci  ** <<features-runtimeDescriptorArray, pname:runtimeDescriptorArray>>
7465e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
7466e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[]
7467e5c31af7Sopenharmony_ci  * If Vulkan 1.3 is supported:
7468e5c31af7Sopenharmony_ci  ** <<features-vulkanMemoryModel, pname:vulkanMemoryModel>>
7469e5c31af7Sopenharmony_ci  ** <<features-vulkanMemoryModelDeviceScope,
7470e5c31af7Sopenharmony_ci     pname:vulkanMemoryModelDeviceScope>>
7471e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[]
7472e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
7473e5c31af7Sopenharmony_ci  * <<features-inlineUniformBlock, pname:inlineUniformBlock>>, if
7474e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7475e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_inline_uniform_block` extension is supported.
7476e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
7477e5c31af7Sopenharmony_ci  * <<features-descriptorBindingInlineUniformBlockUpdateAfterBind,
7478e5c31af7Sopenharmony_ci    pname:descriptorBindingInlineUniformBlockUpdateAfterBind>>, if
7479e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7480e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_inline_uniform_block` extension is supported; and if
7481e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing, pname:descriptorIndexing>> feature is supported, or]
7482e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_descriptor_indexing` extension is supported.
7483e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
7484e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
7485e5c31af7Sopenharmony_ciifdef::VK_EXT_scalar_block_layout[]
7486e5c31af7Sopenharmony_ci  * <<features-scalarBlockLayout, pname:scalarBlockLayout>>, if the
7487e5c31af7Sopenharmony_ci    `apiext:VK_EXT_scalar_block_layout` extension is supported.
7488e5c31af7Sopenharmony_ciendif::VK_EXT_scalar_block_layout[]
7489e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
7490e5c31af7Sopenharmony_ci  * <<features-subgroupBroadcastDynamicId,
7491e5c31af7Sopenharmony_ci    pname:subgroupBroadcastDynamicId>>, if Vulkan 1.2 is supported.
7492e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
7493e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_KHR_sampler_mirror_clamp_to_edge[]
7494e5c31af7Sopenharmony_ci  * <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>>,
7495e5c31af7Sopenharmony_ci    if the `apiext:VK_KHR_sampler_mirror_clamp_to_edge` extension is
7496e5c31af7Sopenharmony_ci    supported.
7497e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_KHR_sampler_mirror_clamp_to_edge[]
7498e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_KHR_draw_indirect_count[]
7499e5c31af7Sopenharmony_ci  * <<features-drawIndirectCount, pname:drawIndirectCount>>, if the
7500e5c31af7Sopenharmony_ci    `apiext:VK_KHR_draw_indirect_count` extension is supported.
7501e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_KHR_draw_indirect_count[]
7502e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_EXT_sampler_filter_minmax[]
7503e5c31af7Sopenharmony_ci  * <<features-samplerFilterMinmax, pname:samplerFilterMinmax>>, if the
7504e5c31af7Sopenharmony_ci    `apiext:VK_EXT_sampler_filter_minmax` extension is supported.
7505e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_EXT_sampler_filter_minmax[]
7506e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_EXT_shader_viewport_index_layer[]
7507e5c31af7Sopenharmony_ci  * <<features-shaderOutputViewportIndex, pname:shaderOutputViewportIndex>>,
7508e5c31af7Sopenharmony_ci    if the `apiext:VK_EXT_shader_viewport_index_layer` extension is
7509e5c31af7Sopenharmony_ci    supported.
7510e5c31af7Sopenharmony_ci  * <<features-shaderOutputLayer, pname:shaderOutputLayer>>, if the
7511e5c31af7Sopenharmony_ci    `apiext:VK_EXT_shader_viewport_index_layer` extension is supported.
7512e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_EXT_shader_viewport_index_layer[]
7513e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_subgroup_size_control[]
7514e5c31af7Sopenharmony_ci  * <<features-subgroupSizeControl, pname:subgroupSizeControl>>, if
7515e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7516e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_subgroup_size_control` extension is supported.
7517e5c31af7Sopenharmony_ci  * <<features-computeFullSubgroups, pname:computeFullSubgroups>>, if
7518e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7519e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_subgroup_size_control` extension is supported.
7520e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_subgroup_size_control[]
7521e5c31af7Sopenharmony_ciifdef::VK_EXT_device_memory_report[]
7522e5c31af7Sopenharmony_ci  * <<features-deviceMemoryReport, pname:deviceMemoryReport>>, if the
7523e5c31af7Sopenharmony_ci    `apiext:VK_EXT_device_memory_report` extension is supported.
7524e5c31af7Sopenharmony_ciendif::VK_EXT_device_memory_report[]
7525e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query[]
7526e5c31af7Sopenharmony_ci  * <<features-globalPriorityQuery, pname:globalPriorityQuery>>, if the
7527e5c31af7Sopenharmony_ci    `apiext:VK_EXT_global_priority_query` extension is supported.
7528e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query[]
7529e5c31af7Sopenharmony_ciifdef::VK_KHR_global_priority[]
7530e5c31af7Sopenharmony_ci  * <<features-globalPriorityQuery, pname:globalPriorityQuery>>, if the
7531e5c31af7Sopenharmony_ci    `apiext:VK_KHR_global_priority` extension is supported.
7532e5c31af7Sopenharmony_ciendif::VK_KHR_global_priority[]
7533e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[]
7534e5c31af7Sopenharmony_ci  * <<features-imagelessFramebuffer, pname:imagelessFramebuffer>>, if Vulkan
7535e5c31af7Sopenharmony_ci    1.2 or the `apiext:VK_KHR_imageless_framebuffer` extension is supported.
7536e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[]
7537e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
7538e5c31af7Sopenharmony_ci  * <<features-separateDepthStencilLayouts,
7539e5c31af7Sopenharmony_ci    pname:separateDepthStencilLayouts>>, if Vulkan 1.2 or the
7540e5c31af7Sopenharmony_ci    `apiext:VK_KHR_separate_depth_stencil_layouts` extension is supported.
7541e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
7542e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_host_query_reset[]
7543e5c31af7Sopenharmony_ci  * <<features-hostQueryReset, pname:hostQueryReset>>, if Vulkan 1.2 or the
7544e5c31af7Sopenharmony_ci    `apiext:VK_EXT_host_query_reset` extension is supported.
7545e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_host_query_reset[]
7546e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
7547e5c31af7Sopenharmony_ci  * <<features-timelineSemaphore, pname:timelineSemaphore>>, if Vulkan 1.2
7548e5c31af7Sopenharmony_ci    or the `apiext:VK_KHR_timeline_semaphore` extension is supported.
7549e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
7550e5c31af7Sopenharmony_ci    Vulkan SC 1.0 does not require pname:timelineSemaphore to be supported
7551e5c31af7Sopenharmony_ci    <<SCID-8>>.
7552e5c31af7Sopenharmony_ciifdef::hidden[]
7553e5c31af7Sopenharmony_ci// tag::scdeviation[]
7554e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceVulkan12Features::pname:timelineSemaphore is made
7555e5c31af7Sopenharmony_ci    optional <<SCID-8>>.
7556e5c31af7Sopenharmony_ci// end::scdeviation[]
7557e5c31af7Sopenharmony_ciendif::hidden[]
7558e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
7559e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
7560e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
7561e5c31af7Sopenharmony_ci  * If the `apiext:VK_KHR_acceleration_structure` extension is supported:
7562e5c31af7Sopenharmony_ci  ** <<features-accelerationStructure, pname:accelerationStructure>>
7563e5c31af7Sopenharmony_ci  ** All the features required by
7564e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing, pname:descriptorIndexing>> feature if Vulkan 1.2 is supported, or]
7565e5c31af7Sopenharmony_ci     the `apiext:VK_EXT_descriptor_indexing` extension.
7566e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingAccelerationStructureUpdateAfterBind,
7567e5c31af7Sopenharmony_ci     pname:descriptorBindingAccelerationStructureUpdateAfterBind>>
7568e5c31af7Sopenharmony_ci  ** <<features-bufferDeviceAddress, pname:bufferDeviceAddress>> from
7569e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[Vulkan 1.2 or]
7570e5c31af7Sopenharmony_ci     the `apiext:VK_KHR_buffer_device_address` extension.
7571e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
7572e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
7573e5c31af7Sopenharmony_ci  * If the `apiext:VK_KHR_ray_tracing_pipeline` extension is supported:
7574e5c31af7Sopenharmony_ci  ** <<features-rayTracingPipeline, pname:rayTracingPipeline>>
7575e5c31af7Sopenharmony_ci  ** <<features-rayTracingPipelineTraceRaysIndirect,
7576e5c31af7Sopenharmony_ci     pname:rayTracingPipelineTraceRaysIndirect>>
7577e5c31af7Sopenharmony_ci  ** <<features-rayTraversalPrimitiveCulling,
7578e5c31af7Sopenharmony_ci     pname:rayTraversalPrimitiveCulling>>, if <<features-rayQuery,
7579e5c31af7Sopenharmony_ci     pname:rayQuery>> is supported
7580e5c31af7Sopenharmony_ci  ** the `apiext:VK_KHR_pipeline_library` extension must: be supported.
7581e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
7582e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[]
7583e5c31af7Sopenharmony_ci  * <<features-rayQuery, pname:rayQuery>>, if the `apiext:VK_KHR_ray_query`
7584e5c31af7Sopenharmony_ci    extension is supported.
7585e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
7586e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[]
7587e5c31af7Sopenharmony_ci  * <<features-pipelineCreationCacheControl,
7588e5c31af7Sopenharmony_ci    pname:pipelineCreationCacheControl>>, if
7589e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7590e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_pipeline_creation_cache_control` extension is
7591e5c31af7Sopenharmony_ci    supported.
7592e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[]
7593e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[]
7594e5c31af7Sopenharmony_ci  * <<features-subgroup-extended-types, pname:shaderSubgroupExtendedTypes>>,
7595e5c31af7Sopenharmony_ci    if Vulkan 1.2 or the `apiext:VK_KHR_shader_subgroup_extended_types`
7596e5c31af7Sopenharmony_ci    extension is supported.
7597e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[]
7598e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_ycbcr_conversion[]
7599e5c31af7Sopenharmony_ci  * <<features-samplerYcbcrConversion, pname:samplerYcbcrConversion>>, if
7600e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_sampler_ycbcr_conversion` extension is supported.
7601e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_ycbcr_conversion[]
7602e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_executable_properties[]
7603e5c31af7Sopenharmony_ci  * <<features-pipelineExecutableInfo, pname:pipelineExecutableInfo>>, if
7604e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_pipeline_executable_properties` extension is
7605e5c31af7Sopenharmony_ci    supported.
7606e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_executable_properties[]
7607e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[]
7608e5c31af7Sopenharmony_ci  * <<features-textureCompressionASTC_HDR,
7609e5c31af7Sopenharmony_ci    pname:textureCompressionASTC_HDR>>, if the
7610e5c31af7Sopenharmony_ci    `apiext:VK_EXT_texture_compression_astc_hdr` extension is supported.
7611e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[]
7612e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_enable[]
7613e5c31af7Sopenharmony_ci  * <<features-depthClipEnable, pname:depthClipEnable>>, if the
7614e5c31af7Sopenharmony_ci    `apiext:VK_EXT_depth_clip_enable` extension is supported.
7615e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_enable[]
7616e5c31af7Sopenharmony_ciifdef::VK_EXT_memory_priority[]
7617e5c31af7Sopenharmony_ci  * <<features-memoryPriority, pname:memoryPriority>>, if the
7618e5c31af7Sopenharmony_ci    `apiext:VK_EXT_memory_priority` extension is supported.
7619e5c31af7Sopenharmony_ciendif::VK_EXT_memory_priority[]
7620e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_image_arrays[]
7621e5c31af7Sopenharmony_ci  * <<features-ycbcrImageArrays, pname:ycbcrImageArrays>>, if the
7622e5c31af7Sopenharmony_ci    `apiext:VK_EXT_ycbcr_image_arrays` extension is supported.
7623e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_image_arrays[]
7624e5c31af7Sopenharmony_ciifdef::VK_EXT_index_type_uint8[]
7625e5c31af7Sopenharmony_ci  * <<features-indexTypeUint8, pname:indexTypeUint8>>, if the
7626e5c31af7Sopenharmony_ci    `apiext:VK_EXT_index_type_uint8` extension is supported.
7627e5c31af7Sopenharmony_ciendif::VK_EXT_index_type_uint8[]
7628e5c31af7Sopenharmony_ciifdef::VK_EXT_primitive_topology_list_restart[]
7629e5c31af7Sopenharmony_ci  * <<features-primitiveTopologyListRestart,
7630e5c31af7Sopenharmony_ci    pname:primitiveTopologyListRestart>>, if the
7631e5c31af7Sopenharmony_ci    `apiext:VK_EXT_primitive_topology_list_restart` extension is supported.
7632e5c31af7Sopenharmony_ciendif::VK_EXT_primitive_topology_list_restart[]
7633e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation[]
7634e5c31af7Sopenharmony_ci  * <<features-shaderDemoteToHelperInvocation,
7635e5c31af7Sopenharmony_ci    pname:shaderDemoteToHelperInvocation>>, if
7636e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7637e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_shader_demote_to_helper_invocation` extension is
7638e5c31af7Sopenharmony_ci    supported.
7639e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation[]
7640e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
7641e5c31af7Sopenharmony_ci  * <<features-texelBufferAlignment, pname:texelBufferAlignment>>, if
7642e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7643e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_texel_buffer_alignment` extension is supported.
7644e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
7645e5c31af7Sopenharmony_ciifdef::VK_KHR_vulkan_memory_model,VKSC_VERSION_1_0[]
7646e5c31af7Sopenharmony_ci  * <<features-vulkanMemoryModel, pname:vulkanMemoryModel>>,
7647e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
7648e5c31af7Sopenharmony_ci    if Vulkan SC 1.0 <<SCID-5>> or
7649e5c31af7Sopenharmony_ciifdef::hidden[]
7650e5c31af7Sopenharmony_ci// tag::scdeviation[]
7651e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceVulkan12Features::pname:vulkanMemoryModel must: be
7652e5c31af7Sopenharmony_ci    reported as ename:VK_TRUE <<SCID-1>>.
7653e5c31af7Sopenharmony_ci// end::scdeviation[]
7654e5c31af7Sopenharmony_ciendif::hidden[]
7655e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
7656e5c31af7Sopenharmony_ci    if the `apiext:VK_KHR_vulkan_memory_model` extension is supported.
7657e5c31af7Sopenharmony_ciendif::VK_KHR_vulkan_memory_model,VKSC_VERSION_1_0[]
7658e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_buffer_device_address[]
7659e5c31af7Sopenharmony_ci  * <<features-bufferDeviceAddress, pname:bufferDeviceAddress>>, if
7660e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7661e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_buffer_device_address` extension is supported.
7662e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_buffer_device_address[]
7663e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[]
7664e5c31af7Sopenharmony_ci  * <<VkPhysicalDevicePerformanceQueryFeaturesKHR,
7665e5c31af7Sopenharmony_ci    pname:performanceCounterQueryPools>>, if the
7666e5c31af7Sopenharmony_ci    `apiext:VK_KHR_performance_query` extension is supported.
7667e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[]
7668e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
7669e5c31af7Sopenharmony_ci  * <<features-transformFeedback, pname:transformFeedback>>, if the
7670e5c31af7Sopenharmony_ci    `apiext:VK_EXT_transform_feedback` extension is supported.
7671e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
7672e5c31af7Sopenharmony_ciifdef::VK_EXT_conditional_rendering[]
7673e5c31af7Sopenharmony_ci  * <<features-conditionalRendering, pname:conditionalRendering>>, if the
7674e5c31af7Sopenharmony_ci    `apiext:VK_EXT_conditional_rendering` extension is supported.
7675e5c31af7Sopenharmony_ciendif::VK_EXT_conditional_rendering[]
7676e5c31af7Sopenharmony_ciifdef::VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor[]
7677e5c31af7Sopenharmony_ci  * <<features-vertexAttributeInstanceRateDivisor,
7678e5c31af7Sopenharmony_ci    pname:vertexAttributeInstanceRateDivisor>>, if
7679e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[]
7680e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_vertex_attribute_divisor` extension or
7681e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[]
7682e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_vertex_attribute_divisor` extension is supported.
7683e5c31af7Sopenharmony_ciendif::VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor[]
7684e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
7685e5c31af7Sopenharmony_ci  * <<features-fragmentDensityMap, pname:fragmentDensityMap>>, if the
7686e5c31af7Sopenharmony_ci    `apiext:VK_EXT_fragment_density_map` extension is supported.
7687e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
7688e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_clock[]
7689e5c31af7Sopenharmony_ci  * <<features-shaderSubgroupClock, pname:shaderSubgroupClock>>, if the
7690e5c31af7Sopenharmony_ci    `apiext:VK_KHR_shader_clock` extension is supported.
7691e5c31af7Sopenharmony_ciendif::VK_KHR_shader_clock[]
7692e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_atomic_int64[]
7693e5c31af7Sopenharmony_ci  * <<features-shaderBufferInt64Atomics, pname:shaderBufferInt64Atomics>>,
7694e5c31af7Sopenharmony_ci    if the `apiext:VK_KHR_shader_atomic_int64` extension is supported.
7695e5c31af7Sopenharmony_ciendif::VK_KHR_shader_atomic_int64[]
7696e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[]
7697e5c31af7Sopenharmony_ci  * <<features-shaderInt64, pname:shaderInt64>>, if the
7698e5c31af7Sopenharmony_ci    <<features-shaderSharedInt64Atomics, pname:shaderSharedInt64Atomics>> or
7699e5c31af7Sopenharmony_ci    <<features-shaderBufferInt64Atomics, pname:shaderBufferInt64Atomics>>
7700e5c31af7Sopenharmony_ci    features are supported.
7701e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[]
7702e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float16_int8[]
7703e5c31af7Sopenharmony_ci  * <<features-shaderFloat16, pname:shaderFloat16>> or
7704e5c31af7Sopenharmony_ci    <<features-shaderInt8, pname:shaderInt8>>, if the
7705e5c31af7Sopenharmony_ci    `apiext:VK_KHR_shader_float16_int8` extension is supported.
7706e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float16_int8[]
7707e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[]
7708e5c31af7Sopenharmony_ci  * <<features-fragmentShaderSampleInterlock,
7709e5c31af7Sopenharmony_ci    pname:fragmentShaderSampleInterlock>> or
7710e5c31af7Sopenharmony_ci    <<features-fragmentShaderPixelInterlock,
7711e5c31af7Sopenharmony_ci    pname:fragmentShaderPixelInterlock>> or
7712e5c31af7Sopenharmony_ci    <<features-fragmentShaderShadingRateInterlock,
7713e5c31af7Sopenharmony_ci    pname:fragmentShaderShadingRateInterlock>>, if the
7714e5c31af7Sopenharmony_ci    `apiext:VK_EXT_fragment_shader_interlock` extension is supported.
7715e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[]
7716e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[]
7717e5c31af7Sopenharmony_ci  * <<features-rectangularLines, pname:rectangularLines>> or
7718e5c31af7Sopenharmony_ci    <<features-bresenhamLines, pname:bresenhamLines>> or
7719e5c31af7Sopenharmony_ci    <<features-smoothLines, pname:smoothLines>> or
7720e5c31af7Sopenharmony_ci    <<features-stippledRectangularLines, pname:stippledRectangularLines>> or
7721e5c31af7Sopenharmony_ci    <<features-stippledBresenhamLines, pname:stippledBresenhamLines>> or
7722e5c31af7Sopenharmony_ci    <<features-stippledSmoothLines, pname:stippledSmoothLines>>, if the
7723e5c31af7Sopenharmony_ci    `apiext:VK_EXT_line_rasterization` extension is supported.
7724e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[]
7725e5c31af7Sopenharmony_ciifdef::VK_KHR_16bit_storage[]
7726e5c31af7Sopenharmony_ci  * <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>,
7727e5c31af7Sopenharmony_ci    if the `apiext:VK_KHR_16bit_storage` extension is supported.
7728e5c31af7Sopenharmony_ciendif::VK_KHR_16bit_storage[]
7729e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[]
7730e5c31af7Sopenharmony_ci  * <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>,
7731e5c31af7Sopenharmony_ci    if <<features-uniformAndStorageBuffer16BitAccess,
7732e5c31af7Sopenharmony_ci    pname:uniformAndStorageBuffer16BitAccess>> is enabled.
7733e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_16bit_storage[]
7734e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_image_robustness[]
7735e5c31af7Sopenharmony_ci  * <<features-robustImageAccess, pname:robustImageAccess>>, if
7736e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7737e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_image_robustness` extension is supported.
7738e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_image_robustness[]
7739e5c31af7Sopenharmony_ciifdef::VK_EXT_4444_formats[]
7740e5c31af7Sopenharmony_ci  * <<features-formatA4R4G4B4, pname:formatA4R4G4B4>>, if the
7741e5c31af7Sopenharmony_ci    `apiext:VK_EXT_4444_formats` extension is supported.
7742e5c31af7Sopenharmony_ciendif::VK_EXT_4444_formats[]
7743e5c31af7Sopenharmony_ciifdef::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
7744e5c31af7Sopenharmony_ci  * <<features-mutableDescriptorType, pname:mutableDescriptorType>>, if the
7745e5c31af7Sopenharmony_ci    `apiext:VK_EXT_mutable_descriptor_type` or
7746e5c31af7Sopenharmony_ci    `apiext:VK_VALVE_mutable_descriptor_type` extension is supported.
7747e5c31af7Sopenharmony_ciendif::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[]
7748e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[]
7749e5c31af7Sopenharmony_ci  * <<features-shaderInt64, pname:shaderInt64>> and
7750e5c31af7Sopenharmony_ci    <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>, if
7751e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_shader_image_atomic_int64` extension is supported.
7752e5c31af7Sopenharmony_ci  * <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>, if
7753e5c31af7Sopenharmony_ci    the <<features-sparseImageInt64Atomics, pname:sparseImageInt64Atomics>>
7754e5c31af7Sopenharmony_ci    feature is supported.
7755e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[]
7756e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[]
7757e5c31af7Sopenharmony_ci  * <<features-shaderImageFloat32Atomics, pname:shaderImageFloat32Atomics>>,
7758e5c31af7Sopenharmony_ci    if the <<features-sparseImageFloat32Atomics,
7759e5c31af7Sopenharmony_ci    pname:sparseImageFloat32Atomics>> feature is supported.
7760e5c31af7Sopenharmony_ci  * <<features-shaderImageFloat32AtomicAdd,
7761e5c31af7Sopenharmony_ci    pname:shaderImageFloat32AtomicAdd>>, if the
7762e5c31af7Sopenharmony_ci    <<features-sparseImageFloat32AtomicAdd,
7763e5c31af7Sopenharmony_ci    pname:sparseImageFloat32AtomicAdd>> feature is supported.
7764e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[]
7765e5c31af7Sopenharmony_ciifdef::VK_EXT_primitives_generated_query[]
7766e5c31af7Sopenharmony_ci  * <<features-primitivesGeneratedQuery, pname:primitivesGeneratedQuery>>,
7767e5c31af7Sopenharmony_ci    if the `apiext:VK_EXT_primitives_generated_query` extension is
7768e5c31af7Sopenharmony_ci    supported.
7769e5c31af7Sopenharmony_ciendif::VK_EXT_primitives_generated_query[]
7770e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
7771e5c31af7Sopenharmony_ci  * <<features-pipelineFragmentShadingRate,
7772e5c31af7Sopenharmony_ci    pname:pipelineFragmentShadingRate>>, if the
7773e5c31af7Sopenharmony_ci    `apiext:VK_KHR_fragment_shading_rate` extension is supported.
7774e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
7775e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_protected_access[]
7776e5c31af7Sopenharmony_ci  * <<features-pipelineProtectedAccess, pname:pipelineProtectedAccess>>, if
7777e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_pipeline_protected_access` extension is supported.
7778e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_protected_access[]
7779e5c31af7Sopenharmony_ciifdef::VK_EXT_legacy_dithering[]
7780e5c31af7Sopenharmony_ci  * <<features-legacyDithering, pname:legacyDithering>>, if the
7781e5c31af7Sopenharmony_ci    `apiext:VK_EXT_legacy_dithering` extension is supported.
7782e5c31af7Sopenharmony_ciendif::VK_EXT_legacy_dithering[]
7783e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_shader_terminate_invocation[]
7784e5c31af7Sopenharmony_ci  * <<features-shaderTerminateInvocation, pname:shaderTerminateInvocation>>
7785e5c31af7Sopenharmony_ci    if
7786e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7787e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_shader_terminate_invocation` extension is supported.
7788e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_shader_terminate_invocation[]
7789e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory[]
7790e5c31af7Sopenharmony_ci  * <<features-shaderZeroInitializeWorkgroupMemory,
7791e5c31af7Sopenharmony_ci    pname:shaderZeroInitializeWorkgroupMemory>>, if
7792e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7793e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_zero_initialize_workgroup_memory` extension is
7794e5c31af7Sopenharmony_ci    supported.
7795e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory[]
7796e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
7797e5c31af7Sopenharmony_ci  * <<features-workgroupMemoryExplicitLayout,
7798e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayout>>, if the
7799e5c31af7Sopenharmony_ci    `apiext:VK_KHR_workgroup_memory_explicit_layout` extension is supported.
7800e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
7801e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_input_dynamic_state[]
7802e5c31af7Sopenharmony_ci  * <<features-vertexInputDynamicState, pname:vertexInputDynamicState>>, if
7803e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_vertex_input_dynamic_state` extension is supported.
7804e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_input_dynamic_state[]
7805e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_synchronization2[]
7806e5c31af7Sopenharmony_ci  * <<features-synchronization2, pname:synchronization2>> if
7807e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7808e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_synchronization2` extension is supported.
7809e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_synchronization2[]
7810e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[]
7811e5c31af7Sopenharmony_ci  * <<features-provokingVertexLast, pname:provokingVertexLast>>, if the
7812e5c31af7Sopenharmony_ci    `apiext:VK_EXT_provoking_vertex` extension is supported.
7813e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[]
7814e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_buffer[]
7815e5c31af7Sopenharmony_ci  * <<features-descriptorBuffer, pname:descriptorBuffer>>, if the
7816e5c31af7Sopenharmony_ci    `<<VK_EXT_descriptor_buffer>>` extension is supported.
7817e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_buffer[]
7818e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[]
7819e5c31af7Sopenharmony_ci  * <<features-shaderSubgroupUniformControlFlow,
7820e5c31af7Sopenharmony_ci    pname:shaderSubgroupUniformControlFlow>>, if the
7821e5c31af7Sopenharmony_ci    `apiext:VK_KHR_shader_subgroup_uniform_control_flow` extension is
7822e5c31af7Sopenharmony_ci    supported.
7823e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[]
7824e5c31af7Sopenharmony_ciifdef::VK_EXT_border_color_swizzle[]
7825e5c31af7Sopenharmony_ci  * <<features-borderColorSwizzle, pname:borderColorSwizzle>> if the
7826e5c31af7Sopenharmony_ci    `apiext:VK_EXT_border_color_swizzle` extension is supported.
7827e5c31af7Sopenharmony_ciendif::VK_EXT_border_color_swizzle[]
7828e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
7829e5c31af7Sopenharmony_ci  * <<features-multiDraw, pname:multiDraw>>, if the
7830e5c31af7Sopenharmony_ci    `apiext:VK_EXT_multi_draw` extension is supported.
7831e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
7832e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[]
7833e5c31af7Sopenharmony_ci  * <<features-shaderImageFloat32AtomicMinMax,
7834e5c31af7Sopenharmony_ci    pname:shaderImageFloat32AtomicMinMax>>, if the
7835e5c31af7Sopenharmony_ci    <<features-sparseImageFloat32AtomicMinMax,
7836e5c31af7Sopenharmony_ci    pname:sparseImageFloat32AtomicMinMax>> feature is supported.
7837e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[]
7838e5c31af7Sopenharmony_ciifdef::VK_KHR_present_id[]
7839e5c31af7Sopenharmony_ci  * <<features-presentId, pname:presentId>>, if the
7840e5c31af7Sopenharmony_ci    `apiext:VK_KHR_present_id` extension is supported.
7841e5c31af7Sopenharmony_ciendif::VK_KHR_present_id[]
7842e5c31af7Sopenharmony_ciifdef::VK_KHR_present_wait[]
7843e5c31af7Sopenharmony_ci  * <<features-presentWait, pname:presentWait>>, if the
7844e5c31af7Sopenharmony_ci    `apiext:VK_KHR_present_wait` extension is supported.
7845e5c31af7Sopenharmony_ciendif::VK_KHR_present_wait[]
7846e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[]
7847e5c31af7Sopenharmony_ci  * <<features-hostImageCopy, pname:hostImageCopy>>, if the
7848e5c31af7Sopenharmony_ci    `<<VK_EXT_host_image_copy>>` extension is supported.
7849e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[]
7850e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_shader_integer_dot_product[]
7851e5c31af7Sopenharmony_ci  * <<features-shaderIntegerDotProduct, pname:shaderIntegerDotProduct>> if
7852e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7853e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_shader_integer_dot_product` extension is supported.
7854e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_shader_integer_dot_product[]
7855e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[]
7856e5c31af7Sopenharmony_ci  * <<features-maintenance4, pname:maintenance4>>, if
7857e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7858e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_maintenance4` extension is supported.
7859e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_maintenance4[]
7860e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[]
7861e5c31af7Sopenharmony_ci  * <<features-maintenance5, pname:maintenance5>>, if the
7862e5c31af7Sopenharmony_ci    `apiext:VK_KHR_maintenance5` extension is supported.
7863e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[]
7864e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance6[]
7865e5c31af7Sopenharmony_ci  * <<features-maintenance6, pname:maintenance6>>, if the
7866e5c31af7Sopenharmony_ci    `apiext:VK_KHR_maintenance6` extension is supported.
7867e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance6[]
7868e5c31af7Sopenharmony_ciifdef::VK_EXT_image_2d_view_of_3d[]
7869e5c31af7Sopenharmony_ci  * <<features-image2DViewOf3D, pname:image2DViewOf3D>>, if the
7870e5c31af7Sopenharmony_ci    `apiext:VK_EXT_image_2d_view_of_3d` extension is supported.
7871e5c31af7Sopenharmony_ciendif::VK_EXT_image_2d_view_of_3d[]
7872e5c31af7Sopenharmony_ciifdef::VK_EXT_image_sliced_view_of_3d[]
7873e5c31af7Sopenharmony_ci  * <<features-imageSlicedViewOf3D, pname:imageSlicedViewOf3D>>, if the
7874e5c31af7Sopenharmony_ci    `apiext:VK_EXT_image_sliced_view_of_3d` extension is supported.
7875e5c31af7Sopenharmony_ciendif::VK_EXT_image_sliced_view_of_3d[]
7876e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_private_data[]
7877e5c31af7Sopenharmony_ci  * <<features-privateData, pname:privateData>>, if
7878e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7879e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_private_data` extension is supported.
7880e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_private_data[]
7881e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state[]
7882e5c31af7Sopenharmony_ci  * <<features-extendedDynamicState, pname:extendedDynamicState>>, if the
7883e5c31af7Sopenharmony_ci    `apiext:VK_EXT_extended_dynamic_state` extension is supported.
7884e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state[]
7885e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state2[]
7886e5c31af7Sopenharmony_ci  * <<features-extendedDynamicState2, pname:extendedDynamicState2>>, if the
7887e5c31af7Sopenharmony_ci    `apiext:VK_EXT_extended_dynamic_state2` extension is supported.
7888e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state2[]
7889e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[]
7890e5c31af7Sopenharmony_ci  * <<features-depthClipControl, pname:depthClipControl>>, if the
7891e5c31af7Sopenharmony_ci    `apiext:VK_EXT_depth_clip_control` extension is supported.
7892e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[]
7893e5c31af7Sopenharmony_ciifdef::VK_EXT_image_view_min_lod[]
7894e5c31af7Sopenharmony_ci  * <<features-minLod, pname:minLod>>, if the
7895e5c31af7Sopenharmony_ci    `apiext:VK_EXT_image_view_min_lod` extension is supported.
7896e5c31af7Sopenharmony_ciendif::VK_EXT_image_view_min_lod[]
7897e5c31af7Sopenharmony_ciifdef::VK_NV_external_sci_sync[]
7898e5c31af7Sopenharmony_ci  * At least one of <<features-sciSyncFence, pname:sciSyncFence>> and
7899e5c31af7Sopenharmony_ci    <<features-sciSyncSemaphore, pname:sciSyncSemaphore>>, and at least one
7900e5c31af7Sopenharmony_ci    of <<features-sciSyncImport, pname:sciSyncImport>> and
7901e5c31af7Sopenharmony_ci    <<features-sciSyncExport, pname:sciSyncExport>>, if the
7902e5c31af7Sopenharmony_ci    `apiext:VK_NV_external_sci_sync` extension is supported.
7903e5c31af7Sopenharmony_ciendif::VK_NV_external_sci_sync[]
7904e5c31af7Sopenharmony_ciifdef::VK_NV_external_sci_sync2[]
7905e5c31af7Sopenharmony_ci  * At least one of <<features-sciSyncFence2, pname:sciSyncFence>> and
7906e5c31af7Sopenharmony_ci    <<features-sciSyncSemaphore2, pname:sciSyncSemaphore2>>, and at least
7907e5c31af7Sopenharmony_ci    one of <<features-sciSyncImport2, pname:sciSyncImport>> and
7908e5c31af7Sopenharmony_ci    <<features-sciSyncExport2, pname:sciSyncExport>>, if the
7909e5c31af7Sopenharmony_ci    `apiext:VK_NV_external_sci_sync2` extension is supported.
7910e5c31af7Sopenharmony_ciendif::VK_NV_external_sci_sync2[]
7911e5c31af7Sopenharmony_ciifdef::VK_NV_external_memory_sci_buf[]
7912e5c31af7Sopenharmony_ci  * At least one of <<features-sciBufImport, pname:sciBufImport>> and
7913e5c31af7Sopenharmony_ci    <<features-sciBufExport, pname:sciBufExport>>, if the
7914e5c31af7Sopenharmony_ci    `apiext:VK_NV_external_memory_sci_buf` extension is supported.
7915e5c31af7Sopenharmony_ciendif::VK_NV_external_memory_sci_buf[]
7916e5c31af7Sopenharmony_ciifdef::VK_NV_linear_color_attachment[]
7917e5c31af7Sopenharmony_ci  * <<features-linearColorAttachment, pname:linearColorAttachment>>, if the
7918e5c31af7Sopenharmony_ci    `apiext:VK_NV_linear_color_attachment` extension is supported.
7919e5c31af7Sopenharmony_ciendif::VK_NV_linear_color_attachment[]
7920e5c31af7Sopenharmony_ciifdef::VK_NV_present_barrier[]
7921e5c31af7Sopenharmony_ci  * <<features-presentBarrier, pname:presentBarrier>>, if the
7922e5c31af7Sopenharmony_ci    `apiext:VK_NV_present_barrier` extension is supported.
7923e5c31af7Sopenharmony_ciendif::VK_NV_present_barrier[]
7924e5c31af7Sopenharmony_ciifdef::VK_EXT_graphics_pipeline_library[]
7925e5c31af7Sopenharmony_ci  * <<features-graphicsPipelineLibrary, pname:graphicsPipelineLibrary>>, if
7926e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_graphics_pipeline_library` extension is supported.
7927e5c31af7Sopenharmony_ciendif::VK_EXT_graphics_pipeline_library[]
7928e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
7929e5c31af7Sopenharmony_ci  * <<features-dynamicRendering, pname:dynamicRendering>>, if
7930e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or]
7931e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_dynamic_rendering` extension is supported.
7932e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
7933e5c31af7Sopenharmony_ciifdef::VK_EXT_nested_command_buffer[]
7934e5c31af7Sopenharmony_ci  * <<features-nestedCommandBuffer, pname:nestedCommandBuffer>>, if the
7935e5c31af7Sopenharmony_ci    `apiext:VK_EXT_nested_command_buffer` extension is supported.
7936e5c31af7Sopenharmony_ciendif::VK_EXT_nested_command_buffer[]
7937e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
7938e5c31af7Sopenharmony_ci  * <<features-taskShader, pname:taskShader>> and <<features-meshShader,
7939e5c31af7Sopenharmony_ci    pname:meshShader>>, if the `apiext:VK_EXT_mesh_shader` extension is
7940e5c31af7Sopenharmony_ci    supported.
7941e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
7942e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader+VK_KHR_fragment_shading_rate[]
7943e5c31af7Sopenharmony_ci  * <<features-primitiveFragmentShadingRate,
7944e5c31af7Sopenharmony_ci    pname:primitiveFragmentShadingRate>> if
7945e5c31af7Sopenharmony_ci    <<features-primitiveFragmentShadingRate-mesh,
7946e5c31af7Sopenharmony_ci    pname:primitiveFragmentShadingRateMeshShader>> feature is supported.
7947e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader+VK_KHR_fragment_shading_rate[]
7948e5c31af7Sopenharmony_ciifdef::VK_EXT_subpass_merge_feedback[]
7949e5c31af7Sopenharmony_ci  * <<features-subpassMergeFeedback, pname:subpassMergeFeedback>>, if the
7950e5c31af7Sopenharmony_ci    `apiext:VK_EXT_subpass_merge_feedback` extension is supported.
7951e5c31af7Sopenharmony_ciendif::VK_EXT_subpass_merge_feedback[]
7952e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_maintenance1[]
7953e5c31af7Sopenharmony_ci  * <<features-rayTracingMaintenance1, pname:rayTracingMaintenance1>>, if
7954e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_ray_tracing_maintenance1` extension is supported.
7955e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_maintenance1[]
7956e5c31af7Sopenharmony_ciifdef::VK_KHR_video_maintenance1[]
7957e5c31af7Sopenharmony_ci  * <<features-videoMaintenance1, pname:videoMaintenance1>>, if the
7958e5c31af7Sopenharmony_ci    `apiext:VK_KHR_video_maintenance1` extension is supported.
7959e5c31af7Sopenharmony_ciendif::VK_KHR_video_maintenance1[]
7960e5c31af7Sopenharmony_ciifdef::VK_EXT_color_write_enable[]
7961e5c31af7Sopenharmony_ci  * <<features-colorWriteEnable, pname:colorWriteEnable>>, if the
7962e5c31af7Sopenharmony_ci    `apiext:VK_EXT_color_write_enable` extension is supported.
7963e5c31af7Sopenharmony_ciendif::VK_EXT_color_write_enable[]
7964e5c31af7Sopenharmony_ciifdef::VK_EXT_multisampled_render_to_single_sampled[]
7965e5c31af7Sopenharmony_ci  * <<features-multisampledRenderToSingleSampled,
7966e5c31af7Sopenharmony_ci    pname:multisampledRenderToSingleSampled>>, if the
7967e5c31af7Sopenharmony_ci    `apiext:VK_EXT_multisampled_render_to_single_sampled` extension is
7968e5c31af7Sopenharmony_ci    supported.
7969e5c31af7Sopenharmony_ciendif::VK_EXT_multisampled_render_to_single_sampled[]
7970e5c31af7Sopenharmony_ciifdef::VK_EXT_image_compression_control[]
7971e5c31af7Sopenharmony_ci  * <<features-imageCompressionControl, pname:imageCompressionControl>>, if
7972e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_image_compression_control` extension is supported.
7973e5c31af7Sopenharmony_ciifdef::VK_EXT_image_compression_control_swapchain[]
7974e5c31af7Sopenharmony_ci  * <<features-imageCompressionControlSwapchain,
7975e5c31af7Sopenharmony_ci    pname:imageCompressionControlSwapchain>>, if the
7976e5c31af7Sopenharmony_ci    `apiext:VK_EXT_image_compression_control_swapchain` extension is
7977e5c31af7Sopenharmony_ci    supported.
7978e5c31af7Sopenharmony_ciendif::VK_EXT_image_compression_control_swapchain[]
7979e5c31af7Sopenharmony_ciendif::VK_EXT_image_compression_control[]
7980e5c31af7Sopenharmony_ciifdef::VK_AMD_shader_early_and_late_fragment_tests[]
7981e5c31af7Sopenharmony_ci  * <<features-shaderEarlyAndLateFragmentTests,
7982e5c31af7Sopenharmony_ci    pname:shaderEarlyAndLateFragmentTests>>, if the
7983e5c31af7Sopenharmony_ci    `apiext:VK_AMD_shader_early_and_late_fragment_tests` extension is
7984e5c31af7Sopenharmony_ci    supported.
7985e5c31af7Sopenharmony_ciendif::VK_AMD_shader_early_and_late_fragment_tests[]
7986e5c31af7Sopenharmony_ciifdef::VK_EXT_non_seamless_cube_map[]
7987e5c31af7Sopenharmony_ci  * <<features-nonSeamlessCubeMap, pname:nonSeamlessCubeMap>>, if the
7988e5c31af7Sopenharmony_ci    `apiext:VK_EXT_non_seamless_cube_map` extension is supported.
7989e5c31af7Sopenharmony_ciendif::VK_EXT_non_seamless_cube_map[]
7990e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_module_identifier[]
7991e5c31af7Sopenharmony_ci  * <<features-shaderModuleIdentifier, pname:shaderModuleIdentifier>>, if
7992e5c31af7Sopenharmony_ci    `apiext:VK_EXT_shader_module_identifier` extension is supported.
7993e5c31af7Sopenharmony_ciendif::VK_EXT_shader_module_identifier[]
7994e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_robustness[]
7995e5c31af7Sopenharmony_ci  * <<features-pipelineRobustness, pname:pipelineRobustness>>, if the
7996e5c31af7Sopenharmony_ci    `apiext:VK_EXT_pipeline_robustness` extension is supported.
7997e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_robustness[]
7998e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing[]
7999e5c31af7Sopenharmony_ci  * <<features-textureSampleWeighted, pname:textureSampleWeighted>>,
8000e5c31af7Sopenharmony_ci    <<features-textureBlockMatch, pname:TextureBlockMatch>>, and
8001e5c31af7Sopenharmony_ci    <<features-textureBoxFilter, pname:TextureBoxFilter>> if
8002e5c31af7Sopenharmony_ci    `apiext:VK_QCOM_image_processing` extension is supported.
8003e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing[]
8004e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing2[]
8005e5c31af7Sopenharmony_ci  * <<features-textureBlockMatch2, pname:TextureBlockMatch2>> if
8006e5c31af7Sopenharmony_ci    `apiext:VK_QCOM_image_processing2` extension is supported.
8007e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing2[]
8008e5c31af7Sopenharmony_ciifdef::VK_QCOM_tile_properties[]
8009e5c31af7Sopenharmony_ci  * <<features-tileProperties, pname:tileProperties>> if
8010e5c31af7Sopenharmony_ci    `apiext:VK_QCOM_tile_properties` extension is supported.
8011e5c31af7Sopenharmony_ciendif::VK_QCOM_tile_properties[]
8012e5c31af7Sopenharmony_ciifdef::VK_EXT_attachment_feedback_loop_layout[]
8013e5c31af7Sopenharmony_ci  * <<features-attachmentFeedbackLoopLayout,
8014e5c31af7Sopenharmony_ci    pname:attachmentFeedbackLoopLayout>>, if the
8015e5c31af7Sopenharmony_ci    `apiext:VK_EXT_attachment_feedback_loop_layout` extension is supported.
8016e5c31af7Sopenharmony_ciendif::VK_EXT_attachment_feedback_loop_layout[]
8017e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clamp_zero_one[]
8018e5c31af7Sopenharmony_ci  * <<features-depthClampZeroOne, pname:depthClampZeroOne>>, if the
8019e5c31af7Sopenharmony_ci    `apiext:VK_EXT_depth_clamp_zero_one` extension is supported.
8020e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clamp_zero_one[]
8021e5c31af7Sopenharmony_ciifdef::VK_EXT_device_fault[]
8022e5c31af7Sopenharmony_ci  * <<features-deviceFault, pname:deviceFault>>, if the
8023e5c31af7Sopenharmony_ci    `apiext:VK_EXT_device_fault` extension is supported.
8024e5c31af7Sopenharmony_ciendif::VK_EXT_device_fault[]
8025e5c31af7Sopenharmony_ciifdef::VK_EXT_device_address_binding_report[]
8026e5c31af7Sopenharmony_ci  * <<features-reportAddressBinding, pname:reportAddressBinding>>, if the
8027e5c31af7Sopenharmony_ci    `apiext:VK_EXT_device_address_binding_report` extension is supported.
8028e5c31af7Sopenharmony_ciendif::VK_EXT_device_address_binding_report[]
8029e5c31af7Sopenharmony_ciifdef::VK_EXT_opacity_micromap[]
8030e5c31af7Sopenharmony_ci  * <<features-micromap, pname:micromap>>, if the
8031e5c31af7Sopenharmony_ci    `apiext:VK_EXT_opacity_micromap` extension is supported.
8032e5c31af7Sopenharmony_ciendif::VK_EXT_opacity_micromap[]
8033e5c31af7Sopenharmony_ciifdef::VK_EXT_frame_boundary[]
8034e5c31af7Sopenharmony_ci  * <<features-frameBoundary, pname:frameBoundary>>, if the
8035e5c31af7Sopenharmony_ci    `apiext:VK_EXT_frame_boundary` extension is supported.
8036e5c31af7Sopenharmony_ciendif::VK_EXT_frame_boundary[]
8037e5c31af7Sopenharmony_ciifdef::VK_NV_displacement_micromap[]
8038e5c31af7Sopenharmony_ci  * <<features-displacementMicromap, pname:displacementMicromap>>, if the
8039e5c31af7Sopenharmony_ci    `apiext:VK_NV_displacement_micromap` extension is supported.
8040e5c31af7Sopenharmony_ciendif::VK_NV_displacement_micromap[]
8041e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_library_group_handles[]
8042e5c31af7Sopenharmony_ci  * <<features-pipelineLibraryGroupHandles,
8043e5c31af7Sopenharmony_ci    pname:pipelineLibraryGroupHandles>>, if the
8044e5c31af7Sopenharmony_ci    `apiext:VK_EXT_pipeline_library_group_handles` extension is supported.
8045e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_library_group_handles[]
8046e5c31af7Sopenharmony_ciifdef::VK_EXT_swapchain_maintenance1[]
8047e5c31af7Sopenharmony_ci  * <<features-swapchainMaintenance1, pname:swapchainMaintenance1>>, if the
8048e5c31af7Sopenharmony_ci    `apiext:VK_EXT_swapchain_maintenance1` extension is supported.
8049e5c31af7Sopenharmony_ciendif::VK_EXT_swapchain_maintenance1[]
8050e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state3[]
8051e5c31af7Sopenharmony_ci  * <<features-tessellationShader, pname:tessellationShader>>, if the
8052e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3TessellationDomainOrigin,
8053e5c31af7Sopenharmony_ci    pname:extendedDynamicState3TessellationDomainOrigin>> feature is
8054e5c31af7Sopenharmony_ci    supported.
8055e5c31af7Sopenharmony_ci  * <<features-depthClamp, pname:depthClamp>>, if the
8056e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3DepthClampEnable,
8057e5c31af7Sopenharmony_ci    pname:extendedDynamicState3DepthClampEnable>> feature is supported.
8058e5c31af7Sopenharmony_ci  * <<features-fillModeNonSolid, pname:fillModeNonSolid>>, if the
8059e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3PolygonMode,
8060e5c31af7Sopenharmony_ci    pname:extendedDynamicState3PolygonMode>> feature is supported.
8061e5c31af7Sopenharmony_ci  * <<features-alphaToOne, pname:alphaToOne>>, if the
8062e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3AlphaToOneEnable,
8063e5c31af7Sopenharmony_ci    pname:extendedDynamicState3AlphaToOneEnable>> feature is supported.
8064e5c31af7Sopenharmony_ci  * <<features-logicOp, pname:logicOp>>, if the
8065e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3LogicOpEnable,
8066e5c31af7Sopenharmony_ci    pname:extendedDynamicState3LogicOpEnable>> feature is supported.
8067e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
8068e5c31af7Sopenharmony_ci  * <<features-geometryStreams, pname:geometryStreams>>, if the
8069e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3RasterizationStream,
8070e5c31af7Sopenharmony_ci    pname:extendedDynamicState3RasterizationStream>> feature is supported.
8071e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
8072e5c31af7Sopenharmony_ciifdef::VK_EXT_conservative_rasterization[]
8073e5c31af7Sopenharmony_ci  * `apiext:VK_EXT_conservative_rasterization` extension, if the
8074e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3ConservativeRasterizationMode,
8075e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ConservativeRasterizationMode>> feature is
8076e5c31af7Sopenharmony_ci    supported.
8077e5c31af7Sopenharmony_ci  * `apiext:VK_EXT_conservative_rasterization` extension, if the
8078e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3ExtraPrimitiveOverestimationSize,
8079e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ExtraPrimitiveOverestimationSize>> feature is
8080e5c31af7Sopenharmony_ci    supported.
8081e5c31af7Sopenharmony_ciendif::VK_EXT_conservative_rasterization[]
8082e5c31af7Sopenharmony_ciifdef::VK_EXT_sample_locations[]
8083e5c31af7Sopenharmony_ci  * `apiext:VK_EXT_sample_locations` extension, if the
8084e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3SampleLocationsEnable,
8085e5c31af7Sopenharmony_ci    pname:extendedDynamicState3SampleLocationsEnable>> feature is supported.
8086e5c31af7Sopenharmony_ciendif::VK_EXT_sample_locations[]
8087e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[]
8088e5c31af7Sopenharmony_ci  * `apiext:VK_EXT_blend_operation_advanced` extension, if the
8089e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3ColorBlendAdvanced,
8090e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ColorBlendAdvanced>> feature is supported.
8091e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[]
8092e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[]
8093e5c31af7Sopenharmony_ci  * <<features-provokingVertexLast, pname:provokingVertexLast>>, if the
8094e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3ProvokingVertexMode,
8095e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ProvokingVertexMode>> feature is supported.
8096e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[]
8097e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[]
8098e5c31af7Sopenharmony_ci  * `apiext:VK_EXT_line_rasterization` extension, if the
8099e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3LineRasterizationMode,
8100e5c31af7Sopenharmony_ci    pname:extendedDynamicState3LineRasterizationMode>> feature is supported.
8101e5c31af7Sopenharmony_ci  * `apiext:VK_EXT_line_rasterization` extension, if the
8102e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3LineStippleEnable,
8103e5c31af7Sopenharmony_ci    pname:extendedDynamicState3LineStippleEnable>> feature is supported.
8104e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[]
8105e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[]
8106e5c31af7Sopenharmony_ci  * <<features-depthClipControl, pname:depthClipControl>>, if the
8107e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3DepthClipNegativeOneToOne,
8108e5c31af7Sopenharmony_ci    pname:extendedDynamicState3DepthClipNegativeOneToOne>> feature is
8109e5c31af7Sopenharmony_ci    supported.
8110e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[]
8111e5c31af7Sopenharmony_ciifdef::VK_NV_clip_space_w_scaling[]
8112e5c31af7Sopenharmony_ci  * `apiext:VK_NV_clip_space_w_scaling` extension, if the
8113e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3ViewportWScalingEnable,
8114e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ViewportWScalingEnable>> feature is
8115e5c31af7Sopenharmony_ci    supported.
8116e5c31af7Sopenharmony_ciendif::VK_NV_clip_space_w_scaling[]
8117e5c31af7Sopenharmony_ciifdef::VK_NV_viewport_swizzle[]
8118e5c31af7Sopenharmony_ci  * `apiext:VK_NV_viewport_swizzle` extension, if the
8119e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3ViewportSwizzle,
8120e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ViewportSwizzle>> feature is supported.
8121e5c31af7Sopenharmony_ciendif::VK_NV_viewport_swizzle[]
8122e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_coverage_to_color[]
8123e5c31af7Sopenharmony_ci  * `apiext:VK_NV_fragment_coverage_to_color` extension, if the
8124e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3CoverageToColorEnable,
8125e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageToColorEnable>> feature is supported.
8126e5c31af7Sopenharmony_ci  * `apiext:VK_NV_fragment_coverage_to_color` extension, if the
8127e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3CoverageToColorLocation,
8128e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageToColorLocation>> feature is
8129e5c31af7Sopenharmony_ci    supported.
8130e5c31af7Sopenharmony_ciendif::VK_NV_fragment_coverage_to_color[]
8131e5c31af7Sopenharmony_ciifdef::VK_NV_framebuffer_mixed_samples[]
8132e5c31af7Sopenharmony_ci  * `apiext:VK_NV_framebuffer_mixed_samples` extension, if the
8133e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3CoverageModulationMode,
8134e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageModulationMode>> feature is
8135e5c31af7Sopenharmony_ci    supported.
8136e5c31af7Sopenharmony_ci  * `apiext:VK_NV_framebuffer_mixed_samples` extension, if the
8137e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3CoverageModulationTableEnable,
8138e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageModulationTableEnable>> feature is
8139e5c31af7Sopenharmony_ci    supported.
8140e5c31af7Sopenharmony_ci  * `apiext:VK_NV_framebuffer_mixed_samples` extension, if the
8141e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3CoverageModulationTable,
8142e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageModulationTable>> feature is
8143e5c31af7Sopenharmony_ci    supported.
8144e5c31af7Sopenharmony_ciendif::VK_NV_framebuffer_mixed_samples[]
8145e5c31af7Sopenharmony_ciifdef::VK_NV_coverage_reduction_mode[]
8146e5c31af7Sopenharmony_ci  * <<features-coverageReductionMode, pname:coverageReductionMode>>, if the
8147e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3CoverageReductionMode,
8148e5c31af7Sopenharmony_ci    pname:extendedDynamicState3CoverageReductionMode>> feature is supported.
8149e5c31af7Sopenharmony_ciendif::VK_NV_coverage_reduction_mode[]
8150e5c31af7Sopenharmony_ciifdef::VK_NV_representative_fragment_test[]
8151e5c31af7Sopenharmony_ci  * <<features-representativeFragmentTest,
8152e5c31af7Sopenharmony_ci    pname:representativeFragmentTest>>, if the
8153e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3RepresentativeFragmentTestEnable,
8154e5c31af7Sopenharmony_ci    pname:extendedDynamicState3RepresentativeFragmentTestEnable>> feature is
8155e5c31af7Sopenharmony_ci    supported.
8156e5c31af7Sopenharmony_ciendif::VK_NV_representative_fragment_test[]
8157e5c31af7Sopenharmony_ciifdef::VK_NV_shading_rate_image[]
8158e5c31af7Sopenharmony_ci  * <<features-shadingRateImage, pname:shadingRateImage>>, if the
8159e5c31af7Sopenharmony_ci    <<features-extendedDynamicState3ShadingRateImageEnable,
8160e5c31af7Sopenharmony_ci    pname:extendedDynamicState3ShadingRateImageEnable>> feature is
8161e5c31af7Sopenharmony_ci    supported.
8162e5c31af7Sopenharmony_ciendif::VK_NV_shading_rate_image[]
8163e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state3[]
8164e5c31af7Sopenharmony_ciifdef::VK_QCOM_multiview_per_view_viewports[]
8165e5c31af7Sopenharmony_ci  * <<features-multiview-per-view-viewports,
8166e5c31af7Sopenharmony_ci    pname:multiviewPerViewViewports>>, if the
8167e5c31af7Sopenharmony_ci    `apiext:VK_QCOM_multiview_per_view_viewports` extension is supported.
8168e5c31af7Sopenharmony_ciendif::VK_QCOM_multiview_per_view_viewports[]
8169e5c31af7Sopenharmony_ciifdef::VK_EXT_attachment_feedback_loop_dynamic_state[]
8170e5c31af7Sopenharmony_ci  * <<features-attachmentFeedbackLoopDynamicState,
8171e5c31af7Sopenharmony_ci    pname:attachmentFeedbackLoopDynamicState>>, if the
8172e5c31af7Sopenharmony_ci    `apiext:VK_EXT_attachment_feedback_loop_dynamic_state` extension is
8173e5c31af7Sopenharmony_ci    supported.
8174e5c31af7Sopenharmony_ciendif::VK_EXT_attachment_feedback_loop_dynamic_state[]
8175e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_position_fetch[]
8176e5c31af7Sopenharmony_ci  * <<features-rayTracingPositionFetch, pname:rayTracingPositionFetch>>, if
8177e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_ray_tracing_position_fetch` extension is supported.
8178e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_position_fetch[]
8179e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_object[]
8180e5c31af7Sopenharmony_ci  * <<features-shaderObject, pname:shaderObject>>, if the
8181e5c31af7Sopenharmony_ci    `apiext:VK_EXT_shader_object` extension is supported.
8182e5c31af7Sopenharmony_ciendif::VK_EXT_shader_object[]
8183e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_tile_image[]
8184e5c31af7Sopenharmony_ci  * <<features-shaderTileImageColorReadAccess,
8185e5c31af7Sopenharmony_ci    pname:shaderTileImageColorReadAccess>>, if the
8186e5c31af7Sopenharmony_ci    `apiext:VK_EXT_shader_tile_image` extension is supported.
8187e5c31af7Sopenharmony_ciendif::VK_EXT_shader_tile_image[]
8188e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_bias_control[]
8189e5c31af7Sopenharmony_ci  * <<features-depthBiasControl, pname:depthBiasControl>>, if the
8190e5c31af7Sopenharmony_ci    `apiext:VK_EXT_depth_bias_control` extension is supported.
8191e5c31af7Sopenharmony_ciendif::VK_EXT_depth_bias_control[]
8192e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands_compute[]
8193e5c31af7Sopenharmony_ci  * <<features-deviceGeneratedCompute, pname:deviceGeneratedCompute>>, if
8194e5c31af7Sopenharmony_ci    the `apiext:VK_NV_device_generated_commands_compute` extension is
8195e5c31af7Sopenharmony_ci    supported.
8196e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands_compute[]
8197e5c31af7Sopenharmony_ciifdef::VK_AMDX_shader_enqueue[]
8198e5c31af7Sopenharmony_ci  * <<features-shaderEnqueue, pname:shaderEnqueue>> if the
8199e5c31af7Sopenharmony_ci    `apiext:VK_AMDX_shader_enqueue` extension is supported.
8200e5c31af7Sopenharmony_ciendif::VK_AMDX_shader_enqueue[]
8201e5c31af7Sopenharmony_ciifdef::VK_KHR_cooperative_matrix[]
8202e5c31af7Sopenharmony_ci  * <<features-cooperativeMatrix, pname:cooperativeMatrix>> if the
8203e5c31af7Sopenharmony_ci    `apiext:VK_KHR_cooperative_matrix` extension is supported.
8204e5c31af7Sopenharmony_ciendif::VK_KHR_cooperative_matrix[]
8205e5c31af7Sopenharmony_ciifdef::VK_QCOM_ycbcr_degamma[]
8206e5c31af7Sopenharmony_ci  * <<features-ycbcr-degamma,pname:ycbcrDegamma>>, if the
8207e5c31af7Sopenharmony_ci    `apiext:VK_QCOM_ycbcr_degamma` extension is supported.
8208e5c31af7Sopenharmony_ciendif::VK_QCOM_ycbcr_degamma[]
8209e5c31af7Sopenharmony_ciifdef::VK_NV_descriptor_pool_overallocation[]
8210e5c31af7Sopenharmony_ci  * <<features-descriptorPoolOverallocation,pname:descriptorPoolOverallocation>>,
8211e5c31af7Sopenharmony_ci    if the `apiext:VK_NV_descriptor_pool_overallocation` extension is
8212e5c31af7Sopenharmony_ci    supported.
8213e5c31af7Sopenharmony_ciendif::VK_NV_descriptor_pool_overallocation[]
8214e5c31af7Sopenharmony_ciifdef::VK_ANDROID_external_format_resolve[]
8215e5c31af7Sopenharmony_ci  * <<features-externalFormatResolve, pname:externalFormatResolve>>, if the
8216e5c31af7Sopenharmony_ci    `apiext:VK_ANDROID_external_format_resolve` extension is supported.
8217e5c31af7Sopenharmony_ciendif::VK_ANDROID_external_format_resolve[]
8218e5c31af7Sopenharmony_ciifdef::VK_NV_extended_sparse_address_space[]
8219e5c31af7Sopenharmony_ci  * <<features-extendedSparseAddressSpace,
8220e5c31af7Sopenharmony_ci    pname:extendedSparseAddressSpace>>, if the
8221e5c31af7Sopenharmony_ci    `apiext:VK_NV_extended_sparse_address_space` extension is supported.
8222e5c31af7Sopenharmony_ciendif::VK_NV_extended_sparse_address_space[]
8223e5c31af7Sopenharmony_ciifdef::VK_ARM_scheduling_controls[]
8224e5c31af7Sopenharmony_ci  * <<features-schedulingControls,pname:schedulingControls>>, if the
8225e5c31af7Sopenharmony_ci    `apiext:VK_ARM_scheduling_controls` extension is supported.
8226e5c31af7Sopenharmony_ciendif::VK_ARM_scheduling_controls[]
8227e5c31af7Sopenharmony_ciifdef::VK_IMG_relaxed_line_rasterization[]
8228e5c31af7Sopenharmony_ci  * <<features-relaxedLineRasterization,pname:relaxedLineRasterization>>, if
8229e5c31af7Sopenharmony_ci    the `apiext:VK_IMG_relaxed_line_rasterization` extension is supported.
8230e5c31af7Sopenharmony_ciendif::VK_IMG_relaxed_line_rasterization[]
8231e5c31af7Sopenharmony_ciifdef::VK_ARM_render_pass_striped[]
8232e5c31af7Sopenharmony_ci  * <<features-renderPassStriped,pname:renderPassStriped>>, if the
8233e5c31af7Sopenharmony_ci    `apiext:VK_ARM_render_pass_striped` extension is supported.
8234e5c31af7Sopenharmony_ciendif::VK_ARM_render_pass_striped[]
8235e5c31af7Sopenharmony_ciifdef::VK_NV_per_stage_descriptor_set[]
8236e5c31af7Sopenharmony_ci  * <<features-perStageDescriptorSet,pname:perStageDescriptorSet>>, if the
8237e5c31af7Sopenharmony_ci    `apiext:VK_NV_per_stage_descriptor_set` extension is supported.
8238e5c31af7Sopenharmony_ciendif::VK_NV_per_stage_descriptor_set[]
8239e5c31af7Sopenharmony_ci
8240e5c31af7Sopenharmony_ciAll other features defined in the Specification are optional:.
8241e5c31af7Sopenharmony_ci
8242e5c31af7Sopenharmony_ci
8243e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[]
8244e5c31af7Sopenharmony_ci[[profile-features]]
8245e5c31af7Sopenharmony_ci== Profile Features
8246e5c31af7Sopenharmony_ci
8247e5c31af7Sopenharmony_ci
8248e5c31af7Sopenharmony_ci[[profile-features-roadmap-2022]]
8249e5c31af7Sopenharmony_ci=== Roadmap 2022
8250e5c31af7Sopenharmony_ci
8251e5c31af7Sopenharmony_ciImplementations that claim support for the <<roadmap-2022, Roadmap 2022>>
8252e5c31af7Sopenharmony_ciprofile must: support the following features:
8253e5c31af7Sopenharmony_ci
8254e5c31af7Sopenharmony_ci  * <<features-fullDrawIndexUint32, pname:fullDrawIndexUint32>>
8255e5c31af7Sopenharmony_ci  * <<features-imageCubeArray, pname:imageCubeArray>>
8256e5c31af7Sopenharmony_ci  * <<features-independentBlend, pname:independentBlend>>
8257e5c31af7Sopenharmony_ci  * <<features-sampleRateShading, pname:sampleRateShading>>
8258e5c31af7Sopenharmony_ci  * <<features-drawIndirectFirstInstance, pname:drawIndirectFirstInstance>>
8259e5c31af7Sopenharmony_ci  * <<features-depthClamp, pname:depthClamp>>
8260e5c31af7Sopenharmony_ci  * <<features-depthBiasClamp, pname:depthBiasClamp>>
8261e5c31af7Sopenharmony_ci  * <<features-samplerAnisotropy, pname:samplerAnisotropy>>
8262e5c31af7Sopenharmony_ci  * <<features-occlusionQueryPrecise, pname:occlusionQueryPrecise>>
8263e5c31af7Sopenharmony_ci  * <<features-fragmentStoresAndAtomics, pname:fragmentStoresAndAtomics>>
8264e5c31af7Sopenharmony_ci  * <<features-shaderStorageImageExtendedFormats,
8265e5c31af7Sopenharmony_ci    pname:shaderStorageImageExtendedFormats>>
8266e5c31af7Sopenharmony_ci  * <<features-shaderUniformBufferArrayDynamicIndexing,
8267e5c31af7Sopenharmony_ci    pname:shaderUniformBufferArrayDynamicIndexing>>
8268e5c31af7Sopenharmony_ci  * <<features-shaderSampledImageArrayDynamicIndexing,
8269e5c31af7Sopenharmony_ci    pname:shaderSampledImageArrayDynamicIndexing>>
8270e5c31af7Sopenharmony_ci  * <<features-shaderStorageBufferArrayDynamicIndexing,
8271e5c31af7Sopenharmony_ci    pname:shaderStorageBufferArrayDynamicIndexing>>
8272e5c31af7Sopenharmony_ci  * <<features-shaderStorageImageArrayDynamicIndexing,
8273e5c31af7Sopenharmony_ci    pname:shaderStorageImageArrayDynamicIndexing>>
8274e5c31af7Sopenharmony_ci  * <<features-samplerYcbcrConversion, pname:samplerYcbcrConversion>>
8275e5c31af7Sopenharmony_ci  * <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>>
8276e5c31af7Sopenharmony_ci  * <<features-descriptorIndexing, pname:descriptorIndexing>>
8277e5c31af7Sopenharmony_ci  * <<features-shaderUniformTexelBufferArrayDynamicIndexing,
8278e5c31af7Sopenharmony_ci    pname:shaderUniformTexelBufferArrayDynamicIndexing>>
8279e5c31af7Sopenharmony_ci  * <<features-shaderStorageTexelBufferArrayDynamicIndexing,
8280e5c31af7Sopenharmony_ci    pname:shaderStorageTexelBufferArrayDynamicIndexing>>
8281e5c31af7Sopenharmony_ci  * <<features-shaderUniformBufferArrayNonUniformIndexing,
8282e5c31af7Sopenharmony_ci    pname:shaderUniformBufferArrayNonUniformIndexing>>
8283e5c31af7Sopenharmony_ci  * <<features-shaderSampledImageArrayNonUniformIndexing,
8284e5c31af7Sopenharmony_ci    pname:shaderSampledImageArrayNonUniformIndexing>>
8285e5c31af7Sopenharmony_ci  * <<features-shaderStorageBufferArrayNonUniformIndexing,
8286e5c31af7Sopenharmony_ci    pname:shaderStorageBufferArrayNonUniformIndexing>>
8287e5c31af7Sopenharmony_ci  * <<features-shaderStorageImageArrayNonUniformIndexing,
8288e5c31af7Sopenharmony_ci    pname:shaderStorageImageArrayNonUniformIndexing>>
8289e5c31af7Sopenharmony_ci  * <<features-shaderUniformTexelBufferArrayNonUniformIndexing,
8290e5c31af7Sopenharmony_ci    pname:shaderUniformTexelBufferArrayNonUniformIndexing>>
8291e5c31af7Sopenharmony_ci  * <<features-shaderStorageTexelBufferArrayNonUniformIndexing,
8292e5c31af7Sopenharmony_ci    pname:shaderStorageTexelBufferArrayNonUniformIndexing>>
8293e5c31af7Sopenharmony_ci  * <<features-descriptorBindingSampledImageUpdateAfterBind,
8294e5c31af7Sopenharmony_ci    pname:descriptorBindingSampledImageUpdateAfterBind>>
8295e5c31af7Sopenharmony_ci  * <<features-descriptorBindingStorageImageUpdateAfterBind,
8296e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageImageUpdateAfterBind>>
8297e5c31af7Sopenharmony_ci  * <<features-descriptorBindingStorageBufferUpdateAfterBind,
8298e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageBufferUpdateAfterBind>>
8299e5c31af7Sopenharmony_ci  * <<features-descriptorBindingUniformTexelBufferUpdateAfterBind,
8300e5c31af7Sopenharmony_ci    pname:descriptorBindingUniformTexelBufferUpdateAfterBind>>
8301e5c31af7Sopenharmony_ci  * <<features-descriptorBindingStorageTexelBufferUpdateAfterBind,
8302e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageTexelBufferUpdateAfterBind>>
8303e5c31af7Sopenharmony_ci  * <<features-descriptorBindingUpdateUnusedWhilePending,
8304e5c31af7Sopenharmony_ci    pname:descriptorBindingUpdateUnusedWhilePending>>
8305e5c31af7Sopenharmony_ci  * <<features-descriptorBindingPartiallyBound,
8306e5c31af7Sopenharmony_ci    pname:descriptorBindingPartiallyBound>>
8307e5c31af7Sopenharmony_ci  * <<features-descriptorBindingVariableDescriptorCount,
8308e5c31af7Sopenharmony_ci    pname:descriptorBindingVariableDescriptorCount>>
8309e5c31af7Sopenharmony_ci  * <<features-runtimeDescriptorArray, pname:runtimeDescriptorArray>>
8310e5c31af7Sopenharmony_ci  * <<features-scalarBlockLayout, pname:scalarBlockLayout>>
8311e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[]
8312