1e5c31af7Sopenharmony_ci// Copyright 2015-2021 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[width="100%",options="header"]
63e5c31af7Sopenharmony_ci|====
64e5c31af7Sopenharmony_ci| Extension                                 | Feature(s)
65e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
66e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_draw_parameters[]
67e5c31af7Sopenharmony_ci| `apiext:VK_KHR_shader_draw_parameters`       | <<features-shaderDrawParameters,pname:shaderDrawParameters>>
68e5c31af7Sopenharmony_ciendif::VK_KHR_shader_draw_parameters[]
69e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[]
70e5c31af7Sopenharmony_ci| `apiext:VK_KHR_draw_indirect_count`          | <<features-drawIndirectCount,pname:drawIndirectCount>>
71e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[]
72e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_mirror_clamp_to_edge[]
73e5c31af7Sopenharmony_ci| `apiext:VK_KHR_sampler_mirror_clamp_to_edge` | <<features-samplerMirrorClampToEdge,pname:samplerMirrorClampToEdge>>
74e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_mirror_clamp_to_edge[]
75e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[]
76e5c31af7Sopenharmony_ci| `apiext:VK_EXT_descriptor_indexing`          | <<features-descriptorIndexing,pname:descriptorIndexing>>
77e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[]
78e5c31af7Sopenharmony_ciifdef::VK_EXT_sampler_filter_minmax[]
79e5c31af7Sopenharmony_ci| `apiext:VK_EXT_sampler_filter_minmax`        | <<features-samplerFilterMinmax,pname:samplerFilterMinmax>>
80e5c31af7Sopenharmony_ciendif::VK_EXT_sampler_filter_minmax[]
81e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_viewport_index_layer[]
82e5c31af7Sopenharmony_ci| `apiext:VK_EXT_shader_viewport_index_layer`  | <<features-shaderOutputViewportIndex,pname:shaderOutputViewportIndex>>, <<features-shaderOutputLayer,pname:shaderOutputLayer>>
83e5c31af7Sopenharmony_ciendif::VK_EXT_shader_viewport_index_layer[]
84e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
85e5c31af7Sopenharmony_ci|====
86e5c31af7Sopenharmony_ci
87e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFeatures',desc='Reports capabilities of a physical device',type='protos']
88e5c31af7Sopenharmony_ci--
89e5c31af7Sopenharmony_ciTo query supported features, call:
90e5c31af7Sopenharmony_ci
91e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures.txt[]
92e5c31af7Sopenharmony_ci
93e5c31af7Sopenharmony_ci  * pname:physicalDevice is the physical device from which to query the
94e5c31af7Sopenharmony_ci    supported features.
95e5c31af7Sopenharmony_ci  * pname:pFeatures is a pointer to a slink:VkPhysicalDeviceFeatures
96e5c31af7Sopenharmony_ci    structure in which the physical device features are returned.
97e5c31af7Sopenharmony_ci    For each feature, a value of ename:VK_TRUE specifies that the feature is
98e5c31af7Sopenharmony_ci    supported on this physical device, and ename:VK_FALSE specifies that the
99e5c31af7Sopenharmony_ci    feature is not supported.
100e5c31af7Sopenharmony_ci
101e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFeatures.txt[]
102e5c31af7Sopenharmony_ci--
103e5c31af7Sopenharmony_ci
104e5c31af7Sopenharmony_ciFine-grained features used by a logical device must: be enabled at
105e5c31af7Sopenharmony_cisname:VkDevice creation time.
106e5c31af7Sopenharmony_ciIf a feature is enabled that the physical device does not support,
107e5c31af7Sopenharmony_cisname:VkDevice creation will fail and return
108e5c31af7Sopenharmony_ciename:VK_ERROR_FEATURE_NOT_PRESENT.
109e5c31af7Sopenharmony_ci
110e5c31af7Sopenharmony_ciThe fine-grained features are enabled by passing a pointer to the
111e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFeatures structure via the pname:pEnabledFeatures
112e5c31af7Sopenharmony_cimember of the slink:VkDeviceCreateInfo structure that is passed into the
113e5c31af7Sopenharmony_cifname:vkCreateDevice call.
114e5c31af7Sopenharmony_ciIf a member of pname:pEnabledFeatures is set to ename:VK_TRUE or
115e5c31af7Sopenharmony_ciename:VK_FALSE, then the device will be created with the indicated feature
116e5c31af7Sopenharmony_cienabled or disabled, respectively.
117e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
118e5c31af7Sopenharmony_ciFeatures can: also be enabled by using the slink:VkPhysicalDeviceFeatures2
119e5c31af7Sopenharmony_cistructure.
120e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
121e5c31af7Sopenharmony_ci
122e5c31af7Sopenharmony_ciIf an application wishes to enable all features supported by a device, it
123e5c31af7Sopenharmony_cican: simply pass in the sname:VkPhysicalDeviceFeatures structure that was
124e5c31af7Sopenharmony_cipreviously returned by fname:vkGetPhysicalDeviceFeatures.
125e5c31af7Sopenharmony_ciTo disable an individual feature, the application can: set the desired
126e5c31af7Sopenharmony_cimember to ename:VK_FALSE in the same structure.
127e5c31af7Sopenharmony_ciSetting pname:pEnabledFeatures to `NULL`
128e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
129e5c31af7Sopenharmony_ciand not including a slink:VkPhysicalDeviceFeatures2 in the pname:pNext chain
130e5c31af7Sopenharmony_ciof slink:VkDeviceCreateInfo
131e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
132e5c31af7Sopenharmony_ciis equivalent to setting all members of the structure to ename:VK_FALSE.
133e5c31af7Sopenharmony_ci
134e5c31af7Sopenharmony_ci[NOTE]
135e5c31af7Sopenharmony_ci.Note
136e5c31af7Sopenharmony_ci====
137e5c31af7Sopenharmony_ciSome features, such as pname:robustBufferAccess, may: incur a runtime
138e5c31af7Sopenharmony_ciperformance cost.
139e5c31af7Sopenharmony_ciApplication writers should: carefully consider the implications of enabling
140e5c31af7Sopenharmony_ciall supported features.
141e5c31af7Sopenharmony_ci====
142e5c31af7Sopenharmony_ci
143e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
144e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFeatures2',desc='Reports capabilities of a physical device',type='protos']
145e5c31af7Sopenharmony_ci--
146e5c31af7Sopenharmony_ciTo query supported features defined by the core or extensions, call:
147e5c31af7Sopenharmony_ci
148e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
149e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures2.txt[]
150e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
151e5c31af7Sopenharmony_ci
152e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1+VK_KHR_get_physical_device_properties2[or the equivalent command]
153e5c31af7Sopenharmony_ci
154e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[]
155e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures2KHR.txt[]
156e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[]
157e5c31af7Sopenharmony_ci
158e5c31af7Sopenharmony_ci  * pname:physicalDevice is the physical device from which to query the
159e5c31af7Sopenharmony_ci    supported features.
160e5c31af7Sopenharmony_ci  * pname:pFeatures is a pointer to a slink:VkPhysicalDeviceFeatures2
161e5c31af7Sopenharmony_ci    structure in which the physical device features are returned.
162e5c31af7Sopenharmony_ci
163e5c31af7Sopenharmony_ciEach structure in pname:pFeatures and its pname:pNext chain contains members
164e5c31af7Sopenharmony_cicorresponding to fine-grained features.
165e5c31af7Sopenharmony_cifname:vkGetPhysicalDeviceFeatures2 writes each member to a boolean value
166e5c31af7Sopenharmony_ciindicating whether that feature is supported.
167e5c31af7Sopenharmony_ci
168e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFeatures2.txt[]
169e5c31af7Sopenharmony_ci--
170e5c31af7Sopenharmony_ci
171e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFeatures2',desc='Structure describing the fine-grained features that can be supported by an implementation',type='structs']
172e5c31af7Sopenharmony_ci--
173e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFeatures2 structure is defined as:
174e5c31af7Sopenharmony_ci
175e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures2.txt[]
176e5c31af7Sopenharmony_ci
177e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[]
178e5c31af7Sopenharmony_cior the equivalent
179e5c31af7Sopenharmony_ci
180e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures2KHR.txt[]
181e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[]
182e5c31af7Sopenharmony_ci
183e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
184e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
185e5c31af7Sopenharmony_ci    structure.
186e5c31af7Sopenharmony_ci  * pname:features is a slink:VkPhysicalDeviceFeatures structure describing
187e5c31af7Sopenharmony_ci    the fine-grained features of the Vulkan 1.0 API.
188e5c31af7Sopenharmony_ci
189e5c31af7Sopenharmony_ciThe pname:pNext chain of this structure is used to extend the structure with
190e5c31af7Sopenharmony_cifeatures defined by extensions.
191e5c31af7Sopenharmony_ciThis structure can: be used in flink:vkGetPhysicalDeviceFeatures2 or can: be
192e5c31af7Sopenharmony_ciincluded in the pname:pNext chain of a slink:VkDeviceCreateInfo structure,
193e5c31af7Sopenharmony_ciin which case it controls which features are enabled in the device in lieu
194e5c31af7Sopenharmony_ciof pname:pEnabledFeatures.
195e5c31af7Sopenharmony_ci
196e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFeatures2.txt[]
197e5c31af7Sopenharmony_ci--
198e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
199e5c31af7Sopenharmony_ci
200e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFeatures',desc='Structure describing the fine-grained features that can be supported by an implementation',type='structs']
201e5c31af7Sopenharmony_ci--
202e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFeatures structure is defined as:
203e5c31af7Sopenharmony_ci
204e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures.txt[]
205e5c31af7Sopenharmony_ci
206e5c31af7Sopenharmony_ciThis structure describes the following features:
207e5c31af7Sopenharmony_ci
208e5c31af7Sopenharmony_ci  * [[features-robustBufferAccess]] pname:robustBufferAccess specifies that
209e5c31af7Sopenharmony_ci    accesses to buffers are bounds-checked against the range of the buffer
210e5c31af7Sopenharmony_ci    descriptor (as determined by sname:VkDescriptorBufferInfo::pname:range,
211e5c31af7Sopenharmony_ci    slink:VkBufferViewCreateInfo::pname:range, or the size of the buffer).
212e5c31af7Sopenharmony_ci    Out of bounds accesses must: not cause application termination, and the
213e5c31af7Sopenharmony_ci    effects of shader loads, stores, and atomics must: conform to an
214e5c31af7Sopenharmony_ci    implementation-dependent behavior as described below.
215e5c31af7Sopenharmony_ci  ** A buffer access is considered to be out of bounds if any of the
216e5c31af7Sopenharmony_ci     following are true:
217e5c31af7Sopenharmony_ci  *** The pointer was formed by code:OpImageTexelPointer and the coordinate
218e5c31af7Sopenharmony_ci      is less than zero or greater than or equal to the number of whole
219e5c31af7Sopenharmony_ci      elements in the bound range.
220e5c31af7Sopenharmony_ci  *** The pointer was not formed by code:OpImageTexelPointer and the object
221e5c31af7Sopenharmony_ci      pointed to is not wholly contained within the bound range.
222e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]
223e5c31af7Sopenharmony_ci      This includes accesses performed via _variable pointers_ where the
224e5c31af7Sopenharmony_ci      buffer descriptor being accessed cannot be statically determined.
225e5c31af7Sopenharmony_ci      Uninitialized pointers and pointers equal to code:OpConstantNull are
226e5c31af7Sopenharmony_ci      treated as pointing to a zero-sized object, so all accesses through
227e5c31af7Sopenharmony_ci      such pointers are considered to be out of bounds.
228e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_variable_pointers[]
229e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
230e5c31af7Sopenharmony_ci      Buffer accesses through buffer device addresses are not
231e5c31af7Sopenharmony_ci      bounds-checked.
232e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
233e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[]
234e5c31af7Sopenharmony_ci      If the
235e5c31af7Sopenharmony_ci      <<features-cooperativeMatrixRobustBufferAccess,pname:cooperativeMatrixRobustBufferAccess>>
236e5c31af7Sopenharmony_ci      feature is not enabled, then accesses using
237e5c31af7Sopenharmony_ci      code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV
238e5c31af7Sopenharmony_ci      may: not be bounds-checked.
239e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[]
240e5c31af7Sopenharmony_ci+
241e5c31af7Sopenharmony_ci[NOTE]
242e5c31af7Sopenharmony_ci.Note
243e5c31af7Sopenharmony_ci====
244e5c31af7Sopenharmony_ciIf a SPIR-V code:OpLoad instruction loads a structure and the tail end of
245e5c31af7Sopenharmony_cithe structure is out of bounds, then all members of the structure are
246e5c31af7Sopenharmony_ciconsidered out of bounds even if the members at the end are not statically
247e5c31af7Sopenharmony_ciused.
248e5c31af7Sopenharmony_ci====
249e5c31af7Sopenharmony_ci
250e5c31af7Sopenharmony_ci  *** If
251e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
252e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2,pname:robustBufferAccess2>> is not
253e5c31af7Sopenharmony_ci      enabled and
254e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
255e5c31af7Sopenharmony_ci      any buffer access is determined to be out of bounds, then any other
256e5c31af7Sopenharmony_ci      access of the same type (load, store, or atomic) to the same buffer
257e5c31af7Sopenharmony_ci      that accesses an address less than 16 bytes away from the out of
258e5c31af7Sopenharmony_ci      bounds address may: also be considered out of bounds.
259e5c31af7Sopenharmony_ci  *** If the access is a load that reads from the same memory locations as a
260e5c31af7Sopenharmony_ci      prior store in the same shader invocation, with no other intervening
261e5c31af7Sopenharmony_ci      accesses to the same memory locations in that shader invocation, then
262e5c31af7Sopenharmony_ci      the result of the load may: be the value stored by the store
263e5c31af7Sopenharmony_ci      instruction, even if the access is out of bounds.
264e5c31af7Sopenharmony_ci      If the load is code:Volatile, then an out of bounds load must: return
265e5c31af7Sopenharmony_ci      the appropriate out of bounds value.
266e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
267e5c31af7Sopenharmony_ci  ** Accesses to descriptors written with a dlink:VK_NULL_HANDLE resource or
268e5c31af7Sopenharmony_ci     view are not considered to be out of bounds.
269e5c31af7Sopenharmony_ci     Instead, each type of descriptor access defines a specific behavior for
270e5c31af7Sopenharmony_ci     accesses to a null descriptor.
271e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
272e5c31af7Sopenharmony_ci  ** Out-of-bounds buffer loads will return any of the following values:
273e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
274e5c31af7Sopenharmony_ci  *** If the access is to a uniform buffer and
275e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2,pname:robustBufferAccess2>> is enabled,
276e5c31af7Sopenharmony_ci      loads of offsets between the end of the descriptor range and the end
277e5c31af7Sopenharmony_ci      of the descriptor range rounded up to a multiple of
278e5c31af7Sopenharmony_ci      <<limits-robustUniformBufferAccessSizeAlignment,robustUniformBufferAccessSizeAlignment>>
279e5c31af7Sopenharmony_ci      bytes must: return either zero values or the contents of the memory at
280e5c31af7Sopenharmony_ci      the offset being loaded.
281e5c31af7Sopenharmony_ci      Loads of offsets past the descriptor range rounded up to a multiple of
282e5c31af7Sopenharmony_ci      <<limits-robustUniformBufferAccessSizeAlignment,robustUniformBufferAccessSizeAlignment>>
283e5c31af7Sopenharmony_ci      bytes must: return zero values.
284e5c31af7Sopenharmony_ci  *** If the access is to a storage buffer and
285e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2,pname:robustBufferAccess2>> is enabled,
286e5c31af7Sopenharmony_ci      loads of offsets between the end of the descriptor range and the end
287e5c31af7Sopenharmony_ci      of the descriptor range rounded up to a multiple of
288e5c31af7Sopenharmony_ci      <<limits-robustStorageBufferAccessSizeAlignment,robustStorageBufferAccessSizeAlignment>>
289e5c31af7Sopenharmony_ci      bytes must: return either zero values or the contents of the memory at
290e5c31af7Sopenharmony_ci      the offset being loaded.
291e5c31af7Sopenharmony_ci      Loads of offsets past the descriptor range rounded up to a multiple of
292e5c31af7Sopenharmony_ci      <<limits-robustStorageBufferAccessSizeAlignment,robustStorageBufferAccessSizeAlignment>>
293e5c31af7Sopenharmony_ci      bytes must: return zero values.
294e5c31af7Sopenharmony_ci      Similarly, stores to addresses between the end of the descriptor range
295e5c31af7Sopenharmony_ci      and the end of the descriptor range rounded up to a multiple of
296e5c31af7Sopenharmony_ci      <<limits-robustStorageBufferAccessSizeAlignment,robustStorageBufferAccessSizeAlignment>>
297e5c31af7Sopenharmony_ci      bytes may: be discarded.
298e5c31af7Sopenharmony_ci  *** Non-atomic accesses to storage buffers that are a multiple of 32 bits
299e5c31af7Sopenharmony_ci      may: be decomposed into 32-bit accesses that are individually
300e5c31af7Sopenharmony_ci      bounds-checked.
301e5c31af7Sopenharmony_ci  *** If the access is to an index buffer and
302e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2,pname:robustBufferAccess2>> is enabled,
303e5c31af7Sopenharmony_ci      zero values must: be returned.
304e5c31af7Sopenharmony_ci  *** If the access is to a uniform texel buffer or storage texel buffer and
305e5c31af7Sopenharmony_ci      <<features-robustBufferAccess2,pname:robustBufferAccess2>> is enabled,
306e5c31af7Sopenharmony_ci      zero values must: be returned, and then
307e5c31af7Sopenharmony_ci      <<textures-conversion-to-rgba,Conversion to RGBA>> is applied based on
308e5c31af7Sopenharmony_ci      the buffer view's format.
309e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
310e5c31af7Sopenharmony_ci  *** Values from anywhere within the memory range(s) bound to the buffer
311e5c31af7Sopenharmony_ci      (possibly including bytes of memory past the end of the buffer, up to
312e5c31af7Sopenharmony_ci      the end of the bound range).
313e5c31af7Sopenharmony_ci  *** Zero values, or [eq]#(0,0,0,x)# vectors for vector reads where x is a
314e5c31af7Sopenharmony_ci      valid value represented in the type of the vector components and may:
315e5c31af7Sopenharmony_ci      be any of:
316e5c31af7Sopenharmony_ci  **** 0, 1, or the maximum representable positive integer value, for signed
317e5c31af7Sopenharmony_ci       or unsigned integer components
318e5c31af7Sopenharmony_ci  **** 0.0 or 1.0, for floating-point components
319e5c31af7Sopenharmony_ci  ** Out-of-bounds writes may: modify values within the memory range(s)
320e5c31af7Sopenharmony_ci     bound to the buffer, but must: not modify any other memory.
321e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
322e5c31af7Sopenharmony_ci  *** If <<features-robustBufferAccess2,pname:robustBufferAccess2>> is
323e5c31af7Sopenharmony_ci      enabled, out of bounds writes must: not modify any memory.
324e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
325e5c31af7Sopenharmony_ci  ** Out-of-bounds atomics may: modify values within the memory range(s)
326e5c31af7Sopenharmony_ci     bound to the buffer, but must: not modify any other memory, and return
327e5c31af7Sopenharmony_ci     an undefined: value.
328e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
329e5c31af7Sopenharmony_ci  *** If <<features-robustBufferAccess2,pname:robustBufferAccess2>> is
330e5c31af7Sopenharmony_ci      enabled, out of bounds atomics must: not modify any memory, and return
331e5c31af7Sopenharmony_ci      an undefined: value.
332e5c31af7Sopenharmony_ci  ** If <<features-robustBufferAccess2,pname:robustBufferAccess2>> is
333e5c31af7Sopenharmony_ci     disabled, vertex
334e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
335e5c31af7Sopenharmony_ciifndef::VK_EXT_robustness2[]
336e5c31af7Sopenharmony_ci  ** Vertex
337e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
338e5c31af7Sopenharmony_ci     input attributes are considered out of bounds if the offset of the
339e5c31af7Sopenharmony_ci     attribute in the bound vertex buffer range plus the size of the
340e5c31af7Sopenharmony_ci     attribute is greater than either:
341e5c31af7Sopenharmony_ci+
342e5c31af7Sopenharmony_ci  *** code:vertexBufferRangeSize, if [eq]#code:bindingStride == 0#; or
343e5c31af7Sopenharmony_ci  *** [eq]#(code:vertexBufferRangeSize - (code:vertexBufferRangeSize %
344e5c31af7Sopenharmony_ci      code:bindingStride))#
345e5c31af7Sopenharmony_ci+
346e5c31af7Sopenharmony_ciwhere code:vertexBufferRangeSize is the byte size of the memory range bound
347e5c31af7Sopenharmony_cito the vertex buffer binding and code:bindingStride is the byte stride of
348e5c31af7Sopenharmony_cithe corresponding vertex input binding.
349e5c31af7Sopenharmony_ciFurther, if any vertex input attribute using a specific vertex input binding
350e5c31af7Sopenharmony_ciis out of bounds, then all vertex input attributes using that vertex input
351e5c31af7Sopenharmony_cibinding for that vertex shader invocation are considered out of bounds.
352e5c31af7Sopenharmony_ci  *** If a vertex input attribute is out of bounds, it will be assigned one
353e5c31af7Sopenharmony_ci      of the following values:
354e5c31af7Sopenharmony_ci  **** Values from anywhere within the memory range(s) bound to the buffer,
355e5c31af7Sopenharmony_ci       converted according to the format of the attribute.
356e5c31af7Sopenharmony_ci  **** Zero values, format converted according to the format of the
357e5c31af7Sopenharmony_ci       attribute.
358e5c31af7Sopenharmony_ci  **** Zero values, or [eq]#(0,0,0,x)# vectors, as described above.
359e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
360e5c31af7Sopenharmony_ci  ** If <<features-robustBufferAccess2,pname:robustBufferAccess2>> is
361e5c31af7Sopenharmony_ci     enabled, vertex input attributes are considered out of bounds if the
362e5c31af7Sopenharmony_ci     offset of the attribute in the bound vertex buffer range plus the size
363e5c31af7Sopenharmony_ci     of the attribute is greater than the byte size of the memory range
364e5c31af7Sopenharmony_ci     bound to the vertex buffer binding.
365e5c31af7Sopenharmony_ci  *** If a vertex input attribute is out of bounds, the
366e5c31af7Sopenharmony_ci      <<fxvertex-input-extraction,raw data>> extracted are zero values, and
367e5c31af7Sopenharmony_ci      missing G, B, or A components are <<fxvertex-input-extraction,filled
368e5c31af7Sopenharmony_ci      with [eq]#(0,0,1)#>>.
369e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
370e5c31af7Sopenharmony_ci  ** If pname:robustBufferAccess is not enabled, applications must: not
371e5c31af7Sopenharmony_ci     perform out of bounds accesses.
372e5c31af7Sopenharmony_ci  * [[features-fullDrawIndexUint32]] pname:fullDrawIndexUint32 specifies the
373e5c31af7Sopenharmony_ci    full 32-bit range of indices is supported for indexed draw calls when
374e5c31af7Sopenharmony_ci    using a elink:VkIndexType of ename:VK_INDEX_TYPE_UINT32.
375e5c31af7Sopenharmony_ci    pname:maxDrawIndexedIndexValue is the maximum index value that may: be
376e5c31af7Sopenharmony_ci    used (aside from the primitive restart index, which is always 2^32^-1
377e5c31af7Sopenharmony_ci    when the elink:VkIndexType is ename:VK_INDEX_TYPE_UINT32).
378e5c31af7Sopenharmony_ci    If this feature is supported, pname:maxDrawIndexedIndexValue must: be
379e5c31af7Sopenharmony_ci    2^32^-1; otherwise it must: be no smaller than 2^24^-1.
380e5c31af7Sopenharmony_ci    See <<limits-maxDrawIndexedIndexValue,maxDrawIndexedIndexValue>>.
381e5c31af7Sopenharmony_ci  * [[features-imageCubeArray]] pname:imageCubeArray specifies whether image
382e5c31af7Sopenharmony_ci    views with a elink:VkImageViewType of
383e5c31af7Sopenharmony_ci    ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY can: be created, and that the
384e5c31af7Sopenharmony_ci    corresponding code:SampledCubeArray and code:ImageCubeArray SPIR-V
385e5c31af7Sopenharmony_ci    capabilities can: be used in shader code.
386e5c31af7Sopenharmony_ci  * [[features-independentBlend]] pname:independentBlend specifies whether
387e5c31af7Sopenharmony_ci    the sname:VkPipelineColorBlendAttachmentState settings are controlled
388e5c31af7Sopenharmony_ci    independently per-attachment.
389e5c31af7Sopenharmony_ci    If this feature is not enabled, the
390e5c31af7Sopenharmony_ci    sname:VkPipelineColorBlendAttachmentState settings for all color
391e5c31af7Sopenharmony_ci    attachments must: be identical.
392e5c31af7Sopenharmony_ci    Otherwise, a different sname:VkPipelineColorBlendAttachmentState can: be
393e5c31af7Sopenharmony_ci    provided for each bound color attachment.
394e5c31af7Sopenharmony_ci  * [[features-geometryShader]] pname:geometryShader specifies whether
395e5c31af7Sopenharmony_ci    geometry shaders are supported.
396e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_SHADER_STAGE_GEOMETRY_BIT
397e5c31af7Sopenharmony_ci    and ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT enum values must: not be
398e5c31af7Sopenharmony_ci    used.
399e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
400e5c31af7Sopenharmony_ci    code:Geometry capability.
401e5c31af7Sopenharmony_ci  * [[features-tessellationShader]] pname:tessellationShader specifies
402e5c31af7Sopenharmony_ci    whether tessellation control and evaluation shaders are supported.
403e5c31af7Sopenharmony_ci    If this feature is not enabled, the
404e5c31af7Sopenharmony_ci    ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
405e5c31af7Sopenharmony_ci    ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
406e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
407e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, and
408e5c31af7Sopenharmony_ci    ename:VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO enum
409e5c31af7Sopenharmony_ci    values must: not be used.
410e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
411e5c31af7Sopenharmony_ci    code:Tessellation capability.
412e5c31af7Sopenharmony_ci  * [[features-sampleRateShading]] pname:sampleRateShading specifies whether
413e5c31af7Sopenharmony_ci    <<primsrast-sampleshading,Sample Shading>> and multisample interpolation
414e5c31af7Sopenharmony_ci    are supported.
415e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:sampleShadingEnable member of
416e5c31af7Sopenharmony_ci    the slink:VkPipelineMultisampleStateCreateInfo structure must: be set to
417e5c31af7Sopenharmony_ci    ename:VK_FALSE and the pname:minSampleShading member is ignored.
418e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
419e5c31af7Sopenharmony_ci    code:SampleRateShading capability.
420e5c31af7Sopenharmony_ci  * [[features-dualSrcBlend]] pname:dualSrcBlend specifies whether blend
421e5c31af7Sopenharmony_ci    operations which take two sources are supported.
422e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_BLEND_FACTOR_SRC1_COLOR,
423e5c31af7Sopenharmony_ci    ename:VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
424e5c31af7Sopenharmony_ci    ename:VK_BLEND_FACTOR_SRC1_ALPHA, and
425e5c31af7Sopenharmony_ci    ename:VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA enum values must: not be used
426e5c31af7Sopenharmony_ci    as source or destination blending factors.
427e5c31af7Sopenharmony_ci    See <<framebuffer-dsb>>.
428e5c31af7Sopenharmony_ci  * [[features-logicOp]] pname:logicOp specifies whether logic operations
429e5c31af7Sopenharmony_ci    are supported.
430e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:logicOpEnable member of the
431e5c31af7Sopenharmony_ci    slink:VkPipelineColorBlendStateCreateInfo structure must: be set to
432e5c31af7Sopenharmony_ci    ename:VK_FALSE, and the pname:logicOp member is ignored.
433e5c31af7Sopenharmony_ci  * [[features-multiDrawIndirect]] pname:multiDrawIndirect specifies whether
434e5c31af7Sopenharmony_ci    multiple draw indirect is supported.
435e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:drawCount parameter to the
436e5c31af7Sopenharmony_ci    fname:vkCmdDrawIndirect and fname:vkCmdDrawIndexedIndirect commands
437e5c31af7Sopenharmony_ci    must: be 0 or 1.
438e5c31af7Sopenharmony_ci    The pname:maxDrawIndirectCount member of the
439e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceLimits structure must: also be 1 if this feature
440e5c31af7Sopenharmony_ci    is not supported.
441e5c31af7Sopenharmony_ci    See <<limits-maxDrawIndirectCount,maxDrawIndirectCount>>.
442e5c31af7Sopenharmony_ci  * [[features-drawIndirectFirstInstance]] pname:drawIndirectFirstInstance
443e5c31af7Sopenharmony_ci    specifies whether indirect drawing calls support the pname:firstInstance
444e5c31af7Sopenharmony_ci    parameter.
445e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:firstInstance member of all
446e5c31af7Sopenharmony_ci    sname:VkDrawIndirectCommand and sname:VkDrawIndexedIndirectCommand
447e5c31af7Sopenharmony_ci    structures that are provided to the fname:vkCmdDrawIndirect and
448e5c31af7Sopenharmony_ci    fname:vkCmdDrawIndexedIndirect commands must: be 0.
449e5c31af7Sopenharmony_ci  * [[features-depthClamp]] pname:depthClamp specifies whether depth
450e5c31af7Sopenharmony_ci    clamping is supported.
451e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:depthClampEnable member of the
452e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo structure must: be set to
453e5c31af7Sopenharmony_ci    ename:VK_FALSE.
454e5c31af7Sopenharmony_ci    Otherwise, setting pname:depthClampEnable to ename:VK_TRUE will enable
455e5c31af7Sopenharmony_ci    depth clamping.
456e5c31af7Sopenharmony_ci  * [[features-depthBiasClamp]] pname:depthBiasClamp specifies whether depth
457e5c31af7Sopenharmony_ci    bias clamping is supported.
458e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:depthBiasClamp member of the
459e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo structure must: be set to
460e5c31af7Sopenharmony_ci    0.0 unless the ename:VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state is
461e5c31af7Sopenharmony_ci    enabled, and the pname:depthBiasClamp parameter to
462e5c31af7Sopenharmony_ci    fname:vkCmdSetDepthBias must: be set to 0.0.
463e5c31af7Sopenharmony_ci  * [[features-fillModeNonSolid]] pname:fillModeNonSolid specifies whether
464e5c31af7Sopenharmony_ci    point and wireframe fill modes are supported.
465e5c31af7Sopenharmony_ci    If this feature is not enabled, the ename:VK_POLYGON_MODE_POINT and
466e5c31af7Sopenharmony_ci    ename:VK_POLYGON_MODE_LINE enum values must: not be used.
467e5c31af7Sopenharmony_ci  * [[features-depthBounds]] pname:depthBounds specifies whether depth
468e5c31af7Sopenharmony_ci    bounds tests are supported.
469e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:depthBoundsTestEnable member
470e5c31af7Sopenharmony_ci    of the slink:VkPipelineDepthStencilStateCreateInfo structure must: be
471e5c31af7Sopenharmony_ci    set to ename:VK_FALSE.
472e5c31af7Sopenharmony_ci    When pname:depthBoundsTestEnable is set to ename:VK_FALSE, the
473e5c31af7Sopenharmony_ci    pname:minDepthBounds and pname:maxDepthBounds members of the
474e5c31af7Sopenharmony_ci    slink:VkPipelineDepthStencilStateCreateInfo structure are ignored.
475e5c31af7Sopenharmony_ci  * [[features-wideLines]] pname:wideLines specifies whether lines with
476e5c31af7Sopenharmony_ci    width other than 1.0 are supported.
477e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:lineWidth member of the
478e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo structure must: be set to
479e5c31af7Sopenharmony_ci    1.0 unless the ename:VK_DYNAMIC_STATE_LINE_WIDTH dynamic state is
480e5c31af7Sopenharmony_ci    enabled, and the pname:lineWidth parameter to fname:vkCmdSetLineWidth
481e5c31af7Sopenharmony_ci    must: be set to 1.0.
482e5c31af7Sopenharmony_ci    When this feature is supported, the range and granularity of supported
483e5c31af7Sopenharmony_ci    line widths are indicated by the pname:lineWidthRange and
484e5c31af7Sopenharmony_ci    pname:lineWidthGranularity members of the sname:VkPhysicalDeviceLimits
485e5c31af7Sopenharmony_ci    structure, respectively.
486e5c31af7Sopenharmony_ci  * [[features-largePoints]] pname:largePoints specifies whether points with
487e5c31af7Sopenharmony_ci    size greater than 1.0 are supported.
488e5c31af7Sopenharmony_ci    If this feature is not enabled, only a point size of 1.0 written by a
489e5c31af7Sopenharmony_ci    shader is supported.
490e5c31af7Sopenharmony_ci    The range and granularity of supported point sizes are indicated by the
491e5c31af7Sopenharmony_ci    pname:pointSizeRange and pname:pointSizeGranularity members of the
492e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceLimits structure, respectively.
493e5c31af7Sopenharmony_ci  * [[features-alphaToOne]] pname:alphaToOne specifies whether the
494e5c31af7Sopenharmony_ci    implementation is able to replace the alpha value of the fragment shader
495e5c31af7Sopenharmony_ci    color output in the <<fragops-covg, Multisample Coverage>> fragment
496e5c31af7Sopenharmony_ci    operation.
497e5c31af7Sopenharmony_ci    If this feature is not enabled, then the pname:alphaToOneEnable member
498e5c31af7Sopenharmony_ci    of the slink:VkPipelineMultisampleStateCreateInfo structure must: be set
499e5c31af7Sopenharmony_ci    to ename:VK_FALSE.
500e5c31af7Sopenharmony_ci    Otherwise setting pname:alphaToOneEnable to ename:VK_TRUE will enable
501e5c31af7Sopenharmony_ci    alpha-to-one behavior.
502e5c31af7Sopenharmony_ci  * [[features-multiViewport]] pname:multiViewport specifies whether more
503e5c31af7Sopenharmony_ci    than one viewport is supported.
504e5c31af7Sopenharmony_ci    If this feature is not enabled:
505e5c31af7Sopenharmony_ci  ** The pname:viewportCount and pname:scissorCount members of the
506e5c31af7Sopenharmony_ci     slink:VkPipelineViewportStateCreateInfo structure must: be set to 1.
507e5c31af7Sopenharmony_ci  ** The pname:firstViewport and pname:viewportCount parameters to the
508e5c31af7Sopenharmony_ci     fname:vkCmdSetViewport command must: be set to 0 and 1, respectively.
509e5c31af7Sopenharmony_ci  ** The pname:firstScissor and pname:scissorCount parameters to the
510e5c31af7Sopenharmony_ci     fname:vkCmdSetScissor command must: be set to 0 and 1, respectively.
511e5c31af7Sopenharmony_ciifdef::VK_NV_scissor_exclusive[]
512e5c31af7Sopenharmony_ci  ** The pname:exclusiveScissorCount member of the
513e5c31af7Sopenharmony_ci     slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV structure
514e5c31af7Sopenharmony_ci     must: be set to 0 or 1.
515e5c31af7Sopenharmony_ci  ** The pname:firstExclusiveScissor and pname:exclusiveScissorCount
516e5c31af7Sopenharmony_ci     parameters to the fname:vkCmdSetExclusiveScissorNV command must: be set
517e5c31af7Sopenharmony_ci     to 0 and 1, respectively.
518e5c31af7Sopenharmony_ciendif::VK_NV_scissor_exclusive[]
519e5c31af7Sopenharmony_ci  * [[features-samplerAnisotropy]] pname:samplerAnisotropy specifies whether
520e5c31af7Sopenharmony_ci    anisotropic filtering is supported.
521e5c31af7Sopenharmony_ci    If this feature is not enabled, the pname:anisotropyEnable member of the
522e5c31af7Sopenharmony_ci    slink:VkSamplerCreateInfo structure must: be ename:VK_FALSE.
523e5c31af7Sopenharmony_ci  * [[features-textureCompressionETC2]] pname:textureCompressionETC2
524e5c31af7Sopenharmony_ci    specifies whether all of the ETC2 and EAC compressed texture formats are
525e5c31af7Sopenharmony_ci    supported.
526e5c31af7Sopenharmony_ci    If this feature is enabled, then the
527e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
528e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
529e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
530e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
531e5c31af7Sopenharmony_ci+
532e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
533e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
534e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
535e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
536e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
537e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
538e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_EAC_R11_UNORM_BLOCK
539e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_EAC_R11_SNORM_BLOCK
540e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_EAC_R11G11_UNORM_BLOCK
541e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_EAC_R11G11_SNORM_BLOCK
542e5c31af7Sopenharmony_ci+
543e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled,
544e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
545e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
546e5c31af7Sopenharmony_cisupported properties of individual formats as normal.
547e5c31af7Sopenharmony_ci
548e5c31af7Sopenharmony_ci  * [[features-textureCompressionASTC_LDR]] pname:textureCompressionASTC_LDR
549e5c31af7Sopenharmony_ci    specifies whether all of the ASTC LDR compressed texture formats are
550e5c31af7Sopenharmony_ci    supported.
551e5c31af7Sopenharmony_ci    If this feature is enabled, then the
552e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
553e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
554e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
555e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
556e5c31af7Sopenharmony_ci+
557e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK
558e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK
559e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK
560e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK
561e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK
562e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK
563e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK
564e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK
565e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK
566e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK
567e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK
568e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK
569e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK
570e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK
571e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK
572e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK
573e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK
574e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK
575e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK
576e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK
577e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK
578e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK
579e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK
580e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK
581e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK
582e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK
583e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK
584e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK
585e5c31af7Sopenharmony_ci+
586e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled,
587e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
588e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
589e5c31af7Sopenharmony_cisupported properties of individual formats as normal.
590e5c31af7Sopenharmony_ci
591e5c31af7Sopenharmony_ci  * [[features-textureCompressionBC]] pname:textureCompressionBC specifies
592e5c31af7Sopenharmony_ci    whether all of the BC compressed texture formats are supported.
593e5c31af7Sopenharmony_ci    If this feature is enabled, then the
594e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
595e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
596e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
597e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
598e5c31af7Sopenharmony_ci+
599e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK
600e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK
601e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK
602e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK
603e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC2_UNORM_BLOCK
604e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC2_SRGB_BLOCK
605e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC3_UNORM_BLOCK
606e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC3_SRGB_BLOCK
607e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC4_UNORM_BLOCK
608e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC4_SNORM_BLOCK
609e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC5_UNORM_BLOCK
610e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC5_SNORM_BLOCK
611e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC6H_UFLOAT_BLOCK
612e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC6H_SFLOAT_BLOCK
613e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC7_UNORM_BLOCK
614e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_BC7_SRGB_BLOCK
615e5c31af7Sopenharmony_ci+
616e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled,
617e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
618e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
619e5c31af7Sopenharmony_cisupported properties of individual formats as normal.
620e5c31af7Sopenharmony_ci
621e5c31af7Sopenharmony_ci  * [[features-occlusionQueryPrecise]] pname:occlusionQueryPrecise specifies
622e5c31af7Sopenharmony_ci    whether occlusion queries returning actual sample counts are supported.
623e5c31af7Sopenharmony_ci    Occlusion queries are created in a sname:VkQueryPool by specifying the
624e5c31af7Sopenharmony_ci    pname:queryType of ename:VK_QUERY_TYPE_OCCLUSION in the
625e5c31af7Sopenharmony_ci    slink:VkQueryPoolCreateInfo structure which is passed to
626e5c31af7Sopenharmony_ci    fname:vkCreateQueryPool.
627e5c31af7Sopenharmony_ci    If this feature is enabled, queries of this type can: enable
628e5c31af7Sopenharmony_ci    ename:VK_QUERY_CONTROL_PRECISE_BIT in the pname:flags parameter to
629e5c31af7Sopenharmony_ci    fname:vkCmdBeginQuery.
630e5c31af7Sopenharmony_ci    If this feature is not supported, the implementation supports only
631e5c31af7Sopenharmony_ci    boolean occlusion queries.
632e5c31af7Sopenharmony_ci    When any samples are passed, boolean queries will return a non-zero
633e5c31af7Sopenharmony_ci    result value, otherwise a result value of zero is returned.
634e5c31af7Sopenharmony_ci    When this feature is enabled and ename:VK_QUERY_CONTROL_PRECISE_BIT is
635e5c31af7Sopenharmony_ci    set, occlusion queries will report the actual number of samples passed.
636e5c31af7Sopenharmony_ci  * [[features-pipelineStatisticsQuery]] pname:pipelineStatisticsQuery
637e5c31af7Sopenharmony_ci    specifies whether the pipeline statistics queries are supported.
638e5c31af7Sopenharmony_ci    If this feature is not enabled, queries of type
639e5c31af7Sopenharmony_ci    ename:VK_QUERY_TYPE_PIPELINE_STATISTICS cannot: be created, and none of
640e5c31af7Sopenharmony_ci    the elink:VkQueryPipelineStatisticFlagBits bits can: be set in the
641e5c31af7Sopenharmony_ci    pname:pipelineStatistics member of the slink:VkQueryPoolCreateInfo
642e5c31af7Sopenharmony_ci    structure.
643e5c31af7Sopenharmony_ci  * [[features-vertexPipelineStoresAndAtomics]]
644e5c31af7Sopenharmony_ci    pname:vertexPipelineStoresAndAtomics specifies whether storage buffers
645e5c31af7Sopenharmony_ci    and images support stores and atomic operations in the vertex,
646e5c31af7Sopenharmony_ci    tessellation, and geometry shader stages.
647e5c31af7Sopenharmony_ci    If this feature is not enabled, all storage image, storage texel buffer,
648e5c31af7Sopenharmony_ci    and storage buffer variables used by these stages in shader modules
649e5c31af7Sopenharmony_ci    must: be decorated with the code:NonWritable decoration (or the
650e5c31af7Sopenharmony_ci    code:readonly memory qualifier in GLSL).
651e5c31af7Sopenharmony_ci  * [[features-fragmentStoresAndAtomics]] pname:fragmentStoresAndAtomics
652e5c31af7Sopenharmony_ci    specifies whether storage buffers and images support stores and atomic
653e5c31af7Sopenharmony_ci    operations in the fragment shader stage.
654e5c31af7Sopenharmony_ci    If this feature is not enabled, all storage image, storage texel buffer,
655e5c31af7Sopenharmony_ci    and storage buffer variables used by the fragment stage in shader
656e5c31af7Sopenharmony_ci    modules must: be decorated with the code:NonWritable decoration (or the
657e5c31af7Sopenharmony_ci    code:readonly memory qualifier in GLSL).
658e5c31af7Sopenharmony_ci  * [[features-shaderTessellationAndGeometryPointSize]]
659e5c31af7Sopenharmony_ci    pname:shaderTessellationAndGeometryPointSize specifies whether the
660e5c31af7Sopenharmony_ci    code:PointSize built-in decoration is available in the tessellation
661e5c31af7Sopenharmony_ci    control, tessellation evaluation, and geometry shader stages.
662e5c31af7Sopenharmony_ci    If this feature is not enabled, members decorated with the
663e5c31af7Sopenharmony_ci    code:PointSize built-in decoration must: not be read from or written to
664e5c31af7Sopenharmony_ci    and all points written from a tessellation or geometry shader will have
665e5c31af7Sopenharmony_ci    a size of 1.0.
666e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
667e5c31af7Sopenharmony_ci    code:TessellationPointSize capability for tessellation control and
668e5c31af7Sopenharmony_ci    evaluation shaders, or if the shader modules can: declare the
669e5c31af7Sopenharmony_ci    code:GeometryPointSize capability for geometry shaders.
670e5c31af7Sopenharmony_ci    An implementation supporting this feature must: also support one or both
671e5c31af7Sopenharmony_ci    of the <<features-tessellationShader,pname:tessellationShader>> or
672e5c31af7Sopenharmony_ci    <<features-geometryShader,pname:geometryShader>> features.
673e5c31af7Sopenharmony_ci  * [[features-shaderImageGatherExtended]] pname:shaderImageGatherExtended
674e5c31af7Sopenharmony_ci    specifies whether the extended set of image gather instructions are
675e5c31af7Sopenharmony_ci    available in shader code.
676e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:OpImage*Gather instructions do
677e5c31af7Sopenharmony_ci    not support the code:Offset and code:ConstOffsets operands.
678e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
679e5c31af7Sopenharmony_ci    code:ImageGatherExtended capability.
680e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageExtendedFormats]]
681e5c31af7Sopenharmony_ci    pname:shaderStorageImageExtendedFormats specifies whether all the
682e5c31af7Sopenharmony_ci    "`storage image extended formats`" below are supported; if this feature
683e5c31af7Sopenharmony_ci    is supported, then the ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT must:
684e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
685e5c31af7Sopenharmony_ci+
686e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_SFLOAT
687e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32
688e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_SFLOAT
689e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16B16A16_UNORM
690e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_A2B10G10R10_UNORM_PACK32
691e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_UNORM
692e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8G8_UNORM
693e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_UNORM
694e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8_UNORM
695e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16B16A16_SNORM
696e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_SNORM
697e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8G8_SNORM
698e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_SNORM
699e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8_SNORM
700e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_SINT
701e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8G8_SINT
702e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_SINT
703e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8_SINT
704e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_A2B10G10R10_UINT_PACK32
705e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16G16_UINT
706e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8G8_UINT
707e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R16_UINT
708e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_R8_UINT
709e5c31af7Sopenharmony_ci+
710e5c31af7Sopenharmony_ci[NOTE]
711e5c31af7Sopenharmony_ci.Note
712e5c31af7Sopenharmony_ci====
713e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats feature only adds a guarantee of
714e5c31af7Sopenharmony_ciformat support, which is specified for the whole physical device.
715e5c31af7Sopenharmony_ciTherefore enabling or disabling the feature via flink:vkCreateDevice has no
716e5c31af7Sopenharmony_cipractical effect.
717e5c31af7Sopenharmony_ci
718e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not supported,
719e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
720e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
721e5c31af7Sopenharmony_cisupported properties of individual formats, as usual rules allow.
722e5c31af7Sopenharmony_ci
723e5c31af7Sopenharmony_ciename:VK_FORMAT_R32G32_UINT, ename:VK_FORMAT_R32G32_SINT, and
724e5c31af7Sopenharmony_ciename:VK_FORMAT_R32G32_SFLOAT from code:StorageImageExtendedFormats SPIR-V
725e5c31af7Sopenharmony_cicapability, are already covered by core Vulkan
726e5c31af7Sopenharmony_ci<<formats-mandatory-features-32bit,mandatory format support>>.
727e5c31af7Sopenharmony_ci====
728e5c31af7Sopenharmony_ci
729e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageMultisample]]
730e5c31af7Sopenharmony_ci    pname:shaderStorageImageMultisample specifies whether multisampled
731e5c31af7Sopenharmony_ci    storage images are supported.
732e5c31af7Sopenharmony_ci    If this feature is not enabled, images that are created with a
733e5c31af7Sopenharmony_ci    pname:usage that includes ename:VK_IMAGE_USAGE_STORAGE_BIT must: be
734e5c31af7Sopenharmony_ci    created with pname:samples equal to ename:VK_SAMPLE_COUNT_1_BIT.
735e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
736e5c31af7Sopenharmony_ci    code:StorageImageMultisample and code:ImageMSArray capabilities.
737e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageReadWithoutFormat]]
738e5c31af7Sopenharmony_ci    pname:shaderStorageImageReadWithoutFormat specifies whether storage
739e5c31af7Sopenharmony_ci    images require a format qualifier to be specified when reading.
740e5c31af7Sopenharmony_ciifdef::VK_KHR_format_feature_flags2[]
741e5c31af7Sopenharmony_ci    pname:shaderStorageImageReadWithoutFormat applies only to formats listed
742e5c31af7Sopenharmony_ci    in the <<formats-without-shader-storage-format,storage without format>>
743e5c31af7Sopenharmony_ci    list.
744e5c31af7Sopenharmony_ciendif::VK_KHR_format_feature_flags2[]
745e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageWriteWithoutFormat]]
746e5c31af7Sopenharmony_ci    pname:shaderStorageImageWriteWithoutFormat specifies whether storage
747e5c31af7Sopenharmony_ci    images require a format qualifier to be specified when writing.
748e5c31af7Sopenharmony_ciifdef::VK_KHR_format_feature_flags2[]
749e5c31af7Sopenharmony_ci    pname:shaderStorageImageWriteWithoutFormat applies only to formats
750e5c31af7Sopenharmony_ci    listed in the <<formats-without-shader-storage-format,storage without
751e5c31af7Sopenharmony_ci    format>> list.
752e5c31af7Sopenharmony_ciendif::VK_KHR_format_feature_flags2[]
753e5c31af7Sopenharmony_ci  * [[features-shaderUniformBufferArrayDynamicIndexing]]
754e5c31af7Sopenharmony_ci    pname:shaderUniformBufferArrayDynamicIndexing specifies whether arrays
755e5c31af7Sopenharmony_ci    of uniform buffers can: be indexed by _dynamically uniform_ integer
756e5c31af7Sopenharmony_ci    expressions in shader code.
757e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
758e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
759e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must: be indexed only by
760e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
761e5c31af7Sopenharmony_ci    code.
762e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
763e5c31af7Sopenharmony_ci    code:UniformBufferArrayDynamicIndexing capability.
764e5c31af7Sopenharmony_ci  * [[features-shaderSampledImageArrayDynamicIndexing]]
765e5c31af7Sopenharmony_ci    pname:shaderSampledImageArrayDynamicIndexing specifies whether arrays of
766e5c31af7Sopenharmony_ci    samplers or sampled images can: be indexed by dynamically uniform
767e5c31af7Sopenharmony_ci    integer expressions in shader code.
768e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
769e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLER,
770e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or
771e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must: be indexed only by constant
772e5c31af7Sopenharmony_ci    integral expressions when aggregated into arrays in shader code.
773e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
774e5c31af7Sopenharmony_ci    code:SampledImageArrayDynamicIndexing capability.
775e5c31af7Sopenharmony_ci  * [[features-shaderStorageBufferArrayDynamicIndexing]]
776e5c31af7Sopenharmony_ci    pname:shaderStorageBufferArrayDynamicIndexing specifies whether arrays
777e5c31af7Sopenharmony_ci    of storage buffers can: be indexed by dynamically uniform integer
778e5c31af7Sopenharmony_ci    expressions in shader code.
779e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
780e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
781e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must: be indexed only by
782e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
783e5c31af7Sopenharmony_ci    code.
784e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
785e5c31af7Sopenharmony_ci    code:StorageBufferArrayDynamicIndexing capability.
786e5c31af7Sopenharmony_ci  * [[features-shaderStorageImageArrayDynamicIndexing]]
787e5c31af7Sopenharmony_ci    pname:shaderStorageImageArrayDynamicIndexing specifies whether arrays of
788e5c31af7Sopenharmony_ci    storage images can: be indexed by dynamically uniform integer
789e5c31af7Sopenharmony_ci    expressions in shader code.
790e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
791e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_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:StorageImageArrayDynamicIndexing capability.
795e5c31af7Sopenharmony_ci  * [[features-shaderClipDistance]] pname:shaderClipDistance specifies
796e5c31af7Sopenharmony_ci    whether clip distances are supported in shader code.
797e5c31af7Sopenharmony_ci    If this feature is not enabled, any members decorated with the
798e5c31af7Sopenharmony_ci    code:ClipDistance built-in decoration must: not be read from or written
799e5c31af7Sopenharmony_ci    to in shader modules.
800e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
801e5c31af7Sopenharmony_ci    code:ClipDistance capability.
802e5c31af7Sopenharmony_ci  * [[features-shaderCullDistance]] pname:shaderCullDistance specifies
803e5c31af7Sopenharmony_ci    whether cull distances are supported in shader code.
804e5c31af7Sopenharmony_ci    If this feature is not enabled, any members decorated with the
805e5c31af7Sopenharmony_ci    code:CullDistance built-in decoration must: not be read from or written
806e5c31af7Sopenharmony_ci    to in shader modules.
807e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
808e5c31af7Sopenharmony_ci    code:CullDistance capability.
809e5c31af7Sopenharmony_ci  * [[features-shaderFloat64]] pname:shaderFloat64 specifies whether 64-bit
810e5c31af7Sopenharmony_ci    floats (doubles) are supported in shader code.
811e5c31af7Sopenharmony_ci    If this feature is not enabled, 64-bit floating-point types must: not be
812e5c31af7Sopenharmony_ci    used in shader code.
813e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the code:Float64
814e5c31af7Sopenharmony_ci    capability.
815e5c31af7Sopenharmony_ci    Declaring and using 64-bit floats is enabled for all storage classes
816e5c31af7Sopenharmony_ci    that SPIR-V allows with the code:Float64 capability.
817e5c31af7Sopenharmony_ci  * [[features-shaderInt64]] pname:shaderInt64 specifies whether 64-bit
818e5c31af7Sopenharmony_ci    integers (signed and unsigned) are supported in shader code.
819e5c31af7Sopenharmony_ci    If this feature is not enabled, 64-bit integer types must: not be used
820e5c31af7Sopenharmony_ci    in shader code.
821e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the code:Int64
822e5c31af7Sopenharmony_ci    capability.
823e5c31af7Sopenharmony_ci    Declaring and using 64-bit integers is enabled for all storage classes
824e5c31af7Sopenharmony_ci    that SPIR-V allows with the code:Int64 capability.
825e5c31af7Sopenharmony_ci  * [[features-shaderInt16]] pname:shaderInt16 specifies whether 16-bit
826e5c31af7Sopenharmony_ci    integers (signed and unsigned) are supported in shader code.
827e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer types must: not be used
828e5c31af7Sopenharmony_ci    in shader code.
829e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the code:Int16
830e5c31af7Sopenharmony_ci    capability.
831e5c31af7Sopenharmony_ci    However, this only enables a subset of the storage classes that SPIR-V
832e5c31af7Sopenharmony_ci    allows for the code:Int16 SPIR-V capability: Declaring and using 16-bit
833e5c31af7Sopenharmony_ci    integers in the code:Private,
834e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[]
835e5c31af7Sopenharmony_ci    code:Workgroup,
836e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
837e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
838e5c31af7Sopenharmony_ci    code:Workgroup (for non-Block variables),
839e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
840e5c31af7Sopenharmony_ci    and code:Function storage classes is enabled, while declaring them in
841e5c31af7Sopenharmony_ci    the interface storage classes (e.g., code:UniformConstant, code:Uniform,
842e5c31af7Sopenharmony_ci    code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is
843e5c31af7Sopenharmony_ci    not enabled.
844e5c31af7Sopenharmony_ci  * [[features-shaderResourceResidency]] pname:shaderResourceResidency
845e5c31af7Sopenharmony_ci    specifies whether image operations that return resource residency
846e5c31af7Sopenharmony_ci    information are supported in shader code.
847e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:OpImageSparse* instructions
848e5c31af7Sopenharmony_ci    must: not be used in shader code.
849e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
850e5c31af7Sopenharmony_ci    code:SparseResidency capability.
851e5c31af7Sopenharmony_ci    The feature requires at least one of the ptext:sparseResidency* features
852e5c31af7Sopenharmony_ci    to be supported.
853e5c31af7Sopenharmony_ci  * [[features-shaderResourceMinLod]] pname:shaderResourceMinLod specifies
854e5c31af7Sopenharmony_ci    whether image operations specifying the minimum resource LOD are
855e5c31af7Sopenharmony_ci    supported in shader code.
856e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:MinLod image operand must: not
857e5c31af7Sopenharmony_ci    be used in shader code.
858e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the code:MinLod
859e5c31af7Sopenharmony_ci    capability.
860e5c31af7Sopenharmony_ci  * [[features-sparseBinding]] pname:sparseBinding specifies whether
861e5c31af7Sopenharmony_ci    resource memory can: be managed at opaque sparse block level instead of
862e5c31af7Sopenharmony_ci    at the object level.
863e5c31af7Sopenharmony_ci    If this feature is not enabled, resource memory must: be bound only on a
864e5c31af7Sopenharmony_ci    per-object basis using the fname:vkBindBufferMemory and
865e5c31af7Sopenharmony_ci    fname:vkBindImageMemory commands.
866e5c31af7Sopenharmony_ci    In this case, buffers and images must: not be created with
867e5c31af7Sopenharmony_ci    ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT and
868e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in the pname:flags member
869e5c31af7Sopenharmony_ci    of the slink:VkBufferCreateInfo and slink:VkImageCreateInfo structures,
870e5c31af7Sopenharmony_ci    respectively.
871e5c31af7Sopenharmony_ci    Otherwise resource memory can: be managed as described in
872e5c31af7Sopenharmony_ci    <<sparsememory-sparseresourcefeatures,Sparse Resource Features>>.
873e5c31af7Sopenharmony_ci  * [[features-sparseResidencyBuffer]] pname:sparseResidencyBuffer specifies
874e5c31af7Sopenharmony_ci    whether the device can: access partially resident buffers.
875e5c31af7Sopenharmony_ci    If this feature is not enabled, buffers must: not be created with
876e5c31af7Sopenharmony_ci    ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags
877e5c31af7Sopenharmony_ci    member of the slink:VkBufferCreateInfo structure.
878e5c31af7Sopenharmony_ci  * [[features-sparseResidencyImage2D]] pname:sparseResidencyImage2D
879e5c31af7Sopenharmony_ci    specifies whether the device can: access partially resident 2D images
880e5c31af7Sopenharmony_ci    with 1 sample per pixel.
881e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
882e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
883e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_1_BIT must: not be created with
884e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
885e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
886e5c31af7Sopenharmony_ci  * [[features-sparseResidencyImage3D]] pname:sparseResidencyImage3D
887e5c31af7Sopenharmony_ci    specifies whether the device can: access partially resident 3D images.
888e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
889e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_3D must: not be created with
890e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
891e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
892e5c31af7Sopenharmony_ci  * [[features-sparseResidency2Samples]] pname:sparseResidency2Samples
893e5c31af7Sopenharmony_ci    specifies whether the physical device can: access partially resident 2D
894e5c31af7Sopenharmony_ci    images with 2 samples per pixel.
895e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
896e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
897e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_2_BIT must: not be created with
898e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
899e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
900e5c31af7Sopenharmony_ci  * [[features-sparseResidency4Samples]] pname:sparseResidency4Samples
901e5c31af7Sopenharmony_ci    specifies whether the physical device can: access partially resident 2D
902e5c31af7Sopenharmony_ci    images with 4 samples per pixel.
903e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
904e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
905e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_4_BIT must: not be created with
906e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
907e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
908e5c31af7Sopenharmony_ci  * [[features-sparseResidency8Samples]] pname:sparseResidency8Samples
909e5c31af7Sopenharmony_ci    specifies whether the physical device can: access partially resident 2D
910e5c31af7Sopenharmony_ci    images with 8 samples per pixel.
911e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
912e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
913e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_8_BIT 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_ci  * [[features-sparseResidency16Samples]] pname:sparseResidency16Samples
917e5c31af7Sopenharmony_ci    specifies whether the physical device can: access partially resident 2D
918e5c31af7Sopenharmony_ci    images with 16 samples per pixel.
919e5c31af7Sopenharmony_ci    If this feature is not enabled, images with an pname:imageType of
920e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and pname:samples set to
921e5c31af7Sopenharmony_ci    ename:VK_SAMPLE_COUNT_16_BIT must: not be created with
922e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member
923e5c31af7Sopenharmony_ci    of the slink:VkImageCreateInfo structure.
924e5c31af7Sopenharmony_ci  * [[features-sparseResidencyAliased]] pname:sparseResidencyAliased
925e5c31af7Sopenharmony_ci    specifies whether the physical device can: correctly access data aliased
926e5c31af7Sopenharmony_ci    into multiple locations.
927e5c31af7Sopenharmony_ci    If this feature is not enabled, the
928e5c31af7Sopenharmony_ci    ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT and
929e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT enum values must: not be used
930e5c31af7Sopenharmony_ci    in pname:flags members of the slink:VkBufferCreateInfo and
931e5c31af7Sopenharmony_ci    slink:VkImageCreateInfo structures, respectively.
932e5c31af7Sopenharmony_ci  * [[features-variableMultisampleRate]] pname:variableMultisampleRate
933e5c31af7Sopenharmony_ci    specifies whether all pipelines that will be bound to a command buffer
934e5c31af7Sopenharmony_ci    during a <<renderpass-noattachments, subpass which uses no attachments>>
935e5c31af7Sopenharmony_ci    must: have the same value for
936e5c31af7Sopenharmony_ci    slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples.
937e5c31af7Sopenharmony_ci    If set to ename:VK_TRUE, the implementation supports variable
938e5c31af7Sopenharmony_ci    multisample rates in a subpass which uses no attachments.
939e5c31af7Sopenharmony_ci    If set to ename:VK_FALSE, then all pipelines bound in such a subpass
940e5c31af7Sopenharmony_ci    must: have the same multisample rate.
941e5c31af7Sopenharmony_ci    This has no effect in situations where a subpass uses any attachments.
942e5c31af7Sopenharmony_ci  * [[features-inheritedQueries]] pname:inheritedQueries specifies whether a
943e5c31af7Sopenharmony_ci    secondary command buffer may: be executed while a query is active.
944e5c31af7Sopenharmony_ci
945e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFeatures.txt[]
946e5c31af7Sopenharmony_ci--
947e5c31af7Sopenharmony_ci
948e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
949e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan11Features',desc='Structure describing the Vulkan 1.1 features that can be supported by an implementation',type='structs']
950e5c31af7Sopenharmony_ci--
951e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan11Features structure is defined as:
952e5c31af7Sopenharmony_ci
953e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan11Features.txt[]
954e5c31af7Sopenharmony_ci
955e5c31af7Sopenharmony_ciThis structure describes the following features:
956e5c31af7Sopenharmony_ci
957e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
958e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
959e5c31af7Sopenharmony_ci    structure.
960e5c31af7Sopenharmony_ci
961e5c31af7Sopenharmony_ci:anchor-prefix:
962e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_16bit_storage-features]
963e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_multiview-features]
964e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_variable_pointers-features]
965e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_protected_memory-features]
966e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_sampler_ycbcr_conversion-features]
967e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_shader_draw_parameters-features]
968e5c31af7Sopenharmony_ci
969e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan11Features
970e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
971e5c31af7Sopenharmony_ci
972e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan11Features.txt[]
973e5c31af7Sopenharmony_ci--
974e5c31af7Sopenharmony_ci
975e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan12Features',desc='Structure describing the Vulkan 1.2 features that can be supported by an implementation',type='structs']
976e5c31af7Sopenharmony_ci--
977e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan12Features structure is defined as:
978e5c31af7Sopenharmony_ci
979e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan12Features.txt[]
980e5c31af7Sopenharmony_ci
981e5c31af7Sopenharmony_ciThis structure describes the following features:
982e5c31af7Sopenharmony_ci
983e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
984e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
985e5c31af7Sopenharmony_ci    structure.
986e5c31af7Sopenharmony_ci
987e5c31af7Sopenharmony_ci:anchor-prefix:
988e5c31af7Sopenharmony_ci  * [[features-samplerMirrorClampToEdge]] pname:samplerMirrorClampToEdge
989e5c31af7Sopenharmony_ci    indicates whether the implementation supports the
990e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode.
991e5c31af7Sopenharmony_ci    If this feature is not enabled, the
992e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode
993e5c31af7Sopenharmony_ci    must: not be used.
994e5c31af7Sopenharmony_ci  * [[features-drawIndirectCount]] pname:drawIndirectCount indicates whether
995e5c31af7Sopenharmony_ci    the implementation supports the flink:vkCmdDrawIndirectCount and
996e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndexedIndirectCount functions.
997e5c31af7Sopenharmony_ci    If this feature is not enabled, these functions must: not be used.
998e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_8bit_storage-features]
999e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_shader_atomic_int64-features]
1000e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_shader_float16_int8-features]
1001e5c31af7Sopenharmony_ci  * [[features-descriptorIndexing]] pname:descriptorIndexing indicates
1002e5c31af7Sopenharmony_ci    whether the implementation supports the minimum set of descriptor
1003e5c31af7Sopenharmony_ci    indexing features as described in the <<features-requirements,Feature
1004e5c31af7Sopenharmony_ci    Requirements>> section.
1005e5c31af7Sopenharmony_ci    Enabling the pname:descriptorIndexing member when flink:vkCreateDevice
1006e5c31af7Sopenharmony_ci    is called does not imply the other minimum descriptor indexing features
1007e5c31af7Sopenharmony_ci    are also enabled.
1008e5c31af7Sopenharmony_ci    Those other descriptor indexing features must: be enabled individually
1009e5c31af7Sopenharmony_ci    as needed by the application.
1010e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_EXT_descriptor_indexing-features]
1011e5c31af7Sopenharmony_ci  * [[features-samplerFilterMinmax]] pname:samplerFilterMinmax indicates
1012e5c31af7Sopenharmony_ci    whether the implementation supports a minimum set of required formats
1013e5c31af7Sopenharmony_ci    supporting min/max filtering as defined by the
1014e5c31af7Sopenharmony_ci    <<limits-filterMinmaxSingleComponentFormats-minimum-requirements,pname:filterMinmaxSingleComponentFormats>>
1015e5c31af7Sopenharmony_ci    property minimum requirements.
1016e5c31af7Sopenharmony_ci    If this feature is not enabled, then no slink:VkSamplerCreateInfo
1017e5c31af7Sopenharmony_ci    pname:pNext chain can include a slink:VkSamplerReductionModeCreateInfo
1018e5c31af7Sopenharmony_ci    structure.
1019e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_EXT_scalar_block_layout-features]
1020e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_imageless_framebuffer-features]
1021e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_uniform_buffer_standard_layout-features]
1022e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_shader_subgroup_extended_types-features]
1023e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_separate_depth_stencil_layouts-features]
1024e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_EXT_host_query_reset-features]
1025e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_timeline_semaphore-features]
1026e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_EXT_buffer_device_address-features]
1027e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_vulkan_memory_model-features]
1028e5c31af7Sopenharmony_ci  * [[features-shaderOutputViewportIndex]] pname:shaderOutputViewportIndex
1029e5c31af7Sopenharmony_ci    indicates whether the implementation supports the
1030e5c31af7Sopenharmony_ci    code:ShaderViewportIndex SPIR-V capability enabling variables decorated
1031e5c31af7Sopenharmony_ci    with the code:ViewportIndex built-in to be exported from vertex or
1032e5c31af7Sopenharmony_ci    tessellation evaluation shaders.
1033e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:ViewportIndex built-in
1034e5c31af7Sopenharmony_ci    decoration must: not be used on outputs in vertex or tessellation
1035e5c31af7Sopenharmony_ci    evaluation shaders.
1036e5c31af7Sopenharmony_ci  * [[features-shaderOutputLayer]] pname:shaderOutputLayer indicates whether
1037e5c31af7Sopenharmony_ci    the implementation supports the code:ShaderLayer SPIR-V capability
1038e5c31af7Sopenharmony_ci    enabling variables decorated with the code:Layer built-in to be exported
1039e5c31af7Sopenharmony_ci    from vertex or tessellation evaluation shaders.
1040e5c31af7Sopenharmony_ci    If this feature is not enabled, the code:Layer built-in decoration must:
1041e5c31af7Sopenharmony_ci    not be used on outputs in vertex or tessellation evaluation shaders.
1042e5c31af7Sopenharmony_ci  * [[features-subgroupBroadcastDynamicId]] If
1043e5c31af7Sopenharmony_ci    pname:subgroupBroadcastDynamicId is ename:VK_TRUE, the "`Id`" operand of
1044e5c31af7Sopenharmony_ci    code:OpGroupNonUniformBroadcast can: be dynamically uniform within a
1045e5c31af7Sopenharmony_ci    subgroup, and the "`Index`" operand of
1046e5c31af7Sopenharmony_ci    code:OpGroupNonUniformQuadBroadcast can: be dynamically uniform within
1047e5c31af7Sopenharmony_ci    the derivative group.
1048e5c31af7Sopenharmony_ci    If it is ename:VK_FALSE, these operands must: be constants.
1049e5c31af7Sopenharmony_ci
1050e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan12Features
1051e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1052e5c31af7Sopenharmony_ci
1053e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan12Features.txt[]
1054e5c31af7Sopenharmony_ci--
1055e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
1056e5c31af7Sopenharmony_ci
1057e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]
1058e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVariablePointersFeatures',desc='Structure describing variable pointers features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointersFeaturesKHR VkPhysicalDeviceVariablePointerFeaturesKHR']
1059e5c31af7Sopenharmony_ci--
1060e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVariablePointersFeatures structure is defined as:
1061e5c31af7Sopenharmony_ci
1062e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointersFeatures.txt[]
1063e5c31af7Sopenharmony_ci
1064e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1065e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointerFeatures.txt[]
1066e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1067e5c31af7Sopenharmony_ci
1068e5c31af7Sopenharmony_ciifdef::VK_KHR_variable_pointers[]
1069e5c31af7Sopenharmony_cior the equivalent
1070e5c31af7Sopenharmony_ci
1071e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointersFeaturesKHR.txt[]
1072e5c31af7Sopenharmony_ci
1073e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointerFeaturesKHR.txt[]
1074e5c31af7Sopenharmony_ciendif::VK_KHR_variable_pointers[]
1075e5c31af7Sopenharmony_ci
1076e5c31af7Sopenharmony_ciThis structure describes the following features:
1077e5c31af7Sopenharmony_ci
1078e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1079e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1080e5c31af7Sopenharmony_ci    structure.
1081e5c31af7Sopenharmony_ci
1082e5c31af7Sopenharmony_ci// Must have preceding whitespace
1083e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1084e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1085e5c31af7Sopenharmony_ci// tag::VK_KHR_variable_pointers-features[]
1086e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-variablePointersStorageBuffer]]
1087e5c31af7Sopenharmony_ci    pname:variablePointersStorageBuffer specifies whether the implementation
1088e5c31af7Sopenharmony_ci    supports the SPIR-V code:VariablePointersStorageBuffer capability.
1089e5c31af7Sopenharmony_ci    When this feature is not enabled, shader modules must: not declare the
1090e5c31af7Sopenharmony_ci    `SPV_KHR_variable_pointers` extension or the
1091e5c31af7Sopenharmony_ci    code:VariablePointersStorageBuffer capability.
1092e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-variablePointers]] pname:variablePointers
1093e5c31af7Sopenharmony_ci    specifies whether the implementation supports the SPIR-V
1094e5c31af7Sopenharmony_ci    code:VariablePointers capability.
1095e5c31af7Sopenharmony_ci    When this feature is not enabled, shader modules must: not declare the
1096e5c31af7Sopenharmony_ci    code:VariablePointers capability.
1097e5c31af7Sopenharmony_ci// end::VK_KHR_variable_pointers-features[]
1098e5c31af7Sopenharmony_ci
1099e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVariablePointersFeatures
1100e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1101e5c31af7Sopenharmony_ci
1102e5c31af7Sopenharmony_ci.Valid Usage
1103e5c31af7Sopenharmony_ci****
1104e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431]]
1105e5c31af7Sopenharmony_ci    If pname:variablePointers is enabled then
1106e5c31af7Sopenharmony_ci    pname:variablePointersStorageBuffer must: also be enabled
1107e5c31af7Sopenharmony_ci****
1108e5c31af7Sopenharmony_ci
1109e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVariablePointersFeatures.txt[]
1110e5c31af7Sopenharmony_ci--
1111e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_variable_pointers[]
1112e5c31af7Sopenharmony_ci
1113e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[]
1114e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewFeatures',desc='Structure describing multiview features that can be supported by an implementation',type='structs']
1115e5c31af7Sopenharmony_ci--
1116e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewFeatures structure is defined as:
1117e5c31af7Sopenharmony_ci
1118e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewFeatures.txt[]
1119e5c31af7Sopenharmony_ci
1120e5c31af7Sopenharmony_ciifdef::VK_KHR_multiview[]
1121e5c31af7Sopenharmony_cior the equivalent
1122e5c31af7Sopenharmony_ci
1123e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewFeaturesKHR.txt[]
1124e5c31af7Sopenharmony_ciendif::VK_KHR_multiview[]
1125e5c31af7Sopenharmony_ci
1126e5c31af7Sopenharmony_ciThis structure describes the following features:
1127e5c31af7Sopenharmony_ci
1128e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1129e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1130e5c31af7Sopenharmony_ci    structure.
1131e5c31af7Sopenharmony_ci
1132e5c31af7Sopenharmony_ci// Must have preceding whitespace
1133e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1134e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1135e5c31af7Sopenharmony_ci// tag::VK_KHR_multiview-features[]
1136e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-multiview]] pname:multiview specifies whether
1137e5c31af7Sopenharmony_ci    the implementation supports multiview rendering within a render pass.
1138e5c31af7Sopenharmony_ci    If this feature is not enabled, the view mask of each subpass must:
1139e5c31af7Sopenharmony_ci    always be zero.
1140e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-multiview-gs]] pname:multiviewGeometryShader
1141e5c31af7Sopenharmony_ci    specifies whether the implementation supports multiview rendering within
1142e5c31af7Sopenharmony_ci    a render pass, with <<geometry,geometry shaders>>.
1143e5c31af7Sopenharmony_ci    If this feature is not enabled, then a pipeline compiled against a
1144e5c31af7Sopenharmony_ci    subpass with a non-zero view mask must: not include a geometry shader.
1145e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-multiview-tess]]
1146e5c31af7Sopenharmony_ci    pname:multiviewTessellationShader specifies whether the implementation
1147e5c31af7Sopenharmony_ci    supports multiview rendering within a render pass, with
1148e5c31af7Sopenharmony_ci    <<tessellation,tessellation shaders>>.
1149e5c31af7Sopenharmony_ci    If this feature is not enabled, then a pipeline compiled against a
1150e5c31af7Sopenharmony_ci    subpass with a non-zero view mask must: not include any tessellation
1151e5c31af7Sopenharmony_ci    shaders.
1152e5c31af7Sopenharmony_ci// end::VK_KHR_multiview-features[]
1153e5c31af7Sopenharmony_ci
1154e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewFeatures
1155e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1156e5c31af7Sopenharmony_ci
1157e5c31af7Sopenharmony_ci.Valid Usage
1158e5c31af7Sopenharmony_ci****
1159e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580]]
1160e5c31af7Sopenharmony_ci    If pname:multiviewGeometryShader is enabled then pname:multiview must:
1161e5c31af7Sopenharmony_ci    also be enabled
1162e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581]]
1163e5c31af7Sopenharmony_ci    If pname:multiviewTessellationShader is enabled then pname:multiview
1164e5c31af7Sopenharmony_ci    must: also be enabled
1165e5c31af7Sopenharmony_ci****
1166e5c31af7Sopenharmony_ci
1167e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewFeatures.txt[]
1168e5c31af7Sopenharmony_ci--
1169e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[]
1170e5c31af7Sopenharmony_ci
1171e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[]
1172e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicFloatFeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_atomic_float',type='structs']
1173e5c31af7Sopenharmony_ci--
1174e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicFloatFeaturesEXT structure is defined
1175e5c31af7Sopenharmony_cias:
1176e5c31af7Sopenharmony_ci
1177e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.txt[]
1178e5c31af7Sopenharmony_ci
1179e5c31af7Sopenharmony_ciThis structure describes the following features:
1180e5c31af7Sopenharmony_ci
1181e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1182e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1183e5c31af7Sopenharmony_ci    structure.
1184e5c31af7Sopenharmony_ci
1185e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_atomic_float-features[]
1186e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat32Atomics]] pname:shaderBufferFloat32Atomics
1187e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 32-bit floating-point load, store
1188e5c31af7Sopenharmony_ci    and exchange atomic operations on storage buffers.
1189e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat32AtomicAdd]]
1190e5c31af7Sopenharmony_ci    pname:shaderBufferFloat32AtomicAdd indicates whether shaders can:
1191e5c31af7Sopenharmony_ci    perform 32-bit floating-point add atomic operations on storage buffers.
1192e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat64Atomics]] pname:shaderBufferFloat64Atomics
1193e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 64-bit floating-point load, store
1194e5c31af7Sopenharmony_ci    and exchange atomic operations on storage buffers.
1195e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat64AtomicAdd]]
1196e5c31af7Sopenharmony_ci    pname:shaderBufferFloat64AtomicAdd indicates whether shaders can:
1197e5c31af7Sopenharmony_ci    perform 64-bit floating-point add atomic operations on storage buffers.
1198e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat32Atomics]] pname:shaderSharedFloat32Atomics
1199e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 32-bit floating-point load, store
1200e5c31af7Sopenharmony_ci    and exchange atomic operations on shared memory.
1201e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat32AtomicAdd]]
1202e5c31af7Sopenharmony_ci    pname:shaderSharedFloat32AtomicAdd indicates whether shaders can:
1203e5c31af7Sopenharmony_ci    perform 32-bit floating-point add atomic operations on shared memory.
1204e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat64Atomics]] pname:shaderSharedFloat64Atomics
1205e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 64-bit floating-point load, store
1206e5c31af7Sopenharmony_ci    and exchange atomic operations on shared memory.
1207e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat64AtomicAdd]]
1208e5c31af7Sopenharmony_ci    pname:shaderSharedFloat64AtomicAdd indicates whether shaders can:
1209e5c31af7Sopenharmony_ci    perform 64-bit floating-point add atomic operations on shared memory.
1210e5c31af7Sopenharmony_ci  * [[features-shaderImageFloat32Atomics]] pname:shaderImageFloat32Atomics
1211e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 32-bit floating-point load, store
1212e5c31af7Sopenharmony_ci    and exchange atomic image operations.
1213e5c31af7Sopenharmony_ci  * [[features-shaderImageFloat32AtomicAdd]]
1214e5c31af7Sopenharmony_ci    pname:shaderImageFloat32AtomicAdd indicates whether shaders can: perform
1215e5c31af7Sopenharmony_ci    32-bit floating-point add atomic image operations.
1216e5c31af7Sopenharmony_ci  * [[features-sparseImageFloat32Atomics]] pname:sparseImageFloat32Atomics
1217e5c31af7Sopenharmony_ci    indicates whether 32-bit floating-point load, store and exchange atomic
1218e5c31af7Sopenharmony_ci    operations can: be used on sparse images.
1219e5c31af7Sopenharmony_ci  * [[features-sparseImageFloat32AtomicAdd]]
1220e5c31af7Sopenharmony_ci    pname:sparseImageFloat32AtomicAdd indicates whether 32-bit
1221e5c31af7Sopenharmony_ci    floating-point add atomic operations can: be used on sparse images.
1222e5c31af7Sopenharmony_ci// end::VK_EXT_shader_atomic_float-features[]
1223e5c31af7Sopenharmony_ci
1224e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
1225e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1226e5c31af7Sopenharmony_ci
1227e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.txt[]
1228e5c31af7Sopenharmony_ci--
1229e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[]
1230e5c31af7Sopenharmony_ci
1231e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[]
1232e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_atomic_float2',type='structs']
1233e5c31af7Sopenharmony_ci--
1234e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT structure is defined
1235e5c31af7Sopenharmony_cias:
1236e5c31af7Sopenharmony_ci
1237e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.txt[]
1238e5c31af7Sopenharmony_ci
1239e5c31af7Sopenharmony_ciThis structure describes the following features:
1240e5c31af7Sopenharmony_ci
1241e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1242e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1243e5c31af7Sopenharmony_ci    structure.
1244e5c31af7Sopenharmony_ci
1245e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_atomic_float2-features[]
1246e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat16Atomics]] pname:shaderBufferFloat16Atomics
1247e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 16-bit floating-point load,
1248e5c31af7Sopenharmony_ci    store, and exchange atomic operations on storage buffers.
1249e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat16AtomicAdd]]
1250e5c31af7Sopenharmony_ci    pname:shaderBufferFloat16AtomicAdd indicates whether shaders can:
1251e5c31af7Sopenharmony_ci    perform 16-bit floating-point add atomic operations on storage buffers.
1252e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat16AtomicMinMax]]
1253e5c31af7Sopenharmony_ci    pname:shaderBufferFloat16AtomicMinMax indicates whether shaders can:
1254e5c31af7Sopenharmony_ci    perform 16-bit floating-point min and max atomic operations on storage
1255e5c31af7Sopenharmony_ci    buffers.
1256e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat32AtomicMinMax]]
1257e5c31af7Sopenharmony_ci    pname:shaderBufferFloat32AtomicMinMax indicates whether shaders can:
1258e5c31af7Sopenharmony_ci    perform 32-bit floating-point min and max atomic operations on storage
1259e5c31af7Sopenharmony_ci    buffers.
1260e5c31af7Sopenharmony_ci  * [[features-shaderBufferFloat64AtomicMinMax]]
1261e5c31af7Sopenharmony_ci    pname:shaderBufferFloat64AtomicMinMax indicates whether shaders can:
1262e5c31af7Sopenharmony_ci    perform 64-bit floating-point min and max atomic operations on storage
1263e5c31af7Sopenharmony_ci    buffers.
1264e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat16Atomics]] pname:shaderSharedFloat16Atomics
1265e5c31af7Sopenharmony_ci    indicates whether shaders can: perform 16-bit floating-point load, store
1266e5c31af7Sopenharmony_ci    and exchange atomic operations on shared memory.
1267e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat16AtomicAdd]]
1268e5c31af7Sopenharmony_ci    pname:shaderSharedFloat16AtomicAdd indicates whether shaders can:
1269e5c31af7Sopenharmony_ci    perform 16-bit floating-point add atomic operations on shared memory.
1270e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat16AtomicMinMax]]
1271e5c31af7Sopenharmony_ci    pname:shaderSharedFloat16AtomicMinMax indicates whether shaders can:
1272e5c31af7Sopenharmony_ci    perform 16-bit floating-point min and max atomic operations on shared
1273e5c31af7Sopenharmony_ci    memory.
1274e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat32AtomicMinMax]]
1275e5c31af7Sopenharmony_ci    pname:shaderSharedFloat32AtomicMinMax indicates whether shaders can:
1276e5c31af7Sopenharmony_ci    perform 32-bit floating-point min and max atomic operations on shared
1277e5c31af7Sopenharmony_ci    memory.
1278e5c31af7Sopenharmony_ci  * [[features-shaderSharedFloat64AtomicMinMax]]
1279e5c31af7Sopenharmony_ci    pname:shaderSharedFloat64AtomicMinMax indicates whether shaders can:
1280e5c31af7Sopenharmony_ci    perform 64-bit floating-point min and max atomic operations on shared
1281e5c31af7Sopenharmony_ci    memory.
1282e5c31af7Sopenharmony_ci  * [[features-shaderImageFloat32AtomicMinMax]]
1283e5c31af7Sopenharmony_ci    pname:shaderImageFloat32AtomicMinMax indicates whether shaders can:
1284e5c31af7Sopenharmony_ci    perform 32-bit floating-point min and max atomic image operations.
1285e5c31af7Sopenharmony_ci  * [[features-sparseImageFloat32AtomicMinMax]]
1286e5c31af7Sopenharmony_ci    pname:sparseImageFloat32AtomicMinMax indicates whether 32-bit
1287e5c31af7Sopenharmony_ci    floating-point min and max atomic operations can: be used on sparse
1288e5c31af7Sopenharmony_ci    images.
1289e5c31af7Sopenharmony_ci// end::VK_EXT_shader_atomic_float2-features[]
1290e5c31af7Sopenharmony_ci
1291e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
1292e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1293e5c31af7Sopenharmony_ci
1294e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.txt[]
1295e5c31af7Sopenharmony_ci--
1296e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[]
1297e5c31af7Sopenharmony_ci
1298e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[]
1299e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicInt64Features',desc='Structure describing features supported by VK_KHR_shader_atomic_int64',type='structs',alias='VkPhysicalDeviceShaderAtomicInt64FeaturesKHR']
1300e5c31af7Sopenharmony_ci--
1301e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicInt64Features structure is defined as:
1302e5c31af7Sopenharmony_ci
1303e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicInt64Features.txt[]
1304e5c31af7Sopenharmony_ci
1305e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_atomic_int64[]
1306e5c31af7Sopenharmony_cior the equivalent
1307e5c31af7Sopenharmony_ci
1308e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicInt64FeaturesKHR.txt[]
1309e5c31af7Sopenharmony_ciendif::VK_KHR_shader_atomic_int64[]
1310e5c31af7Sopenharmony_ci
1311e5c31af7Sopenharmony_ciThis structure describes the following features:
1312e5c31af7Sopenharmony_ci
1313e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1314e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1315e5c31af7Sopenharmony_ci    structure.
1316e5c31af7Sopenharmony_ci
1317e5c31af7Sopenharmony_ci// Must have preceding whitespace
1318e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1319e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1320e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_atomic_int64-features[]
1321e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderBufferInt64Atomics]]
1322e5c31af7Sopenharmony_ci    pname:shaderBufferInt64Atomics indicates whether shaders can: perform
1323e5c31af7Sopenharmony_ci    64-bit unsigned and signed integer atomic operations on buffers.
1324e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderSharedInt64Atomics]]
1325e5c31af7Sopenharmony_ci    pname:shaderSharedInt64Atomics indicates whether shaders can: perform
1326e5c31af7Sopenharmony_ci    64-bit unsigned and signed integer atomic operations on shared memory.
1327e5c31af7Sopenharmony_ci// end::VK_KHR_shader_atomic_int64-features[]
1328e5c31af7Sopenharmony_ci
1329e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicInt64Features
1330e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1331e5c31af7Sopenharmony_ci
1332e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicInt64Features.txt[]
1333e5c31af7Sopenharmony_ci--
1334e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[]
1335e5c31af7Sopenharmony_ci
1336e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[]
1337e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_image_atomic_int64',type='structs']
1338e5c31af7Sopenharmony_ci--
1339e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT structure is
1340e5c31af7Sopenharmony_cidefined as:
1341e5c31af7Sopenharmony_ci
1342e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.txt[]
1343e5c31af7Sopenharmony_ci
1344e5c31af7Sopenharmony_ciThis structure describes the following features:
1345e5c31af7Sopenharmony_ci
1346e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1347e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1348e5c31af7Sopenharmony_ci    structure.
1349e5c31af7Sopenharmony_ci  * [[features-shaderImageInt64Atomics]] pname:shaderImageInt64Atomics
1350e5c31af7Sopenharmony_ci    indicates whether shaders can: support 64-bit unsigned and signed
1351e5c31af7Sopenharmony_ci    integer atomic operations on images.
1352e5c31af7Sopenharmony_ci  * [[features-sparseImageInt64Atomics]] pname:sparseImageInt64Atomics
1353e5c31af7Sopenharmony_ci    indicates whether 64-bit integer atomics can: be used on sparse images.
1354e5c31af7Sopenharmony_ci
1355e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicInt64FeaturesEXT
1356e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1357e5c31af7Sopenharmony_ci
1358e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.txt[]
1359e5c31af7Sopenharmony_ci--
1360e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[]
1361e5c31af7Sopenharmony_ci
1362e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_8bit_storage[]
1363e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice8BitStorageFeatures',desc='Structure describing features supported by VK_KHR_8bit_storage',type='structs',alias='VkPhysicalDevice8BitStorageFeaturesKHR']
1364e5c31af7Sopenharmony_ci--
1365e5c31af7Sopenharmony_ciThe slink:VkPhysicalDevice8BitStorageFeatures structure is defined as:
1366e5c31af7Sopenharmony_ci
1367e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice8BitStorageFeatures.txt[]
1368e5c31af7Sopenharmony_ci
1369e5c31af7Sopenharmony_ciifdef::VK_KHR_8bit_storage[]
1370e5c31af7Sopenharmony_cior the equivalent
1371e5c31af7Sopenharmony_ci
1372e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice8BitStorageFeaturesKHR.txt[]
1373e5c31af7Sopenharmony_ciendif::VK_KHR_8bit_storage[]
1374e5c31af7Sopenharmony_ci
1375e5c31af7Sopenharmony_ciThis structure describes the following features:
1376e5c31af7Sopenharmony_ci
1377e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1378e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1379e5c31af7Sopenharmony_ci    structure.
1380e5c31af7Sopenharmony_ci
1381e5c31af7Sopenharmony_ci// Must have preceding whitespace
1382e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1383e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1384e5c31af7Sopenharmony_ci// tag::VK_KHR_8bit_storage-features[]
1385e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storageBuffer8BitAccess]]
1386e5c31af7Sopenharmony_ci    pname:storageBuffer8BitAccess indicates whether objects in the
1387e5c31af7Sopenharmony_ci    code:StorageBuffer,
1388e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:ShaderRecordBufferKHR,]
1389e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1390e5c31af7Sopenharmony_ci    or code:PhysicalStorageBuffer
1391e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1392e5c31af7Sopenharmony_ci    storage class with the code:Block decoration can: have 8-bit integer
1393e5c31af7Sopenharmony_ci    members.
1394e5c31af7Sopenharmony_ci    If this feature is not enabled, 8-bit integer members must: not be used
1395e5c31af7Sopenharmony_ci    in such objects.
1396e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1397e5c31af7Sopenharmony_ci    code:StorageBuffer8BitAccess capability.
1398e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-uniformAndStorageBuffer8BitAccess]]
1399e5c31af7Sopenharmony_ci    pname:uniformAndStorageBuffer8BitAccess indicates whether objects in the
1400e5c31af7Sopenharmony_ci    code:Uniform storage class with the code:Block decoration can: have
1401e5c31af7Sopenharmony_ci    8-bit integer members.
1402e5c31af7Sopenharmony_ci    If this feature is not enabled, 8-bit integer members must: not be used
1403e5c31af7Sopenharmony_ci    in such objects.
1404e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1405e5c31af7Sopenharmony_ci    code:UniformAndStorageBuffer8BitAccess capability.
1406e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storagePushConstant8]]
1407e5c31af7Sopenharmony_ci    pname:storagePushConstant8 indicates whether objects in the
1408e5c31af7Sopenharmony_ci    code:PushConstant storage class can: have 8-bit integer members.
1409e5c31af7Sopenharmony_ci    If this feature is not enabled, 8-bit integer members must: not be used
1410e5c31af7Sopenharmony_ci    in such objects.
1411e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1412e5c31af7Sopenharmony_ci    code:StoragePushConstant8 capability.
1413e5c31af7Sopenharmony_ci// end::VK_KHR_8bit_storage-features[]
1414e5c31af7Sopenharmony_ci
1415e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice8BitStorageFeatures
1416e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1417e5c31af7Sopenharmony_ci
1418e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice8BitStorageFeatures.txt[]
1419e5c31af7Sopenharmony_ci--
1420e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_8bit_storage[]
1421e5c31af7Sopenharmony_ci
1422e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[]
1423e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice16BitStorageFeatures',desc='Structure describing features supported by VK_KHR_16bit_storage',type='structs']
1424e5c31af7Sopenharmony_ci--
1425e5c31af7Sopenharmony_ciThe slink:VkPhysicalDevice16BitStorageFeatures structure is defined as:
1426e5c31af7Sopenharmony_ci
1427e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice16BitStorageFeatures.txt[]
1428e5c31af7Sopenharmony_ci
1429e5c31af7Sopenharmony_ciifdef::VK_KHR_16bit_storage[]
1430e5c31af7Sopenharmony_cior the equivalent
1431e5c31af7Sopenharmony_ci
1432e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice16BitStorageFeaturesKHR.txt[]
1433e5c31af7Sopenharmony_ciendif::VK_KHR_16bit_storage[]
1434e5c31af7Sopenharmony_ci
1435e5c31af7Sopenharmony_ciThis structure describes the following features:
1436e5c31af7Sopenharmony_ci
1437e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1438e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1439e5c31af7Sopenharmony_ci    structure.
1440e5c31af7Sopenharmony_ci
1441e5c31af7Sopenharmony_ci// Must have preceding whitespace
1442e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1443e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1444e5c31af7Sopenharmony_ci// tag::VK_KHR_16bit_storage-features[]
1445e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storageBuffer16BitAccess]]
1446e5c31af7Sopenharmony_ci    pname:storageBuffer16BitAccess specifies whether objects in the
1447e5c31af7Sopenharmony_ci    code:StorageBuffer,
1448e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:ShaderRecordBufferKHR,]
1449e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1450e5c31af7Sopenharmony_ci    or code:PhysicalStorageBuffer
1451e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1452e5c31af7Sopenharmony_ci    storage class with the code:Block decoration can: have 16-bit integer
1453e5c31af7Sopenharmony_ci    and 16-bit floating-point members.
1454e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or 16-bit floating-point
1455e5c31af7Sopenharmony_ci    members must: not be used in such objects.
1456e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
1457e5c31af7Sopenharmony_ci    code:StorageBuffer16BitAccess capability.
1458e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-uniformAndStorageBuffer16BitAccess]]
1459e5c31af7Sopenharmony_ci    pname:uniformAndStorageBuffer16BitAccess specifies whether objects in
1460e5c31af7Sopenharmony_ci    the code:Uniform storage class with the code:Block decoration can: have
1461e5c31af7Sopenharmony_ci    16-bit integer and 16-bit floating-point members.
1462e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or 16-bit floating-point
1463e5c31af7Sopenharmony_ci    members must: not be used in such objects.
1464e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
1465e5c31af7Sopenharmony_ci    code:UniformAndStorageBuffer16BitAccess capability.
1466e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storagePushConstant16]]
1467e5c31af7Sopenharmony_ci    pname:storagePushConstant16 specifies whether objects in the
1468e5c31af7Sopenharmony_ci    code:PushConstant storage class can: have 16-bit integer and 16-bit
1469e5c31af7Sopenharmony_ci    floating-point members.
1470e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or floating-point members
1471e5c31af7Sopenharmony_ci    must: not be used in such objects.
1472e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
1473e5c31af7Sopenharmony_ci    code:StoragePushConstant16 capability.
1474e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-storageInputOutput16]]
1475e5c31af7Sopenharmony_ci    pname:storageInputOutput16 specifies whether objects in the code:Input
1476e5c31af7Sopenharmony_ci    and code:Output storage classes can: have 16-bit integer and 16-bit
1477e5c31af7Sopenharmony_ci    floating-point members.
1478e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or 16-bit floating-point
1479e5c31af7Sopenharmony_ci    members must: not be used in such objects.
1480e5c31af7Sopenharmony_ci    This also specifies whether shader modules can: declare the
1481e5c31af7Sopenharmony_ci    code:StorageInputOutput16 capability.
1482e5c31af7Sopenharmony_ci// end::VK_KHR_16bit_storage-features[]
1483e5c31af7Sopenharmony_ci
1484e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice16BitStorageFeatures
1485e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1486e5c31af7Sopenharmony_ci
1487e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice16BitStorageFeatures.txt[]
1488e5c31af7Sopenharmony_ci--
1489e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_16bit_storage[]
1490e5c31af7Sopenharmony_ci
1491e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_float16_int8[]
1492e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderFloat16Int8Features',desc='Structure describing features supported by VK_KHR_shader_float16_int8',type='structs',alias='VkPhysicalDeviceShaderFloat16Int8FeaturesKHR VkPhysicalDeviceFloat16Int8FeaturesKHR']
1493e5c31af7Sopenharmony_ci--
1494e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderFloat16Int8Features structure is defined as:
1495e5c31af7Sopenharmony_ci
1496e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderFloat16Int8Features.txt[]
1497e5c31af7Sopenharmony_ci
1498e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float16_int8[]
1499e5c31af7Sopenharmony_cior the equivalent
1500e5c31af7Sopenharmony_ci
1501e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderFloat16Int8FeaturesKHR.txt[]
1502e5c31af7Sopenharmony_ci
1503e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFloat16Int8FeaturesKHR.txt[]
1504e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float16_int8[]
1505e5c31af7Sopenharmony_ci
1506e5c31af7Sopenharmony_ciThis structure describes the following features:
1507e5c31af7Sopenharmony_ci
1508e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1509e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1510e5c31af7Sopenharmony_ci    structure.
1511e5c31af7Sopenharmony_ci
1512e5c31af7Sopenharmony_ci// Must have preceding whitespace
1513e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1514e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1515e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_float16_int8-features[]
1516e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderFloat16]] pname:shaderFloat16 indicates
1517e5c31af7Sopenharmony_ci    whether 16-bit floats (halfs) are supported in shader code.
1518e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the code:Float16
1519e5c31af7Sopenharmony_ci    capability.
1520e5c31af7Sopenharmony_ci    However, this only enables a subset of the storage classes that SPIR-V
1521e5c31af7Sopenharmony_ci    allows for the code:Float16 SPIR-V capability: Declaring and using
1522e5c31af7Sopenharmony_ci    16-bit floats in the code:Private,
1523e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[]
1524e5c31af7Sopenharmony_ci    code:Workgroup,
1525e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
1526e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
1527e5c31af7Sopenharmony_ci    code:Workgroup (for non-Block variables),
1528e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
1529e5c31af7Sopenharmony_ci    and code:Function storage classes is enabled, while declaring them in
1530e5c31af7Sopenharmony_ci    the interface storage classes (e.g., code:UniformConstant, code:Uniform,
1531e5c31af7Sopenharmony_ci    code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is
1532e5c31af7Sopenharmony_ci    not enabled.
1533e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderInt8]] pname:shaderInt8 indicates
1534e5c31af7Sopenharmony_ci    whether 8-bit integers (signed and unsigned) are supported in shader
1535e5c31af7Sopenharmony_ci    code.
1536e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the code:Int8
1537e5c31af7Sopenharmony_ci    capability.
1538e5c31af7Sopenharmony_ci    However, this only enables a subset of the storage classes that SPIR-V
1539e5c31af7Sopenharmony_ci    allows for the code:Int8 SPIR-V capability: Declaring and using 8-bit
1540e5c31af7Sopenharmony_ci    integers in the code:Private,
1541e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[]
1542e5c31af7Sopenharmony_ci    code:Workgroup,
1543e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
1544e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
1545e5c31af7Sopenharmony_ci    code:Workgroup (for non-Block variables),
1546e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
1547e5c31af7Sopenharmony_ci    and code:Function storage classes is enabled, while declaring them in
1548e5c31af7Sopenharmony_ci    the interface storage classes (e.g., code:UniformConstant, code:Uniform,
1549e5c31af7Sopenharmony_ci    code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is
1550e5c31af7Sopenharmony_ci    not enabled.
1551e5c31af7Sopenharmony_ci// end::VK_KHR_shader_float16_int8-features[]
1552e5c31af7Sopenharmony_ci
1553e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderFloat16Int8Features
1554e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1555e5c31af7Sopenharmony_ci
1556e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderFloat16Int8Features.txt[]
1557e5c31af7Sopenharmony_ci--
1558e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_float16_int8[]
1559e5c31af7Sopenharmony_ci
1560e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_clock[]
1561e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderClockFeaturesKHR',desc='Structure describing features supported by VK_KHR_shader_clock',type='structs']
1562e5c31af7Sopenharmony_ci--
1563e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderClockFeaturesKHR structure is defined as:
1564e5c31af7Sopenharmony_ci
1565e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderClockFeaturesKHR.txt[]
1566e5c31af7Sopenharmony_ci
1567e5c31af7Sopenharmony_ciThis structure describes the following features:
1568e5c31af7Sopenharmony_ci
1569e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1570e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1571e5c31af7Sopenharmony_ci    structure.
1572e5c31af7Sopenharmony_ci  * [[features-shaderSubgroupClock]] pname:shaderSubgroupClock indicates
1573e5c31af7Sopenharmony_ci    whether shaders can: perform code:Subgroup scoped clock reads.
1574e5c31af7Sopenharmony_ci  * [[features-shaderDeviceClock]] pname:shaderDeviceClock indicates whether
1575e5c31af7Sopenharmony_ci    shaders can: perform code:Device scoped clock reads.
1576e5c31af7Sopenharmony_ci
1577e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderClockFeaturesKHR
1578e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1579e5c31af7Sopenharmony_ci
1580e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderClockFeaturesKHR.txt[]
1581e5c31af7Sopenharmony_ci--
1582e5c31af7Sopenharmony_ciendif::VK_KHR_shader_clock[]
1583e5c31af7Sopenharmony_ci
1584e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1585e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSamplerYcbcrConversionFeatures',desc='Structure describing {YCbCr} conversion features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR']
1586e5c31af7Sopenharmony_ci--
1587e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSamplerYcbcrConversionFeatures structure is
1588e5c31af7Sopenharmony_cidefined as:
1589e5c31af7Sopenharmony_ci
1590e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerYcbcrConversionFeatures.txt[]
1591e5c31af7Sopenharmony_ci
1592e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_ycbcr_conversion[]
1593e5c31af7Sopenharmony_cior the equivalent
1594e5c31af7Sopenharmony_ci
1595e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.txt[]
1596e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_ycbcr_conversion[]
1597e5c31af7Sopenharmony_ci
1598e5c31af7Sopenharmony_ciThis structure describes the following feature:
1599e5c31af7Sopenharmony_ci
1600e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1601e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1602e5c31af7Sopenharmony_ci    structure.
1603e5c31af7Sopenharmony_ci
1604e5c31af7Sopenharmony_ci// Must have preceding whitespace
1605e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1606e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1607e5c31af7Sopenharmony_ci// tag::VK_KHR_sampler_ycbcr_conversion-features[]
1608e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-samplerYcbcrConversion]]
1609e5c31af7Sopenharmony_ci    pname:samplerYcbcrConversion specifies whether the implementation
1610e5c31af7Sopenharmony_ci    supports <<samplers-YCbCr-conversion,sampler {YCbCr} conversion>>.
1611e5c31af7Sopenharmony_ci    If pname:samplerYcbcrConversion is ename:VK_FALSE, sampler {YCbCr}
1612e5c31af7Sopenharmony_ci    conversion is not supported, and samplers using sampler {YCbCr}
1613e5c31af7Sopenharmony_ci    conversion must: not be used.
1614e5c31af7Sopenharmony_ci// end::VK_KHR_sampler_ycbcr_conversion-features[]
1615e5c31af7Sopenharmony_ci
1616e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSamplerYcbcrConversionFeatures
1617e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1618e5c31af7Sopenharmony_ci
1619e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSamplerYcbcrConversionFeatures.txt[]
1620e5c31af7Sopenharmony_ci--
1621e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1622e5c31af7Sopenharmony_ci
1623e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1624e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProtectedMemoryFeatures',desc='Structure describing protected memory features that can be supported by an implementation',type='structs']
1625e5c31af7Sopenharmony_ci--
1626e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProtectedMemoryFeatures structure is defined as:
1627e5c31af7Sopenharmony_ci
1628e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProtectedMemoryFeatures.txt[]
1629e5c31af7Sopenharmony_ci
1630e5c31af7Sopenharmony_ciThis structure describes the following feature:
1631e5c31af7Sopenharmony_ci
1632e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1633e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1634e5c31af7Sopenharmony_ci    structure.
1635e5c31af7Sopenharmony_ci
1636e5c31af7Sopenharmony_ci// Must have preceding whitespace
1637e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1638e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1639e5c31af7Sopenharmony_ci// tag::VK_KHR_protected_memory-features[]
1640e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-protectedMemory]] pname:protectedMemory
1641e5c31af7Sopenharmony_ci    specifies whether protected memory is supported.
1642e5c31af7Sopenharmony_ci// end::VK_KHR_protected_memory-features[]
1643e5c31af7Sopenharmony_ci
1644e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProtectedMemoryFeatures
1645e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1646e5c31af7Sopenharmony_ci
1647e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProtectedMemoryFeatures.txt[]
1648e5c31af7Sopenharmony_ci--
1649e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1650e5c31af7Sopenharmony_ci
1651e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[]
1652e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',desc='Structure describing advanced blending features that can be supported by an implementation',type='structs']
1653e5c31af7Sopenharmony_ci--
1654e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT structure is
1655e5c31af7Sopenharmony_cidefined as:
1656e5c31af7Sopenharmony_ci
1657e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.txt[]
1658e5c31af7Sopenharmony_ci
1659e5c31af7Sopenharmony_ciThis structure describes the following feature:
1660e5c31af7Sopenharmony_ci
1661e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1662e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1663e5c31af7Sopenharmony_ci    structure.
1664e5c31af7Sopenharmony_ci  * [[features-advancedBlendCoherentOperations]]
1665e5c31af7Sopenharmony_ci    pname:advancedBlendCoherentOperations specifies whether blending using
1666e5c31af7Sopenharmony_ci    <<framebuffer-blend-advanced,advanced blend operations>> is guaranteed
1667e5c31af7Sopenharmony_ci    to execute atomically and in <<drawing-primitive-order, primitive
1668e5c31af7Sopenharmony_ci    order>>.
1669e5c31af7Sopenharmony_ci    If this is ename:VK_TRUE,
1670e5c31af7Sopenharmony_ci    ename:VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT is treated the
1671e5c31af7Sopenharmony_ci    same as ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, and advanced blending
1672e5c31af7Sopenharmony_ci    needs no additional synchronization over basic blending.
1673e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then memory dependencies are required to
1674e5c31af7Sopenharmony_ci    guarantee order between two advanced blending operations that occur on
1675e5c31af7Sopenharmony_ci    the same sample.
1676e5c31af7Sopenharmony_ci
1677e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
1678e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1679e5c31af7Sopenharmony_ci
1680e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.txt[]
1681e5c31af7Sopenharmony_ci--
1682e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[]
1683e5c31af7Sopenharmony_ci
1684e5c31af7Sopenharmony_ciifdef::VK_EXT_conditional_rendering[]
1685e5c31af7Sopenharmony_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']
1686e5c31af7Sopenharmony_ci--
1687e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT structure is
1688e5c31af7Sopenharmony_cidefined as:
1689e5c31af7Sopenharmony_ci
1690e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.txt[]
1691e5c31af7Sopenharmony_ci
1692e5c31af7Sopenharmony_ciThis structure describes the following features:
1693e5c31af7Sopenharmony_ci
1694e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1695e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1696e5c31af7Sopenharmony_ci    structure.
1697e5c31af7Sopenharmony_ci  * [[features-conditionalRendering]] pname:conditionalRendering specifies
1698e5c31af7Sopenharmony_ci    whether conditional rendering is supported.
1699e5c31af7Sopenharmony_ci  * [[features-inheritedConditionalRendering]]
1700e5c31af7Sopenharmony_ci    pname:inheritedConditionalRendering specifies whether a secondary
1701e5c31af7Sopenharmony_ci    command buffer can: be executed while conditional rendering is active in
1702e5c31af7Sopenharmony_ci    the primary command buffer.
1703e5c31af7Sopenharmony_ci
1704e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceConditionalRenderingFeaturesEXT
1705e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1706e5c31af7Sopenharmony_ci
1707e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.txt[]
1708e5c31af7Sopenharmony_ci--
1709e5c31af7Sopenharmony_ciendif::VK_EXT_conditional_rendering[]
1710e5c31af7Sopenharmony_ci
1711e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1712e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderDrawParametersFeatures',desc='Structure describing shader draw parameter features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceShaderDrawParameterFeatures']
1713e5c31af7Sopenharmony_ci--
1714e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderDrawParametersFeatures structure is defined
1715e5c31af7Sopenharmony_cias:
1716e5c31af7Sopenharmony_ci
1717e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDrawParametersFeatures.txt[]
1718e5c31af7Sopenharmony_ci
1719e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDrawParameterFeatures.txt[]
1720e5c31af7Sopenharmony_ci
1721e5c31af7Sopenharmony_ciThis structure describes the following feature:
1722e5c31af7Sopenharmony_ci
1723e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1724e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1725e5c31af7Sopenharmony_ci    structure.
1726e5c31af7Sopenharmony_ci
1727e5c31af7Sopenharmony_ci// Must have preceding whitespace
1728e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1729e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1730e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_draw_parameters-features[]
1731e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderDrawParameters]]
1732e5c31af7Sopenharmony_ci    pname:shaderDrawParameters specifies whether the implementation supports
1733e5c31af7Sopenharmony_ci    the SPIR-V code:DrawParameters capability.
1734e5c31af7Sopenharmony_ci    When this feature is not enabled, shader modules must: not declare the
1735e5c31af7Sopenharmony_ci    `SPV_KHR_shader_draw_parameters` extension or the code:DrawParameters
1736e5c31af7Sopenharmony_ci    capability.
1737e5c31af7Sopenharmony_ci// end::VK_KHR_shader_draw_parameters-features[]
1738e5c31af7Sopenharmony_ci
1739e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderDrawParametersFeatures
1740e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1741e5c31af7Sopenharmony_ci
1742e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderDrawParametersFeatures.txt[]
1743e5c31af7Sopenharmony_ci--
1744e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1745e5c31af7Sopenharmony_ci
1746e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
1747e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMeshShaderFeaturesNV',desc='Structure describing mesh shading features that can be supported by an implementation',type='structs']
1748e5c31af7Sopenharmony_ci--
1749e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMeshShaderFeaturesNV structure is defined as:
1750e5c31af7Sopenharmony_ci
1751e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMeshShaderFeaturesNV.txt[]
1752e5c31af7Sopenharmony_ci
1753e5c31af7Sopenharmony_ciThis structure describes the following features:
1754e5c31af7Sopenharmony_ci
1755e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1756e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1757e5c31af7Sopenharmony_ci    structure.
1758e5c31af7Sopenharmony_ci  * [[features-taskShader]] pname:taskShader indicates whether the task
1759e5c31af7Sopenharmony_ci    shader stage is supported.
1760e5c31af7Sopenharmony_ci  * [[features-meshShader]] pname:meshShader indicates whether the mesh
1761e5c31af7Sopenharmony_ci    shader stage is supported.
1762e5c31af7Sopenharmony_ci
1763e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMeshShaderFeaturesNV
1764e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1765e5c31af7Sopenharmony_ci
1766e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMeshShaderFeaturesNV.txt[]
1767e5c31af7Sopenharmony_ci--
1768e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
1769e5c31af7Sopenharmony_ci
1770e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
1771e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorIndexingFeatures',desc='Structure describing descriptor indexing features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceDescriptorIndexingFeaturesEXT']
1772e5c31af7Sopenharmony_ci--
1773e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorIndexingFeatures structure is defined
1774e5c31af7Sopenharmony_cias:
1775e5c31af7Sopenharmony_ci
1776e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingFeatures.txt[]
1777e5c31af7Sopenharmony_ci
1778e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[]
1779e5c31af7Sopenharmony_cior the equivalent
1780e5c31af7Sopenharmony_ci
1781e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingFeaturesEXT.txt[]
1782e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[]
1783e5c31af7Sopenharmony_ci
1784e5c31af7Sopenharmony_ciThis structure describes the following features:
1785e5c31af7Sopenharmony_ci
1786e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1787e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1788e5c31af7Sopenharmony_ci    structure.
1789e5c31af7Sopenharmony_ci
1790e5c31af7Sopenharmony_ci// Must have preceding whitespace
1791e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1792e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1793e5c31af7Sopenharmony_ci// tag::VK_EXT_descriptor_indexing-features[]
1794e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderInputAttachmentArrayDynamicIndexing]]
1795e5c31af7Sopenharmony_ci    pname:shaderInputAttachmentArrayDynamicIndexing indicates whether arrays
1796e5c31af7Sopenharmony_ci    of input attachments can: be indexed by dynamically uniform integer
1797e5c31af7Sopenharmony_ci    expressions in shader code.
1798e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1799e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must: be indexed only by
1800e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
1801e5c31af7Sopenharmony_ci    code.
1802e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1803e5c31af7Sopenharmony_ci    code:InputAttachmentArrayDynamicIndexing capability.
1804e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderUniformTexelBufferArrayDynamicIndexing]]
1805e5c31af7Sopenharmony_ci    pname:shaderUniformTexelBufferArrayDynamicIndexing indicates whether
1806e5c31af7Sopenharmony_ci    arrays of uniform texel buffers can: be indexed by dynamically uniform
1807e5c31af7Sopenharmony_ci    integer expressions in shader code.
1808e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1809e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must: be indexed only by
1810e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
1811e5c31af7Sopenharmony_ci    code.
1812e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1813e5c31af7Sopenharmony_ci    code:UniformTexelBufferArrayDynamicIndexing capability.
1814e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderStorageTexelBufferArrayDynamicIndexing]]
1815e5c31af7Sopenharmony_ci    pname:shaderStorageTexelBufferArrayDynamicIndexing indicates whether
1816e5c31af7Sopenharmony_ci    arrays of storage texel buffers can: be indexed by dynamically uniform
1817e5c31af7Sopenharmony_ci    integer expressions in shader code.
1818e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1819e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must: be indexed only by
1820e5c31af7Sopenharmony_ci    constant integral expressions when aggregated into arrays in shader
1821e5c31af7Sopenharmony_ci    code.
1822e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1823e5c31af7Sopenharmony_ci    code:StorageTexelBufferArrayDynamicIndexing capability.
1824e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderUniformBufferArrayNonUniformIndexing]]
1825e5c31af7Sopenharmony_ci    pname:shaderUniformBufferArrayNonUniformIndexing indicates whether
1826e5c31af7Sopenharmony_ci    arrays of uniform buffers can: be indexed by non-uniform integer
1827e5c31af7Sopenharmony_ci    expressions in shader code.
1828e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1829e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
1830e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must: not be indexed by
1831e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
1832e5c31af7Sopenharmony_ci    code.
1833e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1834e5c31af7Sopenharmony_ci    code:UniformBufferArrayNonUniformIndexing capability.
1835e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderSampledImageArrayNonUniformIndexing]]
1836e5c31af7Sopenharmony_ci    pname:shaderSampledImageArrayNonUniformIndexing indicates whether arrays
1837e5c31af7Sopenharmony_ci    of samplers or sampled images can: be indexed by non-uniform integer
1838e5c31af7Sopenharmony_ci    expressions in shader code.
1839e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1840e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLER,
1841e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or
1842e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must: not be indexed by
1843e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
1844e5c31af7Sopenharmony_ci    code.
1845e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1846e5c31af7Sopenharmony_ci    code:SampledImageArrayNonUniformIndexing capability.
1847e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderStorageBufferArrayNonUniformIndexing]]
1848e5c31af7Sopenharmony_ci    pname:shaderStorageBufferArrayNonUniformIndexing indicates whether
1849e5c31af7Sopenharmony_ci    arrays of storage buffers can: be indexed by non-uniform integer
1850e5c31af7Sopenharmony_ci    expressions in shader code.
1851e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1852e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
1853e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must: not be indexed by
1854e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
1855e5c31af7Sopenharmony_ci    code.
1856e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1857e5c31af7Sopenharmony_ci    code:StorageBufferArrayNonUniformIndexing capability.
1858e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderStorageImageArrayNonUniformIndexing]]
1859e5c31af7Sopenharmony_ci    pname:shaderStorageImageArrayNonUniformIndexing indicates whether arrays
1860e5c31af7Sopenharmony_ci    of storage images can: be indexed by non-uniform integer expressions in
1861e5c31af7Sopenharmony_ci    shader code.
1862e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1863e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must: not be indexed by
1864e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
1865e5c31af7Sopenharmony_ci    code.
1866e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1867e5c31af7Sopenharmony_ci    code:StorageImageArrayNonUniformIndexing capability.
1868e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderInputAttachmentArrayNonUniformIndexing]]
1869e5c31af7Sopenharmony_ci    pname:shaderInputAttachmentArrayNonUniformIndexing indicates whether
1870e5c31af7Sopenharmony_ci    arrays of input attachments can: be indexed by non-uniform integer
1871e5c31af7Sopenharmony_ci    expressions in shader code.
1872e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1873e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must: not be indexed by
1874e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
1875e5c31af7Sopenharmony_ci    code.
1876e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1877e5c31af7Sopenharmony_ci    code:InputAttachmentArrayNonUniformIndexing capability.
1878e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderUniformTexelBufferArrayNonUniformIndexing]]
1879e5c31af7Sopenharmony_ci    pname:shaderUniformTexelBufferArrayNonUniformIndexing indicates whether
1880e5c31af7Sopenharmony_ci    arrays of uniform texel buffers can: be indexed by non-uniform integer
1881e5c31af7Sopenharmony_ci    expressions in shader code.
1882e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1883e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must: not be indexed by
1884e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
1885e5c31af7Sopenharmony_ci    code.
1886e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1887e5c31af7Sopenharmony_ci    code:UniformTexelBufferArrayNonUniformIndexing capability.
1888e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-shaderStorageTexelBufferArrayNonUniformIndexing]]
1889e5c31af7Sopenharmony_ci    pname:shaderStorageTexelBufferArrayNonUniformIndexing indicates whether
1890e5c31af7Sopenharmony_ci    arrays of storage texel buffers can: be indexed by non-uniform integer
1891e5c31af7Sopenharmony_ci    expressions in shader code.
1892e5c31af7Sopenharmony_ci    If this feature is not enabled, resources with a descriptor type of
1893e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must: not be indexed by
1894e5c31af7Sopenharmony_ci    non-uniform integer expressions when aggregated into arrays in shader
1895e5c31af7Sopenharmony_ci    code.
1896e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
1897e5c31af7Sopenharmony_ci    code:StorageTexelBufferArrayNonUniformIndexing capability.
1898e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingUniformBufferUpdateAfterBind]]
1899e5c31af7Sopenharmony_ci    pname:descriptorBindingUniformBufferUpdateAfterBind indicates whether
1900e5c31af7Sopenharmony_ci    the implementation supports updating uniform buffer descriptors after a
1901e5c31af7Sopenharmony_ci    set is bound.
1902e5c31af7Sopenharmony_ci    If this feature is not enabled,
1903e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
1904e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER.
1905e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingSampledImageUpdateAfterBind]]
1906e5c31af7Sopenharmony_ci    pname:descriptorBindingSampledImageUpdateAfterBind indicates whether the
1907e5c31af7Sopenharmony_ci    implementation supports updating sampled image descriptors after a set
1908e5c31af7Sopenharmony_ci    is bound.
1909e5c31af7Sopenharmony_ci    If this feature is not enabled,
1910e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
1911e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLER,
1912e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or
1913e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE.
1914e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingStorageImageUpdateAfterBind]]
1915e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageImageUpdateAfterBind indicates whether the
1916e5c31af7Sopenharmony_ci    implementation supports updating storage image descriptors after a set
1917e5c31af7Sopenharmony_ci    is bound.
1918e5c31af7Sopenharmony_ci    If this feature is not enabled,
1919e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
1920e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE.
1921e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingStorageBufferUpdateAfterBind]]
1922e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageBufferUpdateAfterBind indicates whether
1923e5c31af7Sopenharmony_ci    the implementation supports updating storage buffer descriptors after a
1924e5c31af7Sopenharmony_ci    set is bound.
1925e5c31af7Sopenharmony_ci    If this feature is not enabled,
1926e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
1927e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER.
1928e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingUniformTexelBufferUpdateAfterBind]]
1929e5c31af7Sopenharmony_ci    pname:descriptorBindingUniformTexelBufferUpdateAfterBind indicates
1930e5c31af7Sopenharmony_ci    whether the implementation supports updating uniform texel buffer
1931e5c31af7Sopenharmony_ci    descriptors after a set is bound.
1932e5c31af7Sopenharmony_ci    If this feature is not enabled,
1933e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
1934e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER.
1935e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingStorageTexelBufferUpdateAfterBind]]
1936e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageTexelBufferUpdateAfterBind indicates
1937e5c31af7Sopenharmony_ci    whether the implementation supports updating storage texel buffer
1938e5c31af7Sopenharmony_ci    descriptors after a set is bound.
1939e5c31af7Sopenharmony_ci    If this feature is not enabled,
1940e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
1941e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER.
1942e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingUpdateUnusedWhilePending]]
1943e5c31af7Sopenharmony_ci    pname:descriptorBindingUpdateUnusedWhilePending indicates whether the
1944e5c31af7Sopenharmony_ci    implementation supports updating descriptors while the set is in use.
1945e5c31af7Sopenharmony_ci    If this feature is not enabled,
1946e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT must: not be
1947e5c31af7Sopenharmony_ci    used.
1948e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingPartiallyBound]]
1949e5c31af7Sopenharmony_ci    pname:descriptorBindingPartiallyBound indicates whether the
1950e5c31af7Sopenharmony_ci    implementation supports statically using a descriptor set binding in
1951e5c31af7Sopenharmony_ci    which some descriptors are not valid.
1952e5c31af7Sopenharmony_ci    If this feature is not enabled,
1953e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT must: not be used.
1954e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-descriptorBindingVariableDescriptorCount]]
1955e5c31af7Sopenharmony_ci    pname:descriptorBindingVariableDescriptorCount indicates whether the
1956e5c31af7Sopenharmony_ci    implementation supports descriptor sets with a variable-sized last
1957e5c31af7Sopenharmony_ci    binding.
1958e5c31af7Sopenharmony_ci    If this feature is not enabled,
1959e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT must: not be
1960e5c31af7Sopenharmony_ci    used.
1961e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-runtimeDescriptorArray]]
1962e5c31af7Sopenharmony_ci    pname:runtimeDescriptorArray indicates whether the implementation
1963e5c31af7Sopenharmony_ci    supports the SPIR-V code:RuntimeDescriptorArray capability.
1964e5c31af7Sopenharmony_ci    If this feature is not enabled, descriptors must: not be declared in
1965e5c31af7Sopenharmony_ci    runtime arrays.
1966e5c31af7Sopenharmony_ci// end::VK_EXT_descriptor_indexing-features[]
1967e5c31af7Sopenharmony_ci
1968e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorIndexingFeatures
1969e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1970e5c31af7Sopenharmony_ci
1971e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorIndexingFeatures.txt[]
1972e5c31af7Sopenharmony_ci--
1973e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
1974e5c31af7Sopenharmony_ci
1975e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[]
1976e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT',desc='Structure describing if fetching of vertex attribute may be repeated for instanced rendering',type='structs']
1977e5c31af7Sopenharmony_ci--
1978e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT structure is
1979e5c31af7Sopenharmony_cidefined as:
1980e5c31af7Sopenharmony_ci
1981e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.txt[]
1982e5c31af7Sopenharmony_ci
1983e5c31af7Sopenharmony_ciThis structure describes the following features:
1984e5c31af7Sopenharmony_ci
1985e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
1986e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1987e5c31af7Sopenharmony_ci    structure.
1988e5c31af7Sopenharmony_ci  * [[features-vertexAttributeInstanceRateDivisor]]
1989e5c31af7Sopenharmony_ci    pname:vertexAttributeInstanceRateDivisor specifies whether vertex
1990e5c31af7Sopenharmony_ci    attribute fetching may be repeated in case of instanced rendering.
1991e5c31af7Sopenharmony_ci  * [[features-vertexAttributeInstanceRateZeroDivisor]]
1992e5c31af7Sopenharmony_ci    pname:vertexAttributeInstanceRateZeroDivisor specifies whether a zero
1993e5c31af7Sopenharmony_ci    value for sname:VkVertexInputBindingDivisorDescriptionEXT::pname:divisor
1994e5c31af7Sopenharmony_ci    is supported.
1995e5c31af7Sopenharmony_ci
1996e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT
1997e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
1998e5c31af7Sopenharmony_ci
1999e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.txt[]
2000e5c31af7Sopenharmony_ci--
2001e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[]
2002e5c31af7Sopenharmony_ci
2003e5c31af7Sopenharmony_ciifdef::VK_EXT_astc_decode_mode[]
2004e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceASTCDecodeFeaturesEXT',desc='Structure describing ASTC decode mode features',type='structs']
2005e5c31af7Sopenharmony_ci--
2006e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceASTCDecodeFeaturesEXT structure is defined as:
2007e5c31af7Sopenharmony_ci
2008e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceASTCDecodeFeaturesEXT.txt[]
2009e5c31af7Sopenharmony_ci
2010e5c31af7Sopenharmony_ciThis structure describes the following feature:
2011e5c31af7Sopenharmony_ci
2012e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2013e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2014e5c31af7Sopenharmony_ci    structure.
2015e5c31af7Sopenharmony_ci  * [[features-astc-decodeModeSharedExponent]]
2016e5c31af7Sopenharmony_ci    pname:decodeModeSharedExponent indicates whether the implementation
2017e5c31af7Sopenharmony_ci    supports decoding ASTC compressed formats to
2018e5c31af7Sopenharmony_ci    ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 internal precision.
2019e5c31af7Sopenharmony_ci
2020e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceASTCDecodeFeaturesEXT
2021e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2022e5c31af7Sopenharmony_ci
2023e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceASTCDecodeFeaturesEXT.txt[]
2024e5c31af7Sopenharmony_ci--
2025e5c31af7Sopenharmony_ciendif::VK_EXT_astc_decode_mode[]
2026e5c31af7Sopenharmony_ci
2027e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
2028e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTransformFeedbackFeaturesEXT',desc='Structure describing transform feedback features that can be supported by an implementation',type='structs']
2029e5c31af7Sopenharmony_ci--
2030e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTransformFeedbackFeaturesEXT structure is defined
2031e5c31af7Sopenharmony_cias:
2032e5c31af7Sopenharmony_ci
2033e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTransformFeedbackFeaturesEXT.txt[]
2034e5c31af7Sopenharmony_ci
2035e5c31af7Sopenharmony_ciThis structure describes the following features:
2036e5c31af7Sopenharmony_ci
2037e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2038e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2039e5c31af7Sopenharmony_ci    structure.
2040e5c31af7Sopenharmony_ci  * [[features-transformFeedback]] pname:transformFeedback indicates whether
2041e5c31af7Sopenharmony_ci    the implementation supports transform feedback and shader modules can:
2042e5c31af7Sopenharmony_ci    declare the code:TransformFeedback capability.
2043e5c31af7Sopenharmony_ci  * [[features-geometryStreams]] pname:geometryStreams indicates whether the
2044e5c31af7Sopenharmony_ci    implementation supports the code:GeometryStreams SPIR-V capability.
2045e5c31af7Sopenharmony_ci
2046e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTransformFeedbackFeaturesEXT
2047e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2048e5c31af7Sopenharmony_ci
2049e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTransformFeedbackFeaturesEXT.txt[]
2050e5c31af7Sopenharmony_ci--
2051e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
2052e5c31af7Sopenharmony_ci
2053e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[]
2054e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkanMemoryModelFeatures',desc='Structure describing features supported by the memory model',type='structs']
2055e5c31af7Sopenharmony_ci--
2056e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkanMemoryModelFeatures structure is defined as:
2057e5c31af7Sopenharmony_ci
2058e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanMemoryModelFeatures.txt[]
2059e5c31af7Sopenharmony_ci
2060e5c31af7Sopenharmony_ciifdef::VK_KHR_vulkan_memory_model[]
2061e5c31af7Sopenharmony_cior the equivalent
2062e5c31af7Sopenharmony_ci
2063e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanMemoryModelFeaturesKHR.txt[]
2064e5c31af7Sopenharmony_ciendif::VK_KHR_vulkan_memory_model[]
2065e5c31af7Sopenharmony_ci
2066e5c31af7Sopenharmony_ciThis structure describes the following features:
2067e5c31af7Sopenharmony_ci
2068e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2069e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2070e5c31af7Sopenharmony_ci    structure.
2071e5c31af7Sopenharmony_ci
2072e5c31af7Sopenharmony_ci// Must have preceding whitespace
2073e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2074e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2075e5c31af7Sopenharmony_ci// tag::VK_KHR_vulkan_memory_model-features[]
2076e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-vulkanMemoryModel]] pname:vulkanMemoryModel
2077e5c31af7Sopenharmony_ci    indicates whether the Vulkan Memory Model is supported, as defined in
2078e5c31af7Sopenharmony_ci    <<memory-model,Vulkan Memory Model>>.
2079e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2080e5c31af7Sopenharmony_ci    code:VulkanMemoryModel capability.
2081e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-vulkanMemoryModelDeviceScope]]
2082e5c31af7Sopenharmony_ci    pname:vulkanMemoryModelDeviceScope indicates whether the Vulkan Memory
2083e5c31af7Sopenharmony_ci    Model can use code:Device scope synchronization.
2084e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
2085e5c31af7Sopenharmony_ci    code:VulkanMemoryModelDeviceScope capability.
2086e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-vulkanMemoryModelAvailabilityVisibilityChains]]
2087e5c31af7Sopenharmony_ci    pname:vulkanMemoryModelAvailabilityVisibilityChains indicates whether
2088e5c31af7Sopenharmony_ci    the Vulkan Memory Model can use <<memory-model-availability-visibility,
2089e5c31af7Sopenharmony_ci    availability and visibility chains>> with more than one element.
2090e5c31af7Sopenharmony_ci// end::VK_KHR_vulkan_memory_model-features[]
2091e5c31af7Sopenharmony_ci
2092e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkanMemoryModelFeaturesKHR
2093e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2094e5c31af7Sopenharmony_ci
2095e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkanMemoryModelFeatures.txt[]
2096e5c31af7Sopenharmony_ci--
2097e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[]
2098e5c31af7Sopenharmony_ci
2099e5c31af7Sopenharmony_ciifdef::VK_EXT_inline_uniform_block[]
2100e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInlineUniformBlockFeaturesEXT',desc='Structure describing inline uniform block features that can be supported by an implementation',type='structs']
2101e5c31af7Sopenharmony_ci--
2102e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInlineUniformBlockFeaturesEXT structure is defined
2103e5c31af7Sopenharmony_cias:
2104e5c31af7Sopenharmony_ci
2105e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInlineUniformBlockFeaturesEXT.txt[]
2106e5c31af7Sopenharmony_ci
2107e5c31af7Sopenharmony_ciThis structure describes the following features:
2108e5c31af7Sopenharmony_ci
2109e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2110e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2111e5c31af7Sopenharmony_ci    structure.
2112e5c31af7Sopenharmony_ci  * [[features-inlineUniformBlock]] pname:inlineUniformBlock indicates
2113e5c31af7Sopenharmony_ci    whether the implementation supports inline uniform block descriptors.
2114e5c31af7Sopenharmony_ci    If this feature is not enabled,
2115e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must: not be used.
2116e5c31af7Sopenharmony_ci  * [[features-descriptorBindingInlineUniformBlockUpdateAfterBind]]
2117e5c31af7Sopenharmony_ci    pname:descriptorBindingInlineUniformBlockUpdateAfterBind
2118e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2119e5c31af7Sopenharmony_ci    is ename:VK_FALSE and reserved for future use.
2120e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2121e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2122e5c31af7Sopenharmony_ci    indicates whether the implementation supports updating inline uniform
2123e5c31af7Sopenharmony_ci    block descriptors after a set is bound.
2124e5c31af7Sopenharmony_ci    If this feature is not enabled,
2125e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
2126e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT.
2127e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2128e5c31af7Sopenharmony_ci
2129e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInlineUniformBlockFeaturesEXT
2130e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2131e5c31af7Sopenharmony_ci
2132e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInlineUniformBlockFeaturesEXT.txt[]
2133e5c31af7Sopenharmony_ci--
2134e5c31af7Sopenharmony_ciendif::VK_EXT_inline_uniform_block[]
2135e5c31af7Sopenharmony_ci
2136e5c31af7Sopenharmony_ciifdef::VK_NV_representative_fragment_test[]
2137e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV',desc='Structure describing the representative fragment test features that can be supported by an implementation',type='structs']
2138e5c31af7Sopenharmony_ci--
2139e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV structure is
2140e5c31af7Sopenharmony_cidefined as:
2141e5c31af7Sopenharmony_ci
2142e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.txt[]
2143e5c31af7Sopenharmony_ci
2144e5c31af7Sopenharmony_ciThis structure describes the following feature:
2145e5c31af7Sopenharmony_ci
2146e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2147e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2148e5c31af7Sopenharmony_ci    structure.
2149e5c31af7Sopenharmony_ci  * [[features-representativeFragmentTest]] pname:representativeFragmentTest
2150e5c31af7Sopenharmony_ci    indicates whether the implementation supports the representative
2151e5c31af7Sopenharmony_ci    fragment test.
2152e5c31af7Sopenharmony_ci    See <<fragops-rep-frag-test, Representative Fragment Test>>.
2153e5c31af7Sopenharmony_ci
2154e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV
2155e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2156e5c31af7Sopenharmony_ci
2157e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.txt[]
2158e5c31af7Sopenharmony_ci--
2159e5c31af7Sopenharmony_ciendif::VK_NV_representative_fragment_test[]
2160e5c31af7Sopenharmony_ci
2161e5c31af7Sopenharmony_ciifdef::VK_NV_scissor_exclusive[]
2162e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExclusiveScissorFeaturesNV',desc='Structure describing exclusive scissor features that can be supported by an implementation',type='structs']
2163e5c31af7Sopenharmony_ci--
2164e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExclusiveScissorFeaturesNV structure is defined
2165e5c31af7Sopenharmony_cias:
2166e5c31af7Sopenharmony_ci
2167e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExclusiveScissorFeaturesNV.txt[]
2168e5c31af7Sopenharmony_ci
2169e5c31af7Sopenharmony_ciThis structure describes the following feature:
2170e5c31af7Sopenharmony_ci
2171e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2172e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2173e5c31af7Sopenharmony_ci    structure.
2174e5c31af7Sopenharmony_ci  * [[features-exclusiveScissor]] pname:exclusiveScissor indicates that the
2175e5c31af7Sopenharmony_ci    implementation supports the exclusive scissor test.
2176e5c31af7Sopenharmony_ci
2177e5c31af7Sopenharmony_ciSee <<fragops-exclusive-scissor,Exclusive Scissor Test>> for more
2178e5c31af7Sopenharmony_ciinformation.
2179e5c31af7Sopenharmony_ci
2180e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExclusiveScissorFeaturesNV
2181e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2182e5c31af7Sopenharmony_ci
2183e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExclusiveScissorFeaturesNV.txt[]
2184e5c31af7Sopenharmony_ci--
2185e5c31af7Sopenharmony_ciendif::VK_NV_scissor_exclusive[]
2186e5c31af7Sopenharmony_ci
2187e5c31af7Sopenharmony_ciifdef::VK_NV_corner_sampled_image[]
2188e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCornerSampledImageFeaturesNV',desc='Structure describing corner sampled image features that can be supported by an implementation',type='structs']
2189e5c31af7Sopenharmony_ci--
2190e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCornerSampledImageFeaturesNV structure is defined
2191e5c31af7Sopenharmony_cias:
2192e5c31af7Sopenharmony_ci
2193e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCornerSampledImageFeaturesNV.txt[]
2194e5c31af7Sopenharmony_ci
2195e5c31af7Sopenharmony_ciThis structure describes the following feature:
2196e5c31af7Sopenharmony_ci
2197e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2198e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2199e5c31af7Sopenharmony_ci    structure.
2200e5c31af7Sopenharmony_ci  * [[features-cornersampledimage]] pname:cornerSampledImage specifies
2201e5c31af7Sopenharmony_ci    whether images can be created with a
2202e5c31af7Sopenharmony_ci    slink:VkImageCreateInfo::pname:flags containing
2203e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV.
2204e5c31af7Sopenharmony_ci    See <<resources-images-corner-sampled,Corner-Sampled Images>>.
2205e5c31af7Sopenharmony_ci
2206e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCornerSampledImageFeaturesNV
2207e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2208e5c31af7Sopenharmony_ci
2209e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCornerSampledImageFeaturesNV.txt[]
2210e5c31af7Sopenharmony_ci--
2211e5c31af7Sopenharmony_ciendif::VK_NV_corner_sampled_image[]
2212e5c31af7Sopenharmony_ci
2213e5c31af7Sopenharmony_ciifdef::VK_NV_compute_shader_derivatives[]
2214e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceComputeShaderDerivativesFeaturesNV',desc='Structure describing compute shader derivative features that can be supported by an implementation',type='structs']
2215e5c31af7Sopenharmony_ci--
2216e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV structure is
2217e5c31af7Sopenharmony_cidefined as:
2218e5c31af7Sopenharmony_ci
2219e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.txt[]
2220e5c31af7Sopenharmony_ci
2221e5c31af7Sopenharmony_ciThis structure describes the following features:
2222e5c31af7Sopenharmony_ci
2223e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2224e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2225e5c31af7Sopenharmony_ci    structure.
2226e5c31af7Sopenharmony_ci  * [[features-computeDerivativeGroupQuads]]
2227e5c31af7Sopenharmony_ci    pname:computeDerivativeGroupQuads indicates that the implementation
2228e5c31af7Sopenharmony_ci    supports the code:ComputeDerivativeGroupQuadsNV SPIR-V capability.
2229e5c31af7Sopenharmony_ci  * [[features-computeDerivativeGroupLinear]]
2230e5c31af7Sopenharmony_ci    pname:computeDerivativeGroupLinear indicates that the implementation
2231e5c31af7Sopenharmony_ci    supports the code:ComputeDerivativeGroupLinearNV SPIR-V capability.
2232e5c31af7Sopenharmony_ci
2233e5c31af7Sopenharmony_ciSee <<shaders-scope-quad, Quad shader scope>> for more information.
2234e5c31af7Sopenharmony_ci
2235e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures.
2236e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2237e5c31af7Sopenharmony_ci
2238e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.txt[]
2239e5c31af7Sopenharmony_ci--
2240e5c31af7Sopenharmony_ciendif::VK_NV_compute_shader_derivatives[]
2241e5c31af7Sopenharmony_ci
2242e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shader_barycentric[]
2243e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV',desc='Structure describing barycentric support in fragment shaders that can be supported by an implementation',type='structs']
2244e5c31af7Sopenharmony_ci--
2245e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV structure is
2246e5c31af7Sopenharmony_cidefined as:
2247e5c31af7Sopenharmony_ci
2248e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.txt[]
2249e5c31af7Sopenharmony_ci
2250e5c31af7Sopenharmony_ciThis structure describes the following feature:
2251e5c31af7Sopenharmony_ci
2252e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2253e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2254e5c31af7Sopenharmony_ci    structure.
2255e5c31af7Sopenharmony_ci  * [[features-fragmentShaderBarycentric]] pname:fragmentShaderBarycentric
2256e5c31af7Sopenharmony_ci    indicates that the implementation supports the code:BaryCoordNV and
2257e5c31af7Sopenharmony_ci    code:BaryCoordNoPerspNV SPIR-V fragment shader built-ins and supports
2258e5c31af7Sopenharmony_ci    the code:PerVertexNV SPIR-V decoration on fragment shader input
2259e5c31af7Sopenharmony_ci    variables.
2260e5c31af7Sopenharmony_ci
2261e5c31af7Sopenharmony_ciSee <<primsrast-barycentric,Barycentric Interpolation>> for more
2262e5c31af7Sopenharmony_ciinformation.
2263e5c31af7Sopenharmony_ci
2264e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV
2265e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2266e5c31af7Sopenharmony_ci
2267e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.txt[]
2268e5c31af7Sopenharmony_ci--
2269e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shader_barycentric[]
2270e5c31af7Sopenharmony_ci
2271e5c31af7Sopenharmony_ciifdef::VK_NV_shader_image_footprint[]
2272e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderImageFootprintFeaturesNV',desc='Structure describing shader image footprint features that can be supported by an implementation',type='structs']
2273e5c31af7Sopenharmony_ci--
2274e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderImageFootprintFeaturesNV structure is
2275e5c31af7Sopenharmony_cidefined as:
2276e5c31af7Sopenharmony_ci
2277e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderImageFootprintFeaturesNV.txt[]
2278e5c31af7Sopenharmony_ci
2279e5c31af7Sopenharmony_ciThis structure describes the following feature:
2280e5c31af7Sopenharmony_ci
2281e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2282e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2283e5c31af7Sopenharmony_ci    structure.
2284e5c31af7Sopenharmony_ci  * [[features-imageFootprint]] pname:imageFootprint specifies whether the
2285e5c31af7Sopenharmony_ci    implementation supports the code:ImageFootprintNV SPIR-V capability.
2286e5c31af7Sopenharmony_ci
2287e5c31af7Sopenharmony_ciSee <<textures-footprint,Texel Footprint Evaluation>> for more information.
2288e5c31af7Sopenharmony_ci
2289e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderImageFootprintFeaturesNV
2290e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2291e5c31af7Sopenharmony_ci
2292e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderImageFootprintFeaturesNV.txt[]
2293e5c31af7Sopenharmony_ci--
2294e5c31af7Sopenharmony_ciendif::VK_NV_shader_image_footprint[]
2295e5c31af7Sopenharmony_ci
2296e5c31af7Sopenharmony_ciifdef::VK_NV_shading_rate_image[]
2297e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShadingRateImageFeaturesNV',desc='Structure describing shading rate image features that can be supported by an implementation',type='structs']
2298e5c31af7Sopenharmony_ci--
2299e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShadingRateImageFeaturesNV structure is defined
2300e5c31af7Sopenharmony_cias:
2301e5c31af7Sopenharmony_ci
2302e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShadingRateImageFeaturesNV.txt[]
2303e5c31af7Sopenharmony_ci
2304e5c31af7Sopenharmony_ciThis structure describes the following features:
2305e5c31af7Sopenharmony_ci
2306e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2307e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2308e5c31af7Sopenharmony_ci    structure.
2309e5c31af7Sopenharmony_ci  * [[features-shadingRateImage]] pname:shadingRateImage indicates that the
2310e5c31af7Sopenharmony_ci    implementation supports the use of a shading rate image to derive an
2311e5c31af7Sopenharmony_ci    effective shading rate for fragment processing.
2312e5c31af7Sopenharmony_ci    It also indicates that the implementation supports the
2313e5c31af7Sopenharmony_ci    code:ShadingRateNV SPIR-V execution mode.
2314e5c31af7Sopenharmony_ci  * [[features-shadingRateCoarseSampleOrder]]
2315e5c31af7Sopenharmony_ci    pname:shadingRateCoarseSampleOrder indicates that the implementation
2316e5c31af7Sopenharmony_ci    supports a user-configurable ordering of coverage samples in fragments
2317e5c31af7Sopenharmony_ci    larger than one pixel.
2318e5c31af7Sopenharmony_ci
2319e5c31af7Sopenharmony_ciSee <<primsrast-shading-rate-image, Shading Rate Image>> for more
2320e5c31af7Sopenharmony_ciinformation.
2321e5c31af7Sopenharmony_ci
2322e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShadingRateImageFeaturesNV
2323e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2324e5c31af7Sopenharmony_ci
2325e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShadingRateImageFeaturesNV.txt[]
2326e5c31af7Sopenharmony_ci--
2327e5c31af7Sopenharmony_ciendif::VK_NV_shading_rate_image[]
2328e5c31af7Sopenharmony_ci
2329e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
2330e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMapFeaturesEXT',desc='Structure describing fragment density map features that can be supported by an implementation',type='structs']
2331e5c31af7Sopenharmony_ci--
2332e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMapFeaturesEXT structure is defined
2333e5c31af7Sopenharmony_cias:
2334e5c31af7Sopenharmony_ci
2335e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.txt[]
2336e5c31af7Sopenharmony_ci
2337e5c31af7Sopenharmony_ciThis structure describes the following features:
2338e5c31af7Sopenharmony_ci
2339e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2340e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2341e5c31af7Sopenharmony_ci    structure.
2342e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMap]] pname:fragmentDensityMap specifies
2343e5c31af7Sopenharmony_ci    whether the implementation supports render passes with a fragment
2344e5c31af7Sopenharmony_ci    density map attachment.
2345e5c31af7Sopenharmony_ci    If this feature is not enabled and the pname:pNext chain of
2346e5c31af7Sopenharmony_ci    slink:VkRenderPassCreateInfo includes a
2347e5c31af7Sopenharmony_ci    slink:VkRenderPassFragmentDensityMapCreateInfoEXT structure,
2348e5c31af7Sopenharmony_ci    pname:fragmentDensityMapAttachment must: be ename:VK_ATTACHMENT_UNUSED.
2349e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMapDynamic]] pname:fragmentDensityMapDynamic
2350e5c31af7Sopenharmony_ci    specifies whether the implementation supports dynamic fragment density
2351e5c31af7Sopenharmony_ci    map image views.
2352e5c31af7Sopenharmony_ci    If this feature is not enabled,
2353e5c31af7Sopenharmony_ci    ename:VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT must:
2354e5c31af7Sopenharmony_ci    not be included in slink:VkImageViewCreateInfo::pname:flags.
2355e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMapNonSubsampledImages]]
2356e5c31af7Sopenharmony_ci    pname:fragmentDensityMapNonSubsampledImages specifies whether the
2357e5c31af7Sopenharmony_ci    implementation supports regular non-subsampled image attachments with
2358e5c31af7Sopenharmony_ci    fragment density map render passes.
2359e5c31af7Sopenharmony_ci    If this feature is not enabled, render passes with a
2360e5c31af7Sopenharmony_ci    <<renderpass-fragmentdensitymapattachment,fragment density map
2361e5c31af7Sopenharmony_ci    attachment>> must: only have <<samplers-subsamplesampler,subsampled
2362e5c31af7Sopenharmony_ci    attachments>> bound.
2363e5c31af7Sopenharmony_ci
2364e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMapFeaturesEXT
2365e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2366e5c31af7Sopenharmony_ci
2367e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.txt[]
2368e5c31af7Sopenharmony_ci--
2369e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
2370e5c31af7Sopenharmony_ci
2371e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map2[]
2372e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMap2FeaturesEXT',desc='Structure describing additional fragment density map features that can be supported by an implementation',type='structs']
2373e5c31af7Sopenharmony_ci--
2374e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMap2FeaturesEXT structure is
2375e5c31af7Sopenharmony_cidefined as:
2376e5c31af7Sopenharmony_ci
2377e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.txt[]
2378e5c31af7Sopenharmony_ci
2379e5c31af7Sopenharmony_ciThis structure describes the following features:
2380e5c31af7Sopenharmony_ci
2381e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2382e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2383e5c31af7Sopenharmony_ci    structure.
2384e5c31af7Sopenharmony_ci  * [[features-fragmentDensityMapDeferred]] pname:fragmentDensityMapDeferred
2385e5c31af7Sopenharmony_ci    specifies whether the implementation supports deferred reads of fragment
2386e5c31af7Sopenharmony_ci    density map image views.
2387e5c31af7Sopenharmony_ci    If this feature is not enabled,
2388e5c31af7Sopenharmony_ci    ename:VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT must:
2389e5c31af7Sopenharmony_ci    not be included in sname:VkImageViewCreateInfo::pname:flags.
2390e5c31af7Sopenharmony_ci
2391e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
2392e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2393e5c31af7Sopenharmony_ci
2394e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.txt[]
2395e5c31af7Sopenharmony_ci--
2396e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map2[]
2397e5c31af7Sopenharmony_ci
2398e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_invocation_mask[]
2399e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInvocationMaskFeaturesHUAWEI',desc='Structure describing invocation mask features that can be supported by an implementation',type='structs']
2400e5c31af7Sopenharmony_ci--
2401e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInvocationMaskFeaturesHUAWEI structure is defined
2402e5c31af7Sopenharmony_cias:
2403e5c31af7Sopenharmony_ci
2404e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.txt[]
2405e5c31af7Sopenharmony_ci
2406e5c31af7Sopenharmony_ciThis structure describes the following features:
2407e5c31af7Sopenharmony_ci
2408e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2409e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2410e5c31af7Sopenharmony_ci    structure.
2411e5c31af7Sopenharmony_ci  * [[features-invocationMask]] pname:invocationMask indicates that the
2412e5c31af7Sopenharmony_ci    implementation supports the use of an invocation mask image to optimize
2413e5c31af7Sopenharmony_ci    the ray dispatch.
2414e5c31af7Sopenharmony_ci
2415e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInvocationMaskFeaturesHUAWEI
2416e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2417e5c31af7Sopenharmony_ci
2418e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.txt[]
2419e5c31af7Sopenharmony_ci--
2420e5c31af7Sopenharmony_ciendif::VK_HUAWEI_invocation_mask[]
2421e5c31af7Sopenharmony_ci
2422e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_scalar_block_layout[]
2423e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceScalarBlockLayoutFeatures',desc='Structure indicating support for scalar block layouts',type='structs',alias='VkPhysicalDeviceScalarBlockLayoutFeaturesEXT']
2424e5c31af7Sopenharmony_ci--
2425e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceScalarBlockLayoutFeatures structure is defined as:
2426e5c31af7Sopenharmony_ci
2427e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceScalarBlockLayoutFeatures.txt[]
2428e5c31af7Sopenharmony_ci
2429e5c31af7Sopenharmony_ciifdef::VK_EXT_scalar_block_layout[]
2430e5c31af7Sopenharmony_cior the equivalent
2431e5c31af7Sopenharmony_ci
2432e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceScalarBlockLayoutFeaturesEXT.txt[]
2433e5c31af7Sopenharmony_ciendif::VK_EXT_scalar_block_layout[]
2434e5c31af7Sopenharmony_ci
2435e5c31af7Sopenharmony_ciThis structure describes the following feature:
2436e5c31af7Sopenharmony_ci
2437e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2438e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2439e5c31af7Sopenharmony_ci    structure.
2440e5c31af7Sopenharmony_ci
2441e5c31af7Sopenharmony_ci// Must have preceding whitespace
2442e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2443e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2444e5c31af7Sopenharmony_ci// tag::VK_EXT_scalar_block_layout-features[]
2445e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-scalarBlockLayout]] pname:scalarBlockLayout
2446e5c31af7Sopenharmony_ci    indicates that the implementation supports the layout of resource blocks
2447e5c31af7Sopenharmony_ci    in shaders using <<interfaces-alignment-requirements, scalar
2448e5c31af7Sopenharmony_ci    alignment>>.
2449e5c31af7Sopenharmony_ci// end::VK_EXT_scalar_block_layout-features[]
2450e5c31af7Sopenharmony_ci
2451e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceScalarBlockLayoutFeatures
2452e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2453e5c31af7Sopenharmony_ci
2454e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceScalarBlockLayoutFeatures.txt[]
2455e5c31af7Sopenharmony_ci--
2456e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_scalar_block_layout[]
2457e5c31af7Sopenharmony_ci
2458e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[]
2459e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceUniformBufferStandardLayoutFeatures',desc='Structure indicating support for std430-like packing in uniform buffers',type='structs',alias='VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR']
2460e5c31af7Sopenharmony_ci--
2461e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceUniformBufferStandardLayoutFeatures structure is
2462e5c31af7Sopenharmony_cidefined as:
2463e5c31af7Sopenharmony_ci
2464e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.txt[]
2465e5c31af7Sopenharmony_ci
2466e5c31af7Sopenharmony_ciifdef::VK_KHR_uniform_buffer_standard_layout[]
2467e5c31af7Sopenharmony_cior the equivalent
2468e5c31af7Sopenharmony_ci
2469e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR.txt[]
2470e5c31af7Sopenharmony_ciendif::VK_KHR_uniform_buffer_standard_layout[]
2471e5c31af7Sopenharmony_ci
2472e5c31af7Sopenharmony_ciThis structure describes the following feature:
2473e5c31af7Sopenharmony_ci
2474e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2475e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2476e5c31af7Sopenharmony_ci    structure.
2477e5c31af7Sopenharmony_ci
2478e5c31af7Sopenharmony_ci// Must have preceding whitespace
2479e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2480e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2481e5c31af7Sopenharmony_ci// tag::VK_KHR_uniform_buffer_standard_layout-features[]
2482e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-uniformBufferStandardLayout]]
2483e5c31af7Sopenharmony_ci    pname:uniformBufferStandardLayout indicates that the implementation
2484e5c31af7Sopenharmony_ci    supports the same layouts for uniform buffers as for storage and other
2485e5c31af7Sopenharmony_ci    kinds of buffers.
2486e5c31af7Sopenharmony_ci    See <<interfaces-resources-standard-layout,Standard Buffer Layout>>.
2487e5c31af7Sopenharmony_ci// end::VK_KHR_uniform_buffer_standard_layout-features[]
2488e5c31af7Sopenharmony_ci
2489e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceUniformBufferStandardLayoutFeatures
2490e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2491e5c31af7Sopenharmony_ci
2492e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.txt[]
2493e5c31af7Sopenharmony_ci--
2494e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[]
2495e5c31af7Sopenharmony_ci
2496e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_enable[]
2497e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClipEnableFeaturesEXT',desc='Structure indicating support for explicit enable of depth clip',type='structs']
2498e5c31af7Sopenharmony_ci--
2499e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClipEnableFeaturesEXT structure is defined
2500e5c31af7Sopenharmony_cias:
2501e5c31af7Sopenharmony_ci
2502e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClipEnableFeaturesEXT.txt[]
2503e5c31af7Sopenharmony_ci
2504e5c31af7Sopenharmony_ciThis structure describes the following feature:
2505e5c31af7Sopenharmony_ci
2506e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2507e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2508e5c31af7Sopenharmony_ci    structure.
2509e5c31af7Sopenharmony_ci  * [[features-depthClipEnable]] pname:depthClipEnable indicates that the
2510e5c31af7Sopenharmony_ci    implementation supports setting the depth clipping operation explicitly
2511e5c31af7Sopenharmony_ci    via the slink:VkPipelineRasterizationDepthClipStateCreateInfoEXT
2512e5c31af7Sopenharmony_ci    pipeline state.
2513e5c31af7Sopenharmony_ci    Otherwise depth clipping is only enabled when
2514e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable is
2515e5c31af7Sopenharmony_ci    set to ename:VK_FALSE.
2516e5c31af7Sopenharmony_ci
2517e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClipEnableFeaturesEXT
2518e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2519e5c31af7Sopenharmony_ci
2520e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClipEnableFeaturesEXT.txt[]
2521e5c31af7Sopenharmony_ci--
2522e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_enable[]
2523e5c31af7Sopenharmony_ci
2524e5c31af7Sopenharmony_ciifdef::VK_EXT_memory_priority[]
2525e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMemoryPriorityFeaturesEXT',desc='Structure describing memory priority features that can be supported by an implementation',type='structs']
2526e5c31af7Sopenharmony_ci--
2527e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMemoryPriorityFeaturesEXT structure is defined as:
2528e5c31af7Sopenharmony_ci
2529e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.txt[]
2530e5c31af7Sopenharmony_ci
2531e5c31af7Sopenharmony_ciThis structure describes the following feature:
2532e5c31af7Sopenharmony_ci
2533e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2534e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2535e5c31af7Sopenharmony_ci    structure.
2536e5c31af7Sopenharmony_ci  * [[features-memoryPriority]] pname:memoryPriority indicates that the
2537e5c31af7Sopenharmony_ci    implementation supports memory priorities specified at memory allocation
2538e5c31af7Sopenharmony_ci    time via slink:VkMemoryPriorityAllocateInfoEXT.
2539e5c31af7Sopenharmony_ci
2540e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMemoryPriorityFeaturesEXT
2541e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2542e5c31af7Sopenharmony_ci
2543e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.txt[]
2544e5c31af7Sopenharmony_ci--
2545e5c31af7Sopenharmony_ciendif::VK_EXT_memory_priority[]
2546e5c31af7Sopenharmony_ci
2547e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
2548e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBufferDeviceAddressFeatures',desc='Structure describing buffer address features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceBufferDeviceAddressFeaturesKHR']
2549e5c31af7Sopenharmony_ci--
2550e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeatures structure is defined
2551e5c31af7Sopenharmony_cias:
2552e5c31af7Sopenharmony_ci
2553e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeatures.txt[]
2554e5c31af7Sopenharmony_ci
2555e5c31af7Sopenharmony_ciifdef::VK_KHR_buffer_device_address[]
2556e5c31af7Sopenharmony_cior the equivalent
2557e5c31af7Sopenharmony_ci
2558e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesKHR.txt[]
2559e5c31af7Sopenharmony_ciendif::VK_KHR_buffer_device_address[]
2560e5c31af7Sopenharmony_ci
2561e5c31af7Sopenharmony_ciThis structure describes the following features:
2562e5c31af7Sopenharmony_ci
2563e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2564e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2565e5c31af7Sopenharmony_ci    structure.
2566e5c31af7Sopenharmony_ci
2567e5c31af7Sopenharmony_ci// Must have preceding whitespace
2568e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2569e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2570e5c31af7Sopenharmony_ci// tag::VK_EXT_buffer_device_address-features[]
2571e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-bufferDeviceAddress]]
2572e5c31af7Sopenharmony_ci    pname:bufferDeviceAddress indicates that the implementation supports
2573e5c31af7Sopenharmony_ci    accessing buffer memory in shaders as storage buffers via an address
2574e5c31af7Sopenharmony_ci    queried from flink:vkGetBufferDeviceAddress.
2575e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-bufferDeviceAddressCaptureReplay]]
2576e5c31af7Sopenharmony_ci    pname:bufferDeviceAddressCaptureReplay indicates that the implementation
2577e5c31af7Sopenharmony_ci    supports saving and reusing buffer and device addresses, e.g. for trace
2578e5c31af7Sopenharmony_ci    capture and replay.
2579e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-bufferDeviceAddressMultiDevice]]
2580e5c31af7Sopenharmony_ci    pname:bufferDeviceAddressMultiDevice indicates that the implementation
2581e5c31af7Sopenharmony_ci    supports the pname:bufferDeviceAddress
2582e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_tracing_pipeline+VK_KHR_ray_query[feature]
2583e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
2584e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_query[]
2585e5c31af7Sopenharmony_ci    and pname:rayTracingPipeline features
2586e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
2587e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[]
2588e5c31af7Sopenharmony_ci    , pname:rayTracingPipeline and pname:rayQuery features
2589e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
2590e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
2591e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_tracing_pipeline[]
2592e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[]
2593e5c31af7Sopenharmony_ci    and pname:rayQuery features
2594e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
2595e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
2596e5c31af7Sopenharmony_ci    for logical devices created with multiple physical devices.
2597e5c31af7Sopenharmony_ci    If this feature is not supported, buffer
2598e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
2599e5c31af7Sopenharmony_ci    and acceleration structure
2600e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
2601e5c31af7Sopenharmony_ci    addresses must: not be queried on a logical device created with more
2602e5c31af7Sopenharmony_ci    than one physical device.
2603e5c31af7Sopenharmony_ci// end::VK_EXT_buffer_device_address-features[]
2604e5c31af7Sopenharmony_ci
2605e5c31af7Sopenharmony_ci[NOTE]
2606e5c31af7Sopenharmony_ci.Note
2607e5c31af7Sopenharmony_ci====
2608e5c31af7Sopenharmony_cipname:bufferDeviceAddressMultiDevice exists to allow certain legacy
2609e5c31af7Sopenharmony_ciplatforms to be able to support pname:bufferDeviceAddress without needing to
2610e5c31af7Sopenharmony_cisupport shared GPU virtual addresses for multi-device configurations.
2611e5c31af7Sopenharmony_ci====
2612e5c31af7Sopenharmony_ci
2613e5c31af7Sopenharmony_ciSee flink:vkGetBufferDeviceAddress for more information.
2614e5c31af7Sopenharmony_ci
2615e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBufferDeviceAddressFeatures
2616e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2617e5c31af7Sopenharmony_ci
2618e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBufferDeviceAddressFeatures.txt[]
2619e5c31af7Sopenharmony_ci--
2620e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
2621e5c31af7Sopenharmony_ci
2622e5c31af7Sopenharmony_ciifdef::VK_EXT_buffer_device_address[]
2623e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBufferDeviceAddressFeaturesEXT',desc='Structure describing buffer address features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceBufferAddressFeaturesEXT']
2624e5c31af7Sopenharmony_ci--
2625e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT structure is
2626e5c31af7Sopenharmony_cidefined as:
2627e5c31af7Sopenharmony_ci
2628e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.txt[]
2629e5c31af7Sopenharmony_ci
2630e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferAddressFeaturesEXT.txt[]
2631e5c31af7Sopenharmony_ci
2632e5c31af7Sopenharmony_ciThis structure describes the following features:
2633e5c31af7Sopenharmony_ci
2634e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2635e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2636e5c31af7Sopenharmony_ci    structure.
2637e5c31af7Sopenharmony_ci  * [[features-bufferDeviceAddressEXT]] pname:bufferDeviceAddress indicates
2638e5c31af7Sopenharmony_ci    that the implementation supports accessing buffer memory in shaders as
2639e5c31af7Sopenharmony_ci    storage buffers via an address queried from
2640e5c31af7Sopenharmony_ci    flink:vkGetBufferDeviceAddressEXT.
2641e5c31af7Sopenharmony_ci  * [[features-bufferDeviceAddressCaptureReplayEXT]]
2642e5c31af7Sopenharmony_ci    pname:bufferDeviceAddressCaptureReplay indicates that the implementation
2643e5c31af7Sopenharmony_ci    supports saving and reusing buffer addresses, e.g. for trace capture and
2644e5c31af7Sopenharmony_ci    replay.
2645e5c31af7Sopenharmony_ci  * [[features-bufferDeviceAddressMultiDeviceEXT]]
2646e5c31af7Sopenharmony_ci    pname:bufferDeviceAddressMultiDevice indicates that the implementation
2647e5c31af7Sopenharmony_ci    supports the pname:bufferDeviceAddress feature for logical devices
2648e5c31af7Sopenharmony_ci    created with multiple physical devices.
2649e5c31af7Sopenharmony_ci    If this feature is not supported, buffer addresses must: not be queried
2650e5c31af7Sopenharmony_ci    on a logical device created with more than one physical device.
2651e5c31af7Sopenharmony_ci
2652e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
2653e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2654e5c31af7Sopenharmony_ci
2655e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
2656e5c31af7Sopenharmony_ci[NOTE]
2657e5c31af7Sopenharmony_ci.Note
2658e5c31af7Sopenharmony_ci====
2659e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT structure has the
2660e5c31af7Sopenharmony_cisame members as the sname:VkPhysicalDeviceBufferDeviceAddressFeatures
2661e5c31af7Sopenharmony_cistructure, but the functionality indicated by the members is expressed
2662e5c31af7Sopenharmony_cidifferently.
2663e5c31af7Sopenharmony_ciThe features indicated by the
2664e5c31af7Sopenharmony_cisname:VkPhysicalDeviceBufferDeviceAddressFeatures structure requires
2665e5c31af7Sopenharmony_ciadditional flags to be passed at memory allocation time, and the capture and
2666e5c31af7Sopenharmony_cireplay mechanism is built around opaque capture addresses for buffer and
2667e5c31af7Sopenharmony_cimemory objects.
2668e5c31af7Sopenharmony_ci====
2669e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
2670e5c31af7Sopenharmony_ci
2671e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.txt[]
2672e5c31af7Sopenharmony_ci--
2673e5c31af7Sopenharmony_ciendif::VK_EXT_buffer_device_address[]
2674e5c31af7Sopenharmony_ci
2675e5c31af7Sopenharmony_ciifdef::VK_NV_dedicated_allocation_image_aliasing[]
2676e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',desc='Structure describing dedicated allocation image aliasing features that can be supported by an implementation',type='structs']
2677e5c31af7Sopenharmony_ci--
2678e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
2679e5c31af7Sopenharmony_cistructure is defined as:
2680e5c31af7Sopenharmony_ci
2681e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.txt[]
2682e5c31af7Sopenharmony_ci
2683e5c31af7Sopenharmony_ciThis structure describes the following feature:
2684e5c31af7Sopenharmony_ci
2685e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2686e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2687e5c31af7Sopenharmony_ci    structure.
2688e5c31af7Sopenharmony_ci  * [[features-dedicatedAllocationImageAliasing]]
2689e5c31af7Sopenharmony_ci    pname:dedicatedAllocationImageAliasing indicates that the implementation
2690e5c31af7Sopenharmony_ci    supports aliasing of compatible image objects on a dedicated allocation.
2691e5c31af7Sopenharmony_ci
2692e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
2693e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2694e5c31af7Sopenharmony_ci
2695e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.txt[]
2696e5c31af7Sopenharmony_ci--
2697e5c31af7Sopenharmony_ciendif::VK_NV_dedicated_allocation_image_aliasing[]
2698e5c31af7Sopenharmony_ci
2699e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[]
2700e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImagelessFramebufferFeatures',desc='Structure indicating support for imageless framebuffers',type='structs',alias='VkPhysicalDeviceImagelessFramebufferFeaturesKHR']
2701e5c31af7Sopenharmony_ci--
2702e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImagelessFramebufferFeatures structure is defined
2703e5c31af7Sopenharmony_cias:
2704e5c31af7Sopenharmony_ci
2705e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeatures.txt[]
2706e5c31af7Sopenharmony_ci
2707e5c31af7Sopenharmony_ciifdef::VK_KHR_imageless_framebuffer[]
2708e5c31af7Sopenharmony_cior the equivalent
2709e5c31af7Sopenharmony_ci
2710e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeaturesKHR.txt[]
2711e5c31af7Sopenharmony_ciendif::VK_KHR_imageless_framebuffer[]
2712e5c31af7Sopenharmony_ci
2713e5c31af7Sopenharmony_ciThis structure describes the following feature:
2714e5c31af7Sopenharmony_ci
2715e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2716e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2717e5c31af7Sopenharmony_ci    structure.
2718e5c31af7Sopenharmony_ci
2719e5c31af7Sopenharmony_ci// Must have preceding whitespace
2720e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2721e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2722e5c31af7Sopenharmony_ci// tag::VK_KHR_imageless_framebuffer-features[]
2723e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-imagelessFramebuffer]]
2724e5c31af7Sopenharmony_ci    pname:imagelessFramebuffer indicates that the implementation supports
2725e5c31af7Sopenharmony_ci    specifying the image view for attachments at render pass begin time via
2726e5c31af7Sopenharmony_ci    slink:VkRenderPassAttachmentBeginInfo.
2727e5c31af7Sopenharmony_ci// end::VK_KHR_imageless_framebuffer-features[]
2728e5c31af7Sopenharmony_ci
2729e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImagelessFramebufferFeatures
2730e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2731e5c31af7Sopenharmony_ci
2732e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImagelessFramebufferFeatures.txt[]
2733e5c31af7Sopenharmony_ci--
2734e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[]
2735e5c31af7Sopenharmony_ci
2736e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[]
2737e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT',desc='Structure describing fragment shader interlock features that can be supported by an implementation',type='structs']
2738e5c31af7Sopenharmony_ci--
2739e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT structure is
2740e5c31af7Sopenharmony_cidefined as:
2741e5c31af7Sopenharmony_ci
2742e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.txt[]
2743e5c31af7Sopenharmony_ci
2744e5c31af7Sopenharmony_ciThis structure describes the following features:
2745e5c31af7Sopenharmony_ci
2746e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2747e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2748e5c31af7Sopenharmony_ci    structure.
2749e5c31af7Sopenharmony_ci  * [[features-fragmentShaderSampleInterlock]]
2750e5c31af7Sopenharmony_ci    pname:fragmentShaderSampleInterlock indicates that the implementation
2751e5c31af7Sopenharmony_ci    supports the code:FragmentShaderSampleInterlockEXT SPIR-V capability.
2752e5c31af7Sopenharmony_ci  * [[features-fragmentShaderPixelInterlock]]
2753e5c31af7Sopenharmony_ci    pname:fragmentShaderPixelInterlock indicates that the implementation
2754e5c31af7Sopenharmony_ci    supports the code:FragmentShaderPixelInterlockEXT SPIR-V capability.
2755e5c31af7Sopenharmony_ci  * [[features-fragmentShaderShadingRateInterlock]]
2756e5c31af7Sopenharmony_ci    pname:fragmentShaderShadingRateInterlock indicates that the
2757e5c31af7Sopenharmony_ci    implementation supports the code:FragmentShaderShadingRateInterlockEXT
2758e5c31af7Sopenharmony_ci    SPIR-V capability.
2759e5c31af7Sopenharmony_ci
2760e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
2761e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2762e5c31af7Sopenharmony_ci
2763e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.txt[]
2764e5c31af7Sopenharmony_ci--
2765e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[]
2766e5c31af7Sopenharmony_ci
2767e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[]
2768e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCooperativeMatrixFeaturesNV',desc='Structure describing cooperative matrix features that can be supported by an implementation',type='structs']
2769e5c31af7Sopenharmony_ci--
2770e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCooperativeMatrixFeaturesNV structure is defined
2771e5c31af7Sopenharmony_cias:
2772e5c31af7Sopenharmony_ci
2773e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixFeaturesNV.txt[]
2774e5c31af7Sopenharmony_ci
2775e5c31af7Sopenharmony_ciThis structure describes the following features:
2776e5c31af7Sopenharmony_ci
2777e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2778e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2779e5c31af7Sopenharmony_ci    structure.
2780e5c31af7Sopenharmony_ci  * [[features-cooperativeMatrix]] pname:cooperativeMatrix indicates that
2781e5c31af7Sopenharmony_ci    the implementation supports the code:CooperativeMatrixNV SPIR-V
2782e5c31af7Sopenharmony_ci    capability.
2783e5c31af7Sopenharmony_ci  * [[features-cooperativeMatrixRobustBufferAccess]]
2784e5c31af7Sopenharmony_ci    pname:cooperativeMatrixRobustBufferAccess indicates that the
2785e5c31af7Sopenharmony_ci    implementation supports robust buffer access for SPIR-V
2786e5c31af7Sopenharmony_ci    code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV
2787e5c31af7Sopenharmony_ci    instructions.
2788e5c31af7Sopenharmony_ci
2789e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCooperativeMatrixFeaturesNV
2790e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2791e5c31af7Sopenharmony_ci
2792e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCooperativeMatrixFeaturesNV.txt[]
2793e5c31af7Sopenharmony_ci--
2794e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[]
2795e5c31af7Sopenharmony_ci
2796e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_image_arrays[]
2797e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcrImageArraysFeaturesEXT',desc='Structure describing extended {YCbCr} image creation features that can be supported by an implementation',type='structs']
2798e5c31af7Sopenharmony_ci--
2799e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcrImageArraysFeaturesEXT structure is defined
2800e5c31af7Sopenharmony_cias:
2801e5c31af7Sopenharmony_ci
2802e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.txt[]
2803e5c31af7Sopenharmony_ci
2804e5c31af7Sopenharmony_ciThis structure describes the following feature:
2805e5c31af7Sopenharmony_ci
2806e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2807e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2808e5c31af7Sopenharmony_ci    structure.
2809e5c31af7Sopenharmony_ci  * [[features-ycbcrImageArrays]] pname:ycbcrImageArrays indicates that the
2810e5c31af7Sopenharmony_ci    implementation supports creating images with a format that requires
2811e5c31af7Sopenharmony_ci    <<formats-requiring-sampler-ycbcr-conversion, {YCbCr} conversion>> and
2812e5c31af7Sopenharmony_ci    has multiple array layers.
2813e5c31af7Sopenharmony_ci
2814e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
2815e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2816e5c31af7Sopenharmony_ci
2817e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.txt[]
2818e5c31af7Sopenharmony_ci--
2819e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_image_arrays[]
2820e5c31af7Sopenharmony_ci
2821e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
2822e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[]
2823e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures',desc='Structure describing the extended types subgroups support feature for an implementation',type='structs',alias='VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR']
2824e5c31af7Sopenharmony_ci--
2825e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures structure is
2826e5c31af7Sopenharmony_cidefined as:
2827e5c31af7Sopenharmony_ci
2828e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.txt[]
2829e5c31af7Sopenharmony_ci
2830e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_extended_types[]
2831e5c31af7Sopenharmony_cior the equivalent
2832e5c31af7Sopenharmony_ci
2833e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.txt[]
2834e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_extended_types[]
2835e5c31af7Sopenharmony_ci
2836e5c31af7Sopenharmony_ciThis structure describes the following feature:
2837e5c31af7Sopenharmony_ci
2838e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2839e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2840e5c31af7Sopenharmony_ci    structure.
2841e5c31af7Sopenharmony_ci
2842e5c31af7Sopenharmony_ci// Must have preceding whitespace
2843e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2844e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2845e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_subgroup_extended_types-features[]
2846e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-subgroup-extended-types]]
2847e5c31af7Sopenharmony_ci    pname:shaderSubgroupExtendedTypes is a boolean specifying whether
2848e5c31af7Sopenharmony_ci    subgroup operations can use 8-bit integer, 16-bit integer, 64-bit
2849e5c31af7Sopenharmony_ci    integer, 16-bit floating-point, and vectors of these types in
2850e5c31af7Sopenharmony_ci    <<shaders-group-operations,group operations>> with
2851e5c31af7Sopenharmony_ci    <<shaders-scope-subgroup, subgroup scope>>, if the implementation
2852e5c31af7Sopenharmony_ci    supports the types.
2853e5c31af7Sopenharmony_ci// end::VK_KHR_shader_subgroup_extended_types-features[]
2854e5c31af7Sopenharmony_ci
2855e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
2856e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2857e5c31af7Sopenharmony_ci
2858e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.txt[]
2859e5c31af7Sopenharmony_ci--
2860e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[]
2861e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
2862e5c31af7Sopenharmony_ci
2863e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_host_query_reset[]
2864e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceHostQueryResetFeatures',desc='Structure describing whether queries can be reset from the host',type='structs',alias='VkPhysicalDeviceHostQueryResetFeaturesEXT']
2865e5c31af7Sopenharmony_ci--
2866e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceHostQueryResetFeatures structure is defined as:
2867e5c31af7Sopenharmony_ci
2868e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostQueryResetFeatures.txt[]
2869e5c31af7Sopenharmony_ci
2870e5c31af7Sopenharmony_ciifdef::VK_EXT_host_query_reset[]
2871e5c31af7Sopenharmony_cior the equivalent
2872e5c31af7Sopenharmony_ci
2873e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostQueryResetFeaturesEXT.txt[]
2874e5c31af7Sopenharmony_ciendif::VK_EXT_host_query_reset[]
2875e5c31af7Sopenharmony_ci
2876e5c31af7Sopenharmony_ciThis structure describes the following feature:
2877e5c31af7Sopenharmony_ci
2878e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2879e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2880e5c31af7Sopenharmony_ci    structure.
2881e5c31af7Sopenharmony_ci
2882e5c31af7Sopenharmony_ci// Must have preceding whitespace
2883e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2884e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2885e5c31af7Sopenharmony_ci// tag::VK_EXT_host_query_reset-features[]
2886e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-hostQueryReset]] pname:hostQueryReset
2887e5c31af7Sopenharmony_ci    indicates that the implementation supports resetting queries from the
2888e5c31af7Sopenharmony_ci    host with flink:vkResetQueryPool.
2889e5c31af7Sopenharmony_ci// end::VK_EXT_host_query_reset-features[]
2890e5c31af7Sopenharmony_ci
2891e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceHostQueryResetFeatures
2892e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2893e5c31af7Sopenharmony_ci
2894e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceHostQueryResetFeatures.txt[]
2895e5c31af7Sopenharmony_ci--
2896e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_host_query_reset[]
2897e5c31af7Sopenharmony_ci
2898e5c31af7Sopenharmony_ciifdef::VK_INTEL_shader_integer_functions2[]
2899e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',desc='Structure describing shader integer functions that can be supported by an implementation',type='structs']
2900e5c31af7Sopenharmony_ci--
2901e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL structure is
2902e5c31af7Sopenharmony_cidefined as:
2903e5c31af7Sopenharmony_ci
2904e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.txt[]
2905e5c31af7Sopenharmony_ci
2906e5c31af7Sopenharmony_ciThis structure describes the following feature:
2907e5c31af7Sopenharmony_ci
2908e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2909e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2910e5c31af7Sopenharmony_ci    structure.
2911e5c31af7Sopenharmony_ci  * [[features-shaderIntegerFunctions2]] pname:shaderIntegerFunctions2
2912e5c31af7Sopenharmony_ci    indicates that the implementation supports the
2913e5c31af7Sopenharmony_ci    code:IntegerFunctions2INTEL SPIR-V capability.
2914e5c31af7Sopenharmony_ci
2915e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELfeatures.
2916e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2917e5c31af7Sopenharmony_ci
2918e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.txt[]
2919e5c31af7Sopenharmony_ci--
2920e5c31af7Sopenharmony_ciendif::VK_INTEL_shader_integer_functions2[]
2921e5c31af7Sopenharmony_ci
2922e5c31af7Sopenharmony_ciifdef::VK_NV_coverage_reduction_mode[]
2923e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCoverageReductionModeFeaturesNV',desc='Structure describing the coverage reduction mode features that can be supported by an implementation',type='structs']
2924e5c31af7Sopenharmony_ci--
2925e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCoverageReductionModeFeaturesNV structure is
2926e5c31af7Sopenharmony_cidefined as:
2927e5c31af7Sopenharmony_ci
2928e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.txt[]
2929e5c31af7Sopenharmony_ci
2930e5c31af7Sopenharmony_ciThis structure describes the following feature:
2931e5c31af7Sopenharmony_ci
2932e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2933e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2934e5c31af7Sopenharmony_ci    structure.
2935e5c31af7Sopenharmony_ci  * [[features-coverageReductionMode]] pname:coverageReductionMode indicates
2936e5c31af7Sopenharmony_ci    whether the implementation supports coverage reduction modes.
2937e5c31af7Sopenharmony_ci    See <<fragops-coverage-reduction, Coverage Reduction>>.
2938e5c31af7Sopenharmony_ci
2939e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCoverageReductionModeFeaturesNV
2940e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2941e5c31af7Sopenharmony_ci
2942e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.txt[]
2943e5c31af7Sopenharmony_ci--
2944e5c31af7Sopenharmony_ciendif::VK_NV_coverage_reduction_mode[]
2945e5c31af7Sopenharmony_ci
2946e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
2947e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTimelineSemaphoreFeatures',desc='Structure describing timeline semaphore features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceTimelineSemaphoreFeaturesKHR']
2948e5c31af7Sopenharmony_ci--
2949e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTimelineSemaphoreFeatures structure is defined as:
2950e5c31af7Sopenharmony_ci
2951e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreFeatures.txt[]
2952e5c31af7Sopenharmony_ci
2953e5c31af7Sopenharmony_ciifdef::VK_KHR_timeline_semaphore[]
2954e5c31af7Sopenharmony_cior the equivalent
2955e5c31af7Sopenharmony_ci
2956e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreFeaturesKHR.txt[]
2957e5c31af7Sopenharmony_ciendif::VK_KHR_timeline_semaphore[]
2958e5c31af7Sopenharmony_ci
2959e5c31af7Sopenharmony_ciThis structure describes the following feature:
2960e5c31af7Sopenharmony_ci
2961e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2962e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2963e5c31af7Sopenharmony_ci    structure.
2964e5c31af7Sopenharmony_ci
2965e5c31af7Sopenharmony_ci// Must have preceding whitespace
2966e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2967e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2968e5c31af7Sopenharmony_ci// tag::VK_KHR_timeline_semaphore-features[]
2969e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-timelineSemaphore]] pname:timelineSemaphore
2970e5c31af7Sopenharmony_ci    indicates whether semaphores created with a elink:VkSemaphoreType of
2971e5c31af7Sopenharmony_ci    ename:VK_SEMAPHORE_TYPE_TIMELINE are supported.
2972e5c31af7Sopenharmony_ci// end::VK_KHR_timeline_semaphore-features[]
2973e5c31af7Sopenharmony_ci
2974e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTimelineSemaphoreFeatures
2975e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2976e5c31af7Sopenharmony_ci
2977e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTimelineSemaphoreFeatures.txt[]
2978e5c31af7Sopenharmony_ci--
2979e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
2980e5c31af7Sopenharmony_ci
2981e5c31af7Sopenharmony_ciifdef::VK_EXT_index_type_uint8[]
2982e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceIndexTypeUint8FeaturesEXT',desc='Structure describing whether uint8 index type can be used',type='structs']
2983e5c31af7Sopenharmony_ci--
2984e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceIndexTypeUint8FeaturesEXT structure is defined as:
2985e5c31af7Sopenharmony_ci
2986e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.txt[]
2987e5c31af7Sopenharmony_ci
2988e5c31af7Sopenharmony_ciThis structure describes the following feature:
2989e5c31af7Sopenharmony_ci
2990e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
2991e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2992e5c31af7Sopenharmony_ci    structure.
2993e5c31af7Sopenharmony_ci  * [[features-indexTypeUint8]] pname:indexTypeUint8 indicates that
2994e5c31af7Sopenharmony_ci    ename:VK_INDEX_TYPE_UINT8_EXT can be used with
2995e5c31af7Sopenharmony_ci    flink:vkCmdBindIndexBuffer.
2996e5c31af7Sopenharmony_ci
2997e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceIndexTypeUint8FeaturesEXT
2998e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
2999e5c31af7Sopenharmony_ci
3000e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.txt[]
3001e5c31af7Sopenharmony_ci--
3002e5c31af7Sopenharmony_ciendif::VK_EXT_index_type_uint8[]
3003e5c31af7Sopenharmony_ci
3004e5c31af7Sopenharmony_ciifdef::VK_EXT_primitive_topology_list_restart[]
3005e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',desc='Structure describing whether list type primitives can support primitive restart',type='structs']
3006e5c31af7Sopenharmony_ci--
3007e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT structure
3008e5c31af7Sopenharmony_ciis defined as:
3009e5c31af7Sopenharmony_ci
3010e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.txt[]
3011e5c31af7Sopenharmony_ci
3012e5c31af7Sopenharmony_ciThe members of the
3013e5c31af7Sopenharmony_cisname:VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT structure
3014e5c31af7Sopenharmony_cidescribe the following features:
3015e5c31af7Sopenharmony_ci
3016e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3017e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3018e5c31af7Sopenharmony_ci    structure.
3019e5c31af7Sopenharmony_ci  * [[features-primitiveTopologyListRestart]]
3020e5c31af7Sopenharmony_ci    pname:primitiveTopologyListRestart indicates that list type primitives,
3021e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
3022e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
3023e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
3024e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY and
3025e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, can: use the
3026e5c31af7Sopenharmony_ci    primitive restart index value in index buffers.
3027e5c31af7Sopenharmony_ci  * [[features-primitiveTopologyPatchListRestart]]
3028e5c31af7Sopenharmony_ci    pname:primitiveTopologyPatchListRestart indicates that the
3029e5c31af7Sopenharmony_ci    ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology can: use the primitive
3030e5c31af7Sopenharmony_ci    restart index value in index buffers.
3031e5c31af7Sopenharmony_ci
3032e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
3033e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3034e5c31af7Sopenharmony_ci
3035e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.txt[]
3036e5c31af7Sopenharmony_ci--
3037e5c31af7Sopenharmony_ciendif::VK_EXT_primitive_topology_list_restart[]
3038e5c31af7Sopenharmony_ci
3039e5c31af7Sopenharmony_ciifdef::VK_NV_shader_sm_builtins[]
3040e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSMBuiltinsFeaturesNV',desc='Structure describing the shader SM Builtins features that can be supported by an implementation',type='structs']
3041e5c31af7Sopenharmony_ci--
3042e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSMBuiltinsFeaturesNV structure is defined
3043e5c31af7Sopenharmony_cias:
3044e5c31af7Sopenharmony_ci
3045e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.txt[]
3046e5c31af7Sopenharmony_ci
3047e5c31af7Sopenharmony_ciThis structure describes the following feature:
3048e5c31af7Sopenharmony_ci
3049e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3050e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3051e5c31af7Sopenharmony_ci    structure.
3052e5c31af7Sopenharmony_ci  * [[features-shaderSMBuiltins]] pname:shaderSMBuiltins indicates whether
3053e5c31af7Sopenharmony_ci    the implementation supports the SPIR-V code:ShaderSMBuiltinsNV
3054e5c31af7Sopenharmony_ci    capability.
3055e5c31af7Sopenharmony_ci
3056e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSMBuiltinsFeaturesNV
3057e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3058e5c31af7Sopenharmony_ci
3059e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.txt[]
3060e5c31af7Sopenharmony_ci--
3061e5c31af7Sopenharmony_ciendif::VK_NV_shader_sm_builtins[]
3062e5c31af7Sopenharmony_ci
3063e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
3064e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures',desc='Structure describing whether the implementation can do depth and stencil image barriers separately',type='structs',alias='VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR']
3065e5c31af7Sopenharmony_ci--
3066e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures structure is
3067e5c31af7Sopenharmony_cidefined as:
3068e5c31af7Sopenharmony_ci
3069e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.txt[]
3070e5c31af7Sopenharmony_ci
3071e5c31af7Sopenharmony_ciifdef::VK_KHR_separate_depth_stencil_layouts[]
3072e5c31af7Sopenharmony_cior the equivalent
3073e5c31af7Sopenharmony_ci
3074e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.txt[]
3075e5c31af7Sopenharmony_ciendif::VK_KHR_separate_depth_stencil_layouts[]
3076e5c31af7Sopenharmony_ci
3077e5c31af7Sopenharmony_ciThis structure describes the following feature:
3078e5c31af7Sopenharmony_ci
3079e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3080e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3081e5c31af7Sopenharmony_ci    structure.
3082e5c31af7Sopenharmony_ci
3083e5c31af7Sopenharmony_ci// Must have preceding whitespace
3084e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
3085e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
3086e5c31af7Sopenharmony_ci// tag::VK_KHR_separate_depth_stencil_layouts-features[]
3087e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-separateDepthStencilLayouts]]
3088e5c31af7Sopenharmony_ci    pname:separateDepthStencilLayouts indicates whether the implementation
3089e5c31af7Sopenharmony_ci    supports a sname:VkImageMemoryBarrier for a depth/stencil image with
3090e5c31af7Sopenharmony_ci    only one of ename:VK_IMAGE_ASPECT_DEPTH_BIT or
3091e5c31af7Sopenharmony_ci    ename:VK_IMAGE_ASPECT_STENCIL_BIT set, and whether
3092e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
3093e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
3094e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or
3095e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL can be used.
3096e5c31af7Sopenharmony_ci// end::VK_KHR_separate_depth_stencil_layouts-features[]
3097e5c31af7Sopenharmony_ci
3098e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
3099e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3100e5c31af7Sopenharmony_ci
3101e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.txt[]
3102e5c31af7Sopenharmony_ci--
3103e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
3104e5c31af7Sopenharmony_ci
3105e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_executable_properties[]
3106e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR',desc='Structure describing whether pipeline executable properties are available',type='structs']
3107e5c31af7Sopenharmony_ci--
3108e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR structure
3109e5c31af7Sopenharmony_ciis defined as:
3110e5c31af7Sopenharmony_ci
3111e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.txt[]
3112e5c31af7Sopenharmony_ci
3113e5c31af7Sopenharmony_ciThis structure describes the following feature:
3114e5c31af7Sopenharmony_ci
3115e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3116e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3117e5c31af7Sopenharmony_ci    structure.
3118e5c31af7Sopenharmony_ci  * [[features-pipelineExecutableInfo]] pname:pipelineExecutableInfo
3119e5c31af7Sopenharmony_ci    indicates that the implementation supports reporting properties and
3120e5c31af7Sopenharmony_ci    statistics about the pipeline executables associated with a compiled
3121e5c31af7Sopenharmony_ci    pipeline.
3122e5c31af7Sopenharmony_ci
3123e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
3124e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3125e5c31af7Sopenharmony_ci
3126e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.txt[]
3127e5c31af7Sopenharmony_ci--
3128e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_executable_properties[]
3129e5c31af7Sopenharmony_ci
3130e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_demote_to_helper_invocation[]
3131e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',desc='Structure describing the shader demote to helper invocations features that can be supported by an implementation',type='structs']
3132e5c31af7Sopenharmony_ci--
3133e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
3134e5c31af7Sopenharmony_cistructure is defined as:
3135e5c31af7Sopenharmony_ci
3136e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.txt[]
3137e5c31af7Sopenharmony_ci
3138e5c31af7Sopenharmony_ciThis structure describes the following feature:
3139e5c31af7Sopenharmony_ci
3140e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3141e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3142e5c31af7Sopenharmony_ci    structure.
3143e5c31af7Sopenharmony_ci  * [[features-shaderDemoteToHelperInvocation]]
3144e5c31af7Sopenharmony_ci    pname:shaderDemoteToHelperInvocation indicates whether the
3145e5c31af7Sopenharmony_ci    implementation supports the SPIR-V code:DemoteToHelperInvocationEXT
3146e5c31af7Sopenharmony_ci    capability.
3147e5c31af7Sopenharmony_ci
3148e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
3149e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3150e5c31af7Sopenharmony_ci
3151e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.txt[]
3152e5c31af7Sopenharmony_ci--
3153e5c31af7Sopenharmony_ciendif::VK_EXT_shader_demote_to_helper_invocation[]
3154e5c31af7Sopenharmony_ci
3155e5c31af7Sopenharmony_ciifdef::VK_EXT_texel_buffer_alignment[]
3156e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT',desc='Structure describing the texel buffer alignment features that can be supported by an implementation',type='structs']
3157e5c31af7Sopenharmony_ci--
3158e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT structure is
3159e5c31af7Sopenharmony_cidefined as:
3160e5c31af7Sopenharmony_ci
3161e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.txt[]
3162e5c31af7Sopenharmony_ci
3163e5c31af7Sopenharmony_ciThis structure describes the following feature:
3164e5c31af7Sopenharmony_ci
3165e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3166e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3167e5c31af7Sopenharmony_ci    structure.
3168e5c31af7Sopenharmony_ci  * [[features-texelBufferAlignment]] pname:texelBufferAlignment indicates
3169e5c31af7Sopenharmony_ci    whether the implementation uses more specific alignment requirements
3170e5c31af7Sopenharmony_ci    advertised in slink:VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT
3171e5c31af7Sopenharmony_ci    rather than
3172e5c31af7Sopenharmony_ci    slink:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment.
3173e5c31af7Sopenharmony_ci
3174e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
3175e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3176e5c31af7Sopenharmony_ci
3177e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.txt[]
3178e5c31af7Sopenharmony_ci--
3179e5c31af7Sopenharmony_ciendif::VK_EXT_texel_buffer_alignment[]
3180e5c31af7Sopenharmony_ci
3181e5c31af7Sopenharmony_ciifdef::VK_EXT_texture_compression_astc_hdr[]
3182e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',desc='Structure describing ASTC HDR features that can be supported by an implementation',type='structs']
3183e5c31af7Sopenharmony_ci--
3184e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT structure is
3185e5c31af7Sopenharmony_cidefined as:
3186e5c31af7Sopenharmony_ci
3187e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.txt[]
3188e5c31af7Sopenharmony_ci
3189e5c31af7Sopenharmony_ciThis structure describes the following feature:
3190e5c31af7Sopenharmony_ci
3191e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3192e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3193e5c31af7Sopenharmony_ci    structure.
3194e5c31af7Sopenharmony_ci  * [[features-textureCompressionASTC_HDR]] pname:textureCompressionASTC_HDR
3195e5c31af7Sopenharmony_ci    indicates whether all of the ASTC HDR compressed texture formats are
3196e5c31af7Sopenharmony_ci    supported.
3197e5c31af7Sopenharmony_ci    If this feature is enabled, then the
3198e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
3199e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and
3200e5c31af7Sopenharmony_ci    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must:
3201e5c31af7Sopenharmony_ci    be supported in pname:optimalTilingFeatures for the following formats:
3202e5c31af7Sopenharmony_ci+
3203e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT
3204e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT
3205e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT
3206e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT
3207e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT
3208e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT
3209e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT
3210e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT
3211e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT
3212e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT
3213e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT
3214e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT
3215e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT
3216e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT
3217e5c31af7Sopenharmony_ci+
3218e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled,
3219e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and
3220e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for
3221e5c31af7Sopenharmony_cisupported properties of individual formats as normal.
3222e5c31af7Sopenharmony_ci
3223e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT
3224e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3225e5c31af7Sopenharmony_ci
3226e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.txt[]
3227e5c31af7Sopenharmony_ci--
3228e5c31af7Sopenharmony_ciendif::VK_EXT_texture_compression_astc_hdr[]
3229e5c31af7Sopenharmony_ci
3230e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[]
3231e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLineRasterizationFeaturesEXT',desc='Structure describing the line rasterization features that can be supported by an implementation',type='structs']
3232e5c31af7Sopenharmony_ci--
3233e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLineRasterizationFeaturesEXT structure is defined
3234e5c31af7Sopenharmony_cias:
3235e5c31af7Sopenharmony_ci
3236e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.txt[]
3237e5c31af7Sopenharmony_ci
3238e5c31af7Sopenharmony_ciThis structure describes the following features:
3239e5c31af7Sopenharmony_ci
3240e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3241e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3242e5c31af7Sopenharmony_ci    structure.
3243e5c31af7Sopenharmony_ci  * [[features-rectangularLines]] pname:rectangularLines indicates whether
3244e5c31af7Sopenharmony_ci    the implementation supports <<primsrast-lines,rectangular line
3245e5c31af7Sopenharmony_ci    rasterization>>.
3246e5c31af7Sopenharmony_ci  * [[features-bresenhamLines]] pname:bresenhamLines indicates whether the
3247e5c31af7Sopenharmony_ci    implementation supports <<primsrast-lines-bresenham,Bresenham-style line
3248e5c31af7Sopenharmony_ci    rasterization>>.
3249e5c31af7Sopenharmony_ci  * [[features-smoothLines]] pname:smoothLines indicates whether the
3250e5c31af7Sopenharmony_ci    implementation supports <<primsrast-lines-smooth,smooth line
3251e5c31af7Sopenharmony_ci    rasterization>>.
3252e5c31af7Sopenharmony_ci  * [[features-stippledRectangularLines]] pname:stippledRectangularLines
3253e5c31af7Sopenharmony_ci    indicates whether the implementation supports
3254e5c31af7Sopenharmony_ci    <<primsrast-lines-stipple,stippled line rasterization>> with
3255e5c31af7Sopenharmony_ci    ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT lines, or with
3256e5c31af7Sopenharmony_ci    ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT lines if
3257e5c31af7Sopenharmony_ci    slink:VkPhysicalDeviceLimits::pname:strictLines is ename:VK_TRUE.
3258e5c31af7Sopenharmony_ci  * [[features-stippledBresenhamLines]] pname:stippledBresenhamLines
3259e5c31af7Sopenharmony_ci    indicates whether the implementation supports
3260e5c31af7Sopenharmony_ci    <<primsrast-lines-stipple,stippled line rasterization>> with
3261e5c31af7Sopenharmony_ci    ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT lines.
3262e5c31af7Sopenharmony_ci  * [[features-stippledSmoothLines]] pname:stippledSmoothLines indicates
3263e5c31af7Sopenharmony_ci    whether the implementation supports <<primsrast-lines-stipple,stippled
3264e5c31af7Sopenharmony_ci    line rasterization>> with
3265e5c31af7Sopenharmony_ci    ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT lines.
3266e5c31af7Sopenharmony_ci
3267e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLineRasterizationFeaturesEXT
3268e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3269e5c31af7Sopenharmony_ci
3270e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.txt[]
3271e5c31af7Sopenharmony_ci--
3272e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[]
3273e5c31af7Sopenharmony_ci
3274e5c31af7Sopenharmony_ciifdef::VK_EXT_subgroup_size_control[]
3275e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubgroupSizeControlFeaturesEXT',desc='Structure describing the subgroup size control features that can be supported by an implementation',type='structs']
3276e5c31af7Sopenharmony_ci--
3277e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure is
3278e5c31af7Sopenharmony_cidefined as:
3279e5c31af7Sopenharmony_ci
3280e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlFeaturesEXT.txt[]
3281e5c31af7Sopenharmony_ci
3282e5c31af7Sopenharmony_ciThis structure describes the following features:
3283e5c31af7Sopenharmony_ci
3284e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3285e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3286e5c31af7Sopenharmony_ci    structure.
3287e5c31af7Sopenharmony_ci  * [[features-subgroupSizeControl]] pname:subgroupSizeControl indicates
3288e5c31af7Sopenharmony_ci    whether the implementation supports controlling shader subgroup sizes
3289e5c31af7Sopenharmony_ci    via the
3290e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT
3291e5c31af7Sopenharmony_ci    flag and the
3292e5c31af7Sopenharmony_ci    slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure.
3293e5c31af7Sopenharmony_ci  * [[features-computeFullSubgroups]] pname:computeFullSubgroups indicates
3294e5c31af7Sopenharmony_ci    whether the implementation supports requiring full subgroups in compute
3295e5c31af7Sopenharmony_ci    shaders via the
3296e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT
3297e5c31af7Sopenharmony_ci    flag.
3298e5c31af7Sopenharmony_ci
3299e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubgroupSizeControlFeaturesEXT
3300e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3301e5c31af7Sopenharmony_ci
3302e5c31af7Sopenharmony_ci[NOTE]
3303e5c31af7Sopenharmony_ci.Note
3304e5c31af7Sopenharmony_ci====
3305e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure was added
3306e5c31af7Sopenharmony_ciin version 2 of the `apiext:VK_EXT_subgroup_size_control` extension.
3307e5c31af7Sopenharmony_ciVersion 1 implementations of this extension will not fill out the features
3308e5c31af7Sopenharmony_cistructure but applications may assume that both pname:subgroupSizeControl
3309e5c31af7Sopenharmony_ciand pname:computeFullSubgroups are supported if the extension is supported.
3310e5c31af7Sopenharmony_ci(See also the <<features-requirements, Feature Requirements>> section.)
3311e5c31af7Sopenharmony_ciApplications are advised to add a
3312e5c31af7Sopenharmony_cisname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure to the
3313e5c31af7Sopenharmony_cipname:pNext chain of slink:VkDeviceCreateInfo to enable the features
3314e5c31af7Sopenharmony_ciregardless of the version of the extension supported by the implementation.
3315e5c31af7Sopenharmony_ciIf the implementation only supports version 1, it will safely ignore the
3316e5c31af7Sopenharmony_cisname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure.
3317e5c31af7Sopenharmony_ci====
3318e5c31af7Sopenharmony_ci
3319e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubgroupSizeControlFeaturesEXT.txt[]
3320e5c31af7Sopenharmony_ci--
3321e5c31af7Sopenharmony_ciendif::VK_EXT_subgroup_size_control[]
3322e5c31af7Sopenharmony_ci
3323e5c31af7Sopenharmony_ciifdef::VK_AMD_device_coherent_memory[]
3324e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCoherentMemoryFeaturesAMD',desc='Structure describing whether device coherent memory can be supported by an implementation',type='structs']
3325e5c31af7Sopenharmony_ci--
3326e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCoherentMemoryFeaturesAMD structure is defined as:
3327e5c31af7Sopenharmony_ci
3328e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCoherentMemoryFeaturesAMD.txt[]
3329e5c31af7Sopenharmony_ci
3330e5c31af7Sopenharmony_ciThis structure describes the following feature:
3331e5c31af7Sopenharmony_ci
3332e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3333e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3334e5c31af7Sopenharmony_ci    structure.
3335e5c31af7Sopenharmony_ci  * [[features-deviceCoherentMemory]] pname:deviceCoherentMemory indicates
3336e5c31af7Sopenharmony_ci    that the implementation supports <<VkMemoryPropertyFlagBits,device
3337e5c31af7Sopenharmony_ci    coherent memory>>.
3338e5c31af7Sopenharmony_ci
3339e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCoherentMemoryFeaturesAMD
3340e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3341e5c31af7Sopenharmony_ci
3342e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCoherentMemoryFeaturesAMD.txt[]
3343e5c31af7Sopenharmony_ci--
3344e5c31af7Sopenharmony_ciendif::VK_AMD_device_coherent_memory[]
3345e5c31af7Sopenharmony_ci
3346e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
3347e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAccelerationStructureFeaturesKHR',desc='Structure describing the acceleration structure features that can be supported by an implementation',type='structs']
3348e5c31af7Sopenharmony_ci--
3349e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAccelerationStructureFeaturesKHR structure is
3350e5c31af7Sopenharmony_cidefined as:
3351e5c31af7Sopenharmony_ci
3352e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAccelerationStructureFeaturesKHR.txt[]
3353e5c31af7Sopenharmony_ci
3354e5c31af7Sopenharmony_ciThis structure describes the following features:
3355e5c31af7Sopenharmony_ci
3356e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3357e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3358e5c31af7Sopenharmony_ci    structure.
3359e5c31af7Sopenharmony_ci  * [[features-accelerationStructure]] pname:accelerationStructure indicates
3360e5c31af7Sopenharmony_ci    whether the implementation supports the acceleration structure
3361e5c31af7Sopenharmony_ci    functionality.
3362e5c31af7Sopenharmony_ci    See <<acceleration-structure,Acceleration Structures>>.
3363e5c31af7Sopenharmony_ci  * [[features-accelerationStructureCaptureReplay]]
3364e5c31af7Sopenharmony_ci    pname:accelerationStructureCaptureReplay indicates whether the
3365e5c31af7Sopenharmony_ci    implementation supports saving and reusing acceleration structure device
3366e5c31af7Sopenharmony_ci    addresses, e.g. for trace capture and replay.
3367e5c31af7Sopenharmony_ci  * [[features-accelerationStructureIndirectBuild]]
3368e5c31af7Sopenharmony_ci    pname:accelerationStructureIndirectBuild indicates whether the
3369e5c31af7Sopenharmony_ci    implementation supports indirect acceleration structure build commands,
3370e5c31af7Sopenharmony_ci    e.g. flink:vkCmdBuildAccelerationStructuresIndirectKHR.
3371e5c31af7Sopenharmony_ci  * [[features-accelerationStructureHostCommands]]
3372e5c31af7Sopenharmony_ci    pname:accelerationStructureHostCommands indicates whether the
3373e5c31af7Sopenharmony_ci    implementation supports host side acceleration structure commands, e.g.
3374e5c31af7Sopenharmony_ci    flink:vkBuildAccelerationStructuresKHR,
3375e5c31af7Sopenharmony_ci    flink:vkCopyAccelerationStructureKHR,
3376e5c31af7Sopenharmony_ci    flink:vkCopyAccelerationStructureToMemoryKHR,
3377e5c31af7Sopenharmony_ci    flink:vkCopyMemoryToAccelerationStructureKHR,
3378e5c31af7Sopenharmony_ci    flink:vkWriteAccelerationStructuresPropertiesKHR.
3379e5c31af7Sopenharmony_ci  * [[features-descriptorBindingAccelerationStructureUpdateAfterBind]]
3380e5c31af7Sopenharmony_ci    pname:descriptorBindingAccelerationStructureUpdateAfterBind indicates
3381e5c31af7Sopenharmony_ci    whether the implementation supports updating acceleration structure
3382e5c31af7Sopenharmony_ci    descriptors after a set is bound.
3383e5c31af7Sopenharmony_ci    If this feature is not enabled,
3384e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with
3385e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR.
3386e5c31af7Sopenharmony_ci
3387e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAccelerationStructureFeaturesKHR
3388e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3389e5c31af7Sopenharmony_ci
3390e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAccelerationStructureFeaturesKHR.txt[]
3391e5c31af7Sopenharmony_ci--
3392e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
3393e5c31af7Sopenharmony_ci
3394e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
3395e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingPipelineFeaturesKHR',desc='Structure describing the ray tracing features that can be supported by an implementation',type='structs']
3396e5c31af7Sopenharmony_ci--
3397e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingPipelineFeaturesKHR structure is defined
3398e5c31af7Sopenharmony_cias:
3399e5c31af7Sopenharmony_ci
3400e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.txt[]
3401e5c31af7Sopenharmony_ci
3402e5c31af7Sopenharmony_ciThis structure describes the following features:
3403e5c31af7Sopenharmony_ci
3404e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3405e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3406e5c31af7Sopenharmony_ci    structure.
3407e5c31af7Sopenharmony_ci  * [[features-rayTracingPipeline]] pname:rayTracingPipeline indicates
3408e5c31af7Sopenharmony_ci    whether the implementation supports the ray tracing pipeline
3409e5c31af7Sopenharmony_ci    functionality.
3410e5c31af7Sopenharmony_ci    See <<ray-tracing,Ray Tracing>>.
3411e5c31af7Sopenharmony_ci  * [[features-rayTracingPipelineShaderGroupHandleCaptureReplay]]
3412e5c31af7Sopenharmony_ci    pname:rayTracingPipelineShaderGroupHandleCaptureReplay indicates whether
3413e5c31af7Sopenharmony_ci    the implementation supports saving and reusing shader group handles,
3414e5c31af7Sopenharmony_ci    e.g. for trace capture and replay.
3415e5c31af7Sopenharmony_ci  * [[features-rayTracingPipelineShaderGroupHandleCaptureReplayMixed]]
3416e5c31af7Sopenharmony_ci    pname:rayTracingPipelineShaderGroupHandleCaptureReplayMixed indicates
3417e5c31af7Sopenharmony_ci    whether the implementation supports reuse of shader group handles being
3418e5c31af7Sopenharmony_ci    arbitrarily mixed with creation of non-reused shader group handles.
3419e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, all reused shader group handles must: be
3420e5c31af7Sopenharmony_ci    specified before any non-reused handles may: be created.
3421e5c31af7Sopenharmony_ci  * [[features-rayTracingPipelineTraceRaysIndirect]]
3422e5c31af7Sopenharmony_ci    pname:rayTracingPipelineTraceRaysIndirect indicates whether the
3423e5c31af7Sopenharmony_ci    implementation supports indirect ray tracing commands, e.g.
3424e5c31af7Sopenharmony_ci    flink:vkCmdTraceRaysIndirectKHR.
3425e5c31af7Sopenharmony_ci  * [[features-rayTraversalPrimitiveCulling]]
3426e5c31af7Sopenharmony_ci    pname:rayTraversalPrimitiveCulling indicates whether the implementation
3427e5c31af7Sopenharmony_ci    supports <<ray-traversal-culling-primitive, primitive culling during ray
3428e5c31af7Sopenharmony_ci    traversal>>.
3429e5c31af7Sopenharmony_ci
3430e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingPipelineFeaturesKHR
3431e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3432e5c31af7Sopenharmony_ci
3433e5c31af7Sopenharmony_ci.Valid Usage
3434e5c31af7Sopenharmony_ci****
3435e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575]]
3436e5c31af7Sopenharmony_ci    If pname:rayTracingPipelineShaderGroupHandleCaptureReplayMixed is
3437e5c31af7Sopenharmony_ci    ename:VK_TRUE, pname:rayTracingPipelineShaderGroupHandleCaptureReplay
3438e5c31af7Sopenharmony_ci    must: also be ename:VK_TRUE
3439e5c31af7Sopenharmony_ci****
3440e5c31af7Sopenharmony_ci
3441e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.txt[]
3442e5c31af7Sopenharmony_ci--
3443e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
3444e5c31af7Sopenharmony_ci
3445e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[]
3446e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayQueryFeaturesKHR',desc='Structure describing the ray query features that can be supported by an implementation',type='structs']
3447e5c31af7Sopenharmony_ci--
3448e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayQueryFeaturesKHR structure is defined as:
3449e5c31af7Sopenharmony_ci
3450e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayQueryFeaturesKHR.txt[]
3451e5c31af7Sopenharmony_ci
3452e5c31af7Sopenharmony_ciThis structure describes the following feature:
3453e5c31af7Sopenharmony_ci
3454e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3455e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3456e5c31af7Sopenharmony_ci    structure.
3457e5c31af7Sopenharmony_ci  * [[features-rayQuery]] pname:rayQuery indicates whether the
3458e5c31af7Sopenharmony_ci    implementation supports ray query (code:OpRayQueryProceedKHR)
3459e5c31af7Sopenharmony_ci    functionality.
3460e5c31af7Sopenharmony_ci
3461e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayQueryFeaturesKHR
3462e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3463e5c31af7Sopenharmony_ci
3464e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayQueryFeaturesKHR.txt[]
3465e5c31af7Sopenharmony_ci--
3466e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
3467e5c31af7Sopenharmony_ci
3468e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state[]
3469e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicStateFeaturesEXT',desc='Structure describing what extended dynamic state can be used',type='structs']
3470e5c31af7Sopenharmony_ci--
3471e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicStateFeaturesEXT structure is
3472e5c31af7Sopenharmony_cidefined as:
3473e5c31af7Sopenharmony_ci
3474e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.txt[]
3475e5c31af7Sopenharmony_ci
3476e5c31af7Sopenharmony_ciThis structure describes the following feature:
3477e5c31af7Sopenharmony_ci
3478e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3479e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3480e5c31af7Sopenharmony_ci    structure.
3481e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState]] pname:extendedDynamicState indicates
3482e5c31af7Sopenharmony_ci    that the implementation supports the following dynamic states:
3483e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_CULL_MODE_EXT
3484e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_FRONT_FACE_EXT
3485e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT
3486e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT
3487e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT
3488e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT
3489e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT
3490e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT
3491e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT
3492e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT
3493e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT
3494e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_STENCIL_OP_EXT
3495e5c31af7Sopenharmony_ci
3496e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
3497e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3498e5c31af7Sopenharmony_ci
3499e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.txt[]
3500e5c31af7Sopenharmony_ci--
3501e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state[]
3502e5c31af7Sopenharmony_ci
3503e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state2[]
3504e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicState2FeaturesEXT',desc='Structure describing what extended dynamic state can be used',type='structs']
3505e5c31af7Sopenharmony_ci--
3506e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicState2FeaturesEXT structure is
3507e5c31af7Sopenharmony_cidefined as:
3508e5c31af7Sopenharmony_ci
3509e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.txt[]
3510e5c31af7Sopenharmony_ci
3511e5c31af7Sopenharmony_ciThis structure describes the following features:
3512e5c31af7Sopenharmony_ci
3513e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3514e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3515e5c31af7Sopenharmony_ci    structure.
3516e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState2]] pname:extendedDynamicState2 indicates
3517e5c31af7Sopenharmony_ci    that the implementation supports the following dynamic states:
3518e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT
3519e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT
3520e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT
3521e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState2LogicOp]]
3522e5c31af7Sopenharmony_ci    pname:extendedDynamicState2LogicOp indicates that the implementation
3523e5c31af7Sopenharmony_ci    supports the following dynamic state:
3524e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_LOGIC_OP_EXT
3525e5c31af7Sopenharmony_ci  * [[features-extendedDynamicState2PatchControlPoints]]
3526e5c31af7Sopenharmony_ci    pname:extendedDynamicState2PatchControlPoints indicates that the
3527e5c31af7Sopenharmony_ci    implementation supports the following dynamic state:
3528e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT
3529e5c31af7Sopenharmony_ci
3530e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
3531e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3532e5c31af7Sopenharmony_ci
3533e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.txt[]
3534e5c31af7Sopenharmony_ci--
3535e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state2[]
3536e5c31af7Sopenharmony_ci
3537e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands[]
3538e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV',desc='Structure describing the device-generated commands features that can be supported by an implementation',type='structs']
3539e5c31af7Sopenharmony_ci--
3540e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV structure is
3541e5c31af7Sopenharmony_cidefined as:
3542e5c31af7Sopenharmony_ci
3543e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.txt[]
3544e5c31af7Sopenharmony_ci
3545e5c31af7Sopenharmony_ciThis structure describes the following feature:
3546e5c31af7Sopenharmony_ci
3547e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3548e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3549e5c31af7Sopenharmony_ci    structure.
3550e5c31af7Sopenharmony_ci  * [[features-deviceGeneratedCommands]] pname:deviceGeneratedCommands
3551e5c31af7Sopenharmony_ci    indicates whether the implementation supports functionality to generate
3552e5c31af7Sopenharmony_ci    commands on the device.
3553e5c31af7Sopenharmony_ci    See <<device-generated-commands,Device-Generated Commands>>.
3554e5c31af7Sopenharmony_ci
3555e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV
3556e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3557e5c31af7Sopenharmony_ci
3558e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.txt[]
3559e5c31af7Sopenharmony_ci--
3560e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands[]
3561e5c31af7Sopenharmony_ci
3562e5c31af7Sopenharmony_ciifdef::VK_NV_device_diagnostics_config[]
3563e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDiagnosticsConfigFeaturesNV',desc='Structure describing the device-generated diagnostic configuration features that can be supported by an implementation',type='structs']
3564e5c31af7Sopenharmony_ci--
3565e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDiagnosticsConfigFeaturesNV structure is defined
3566e5c31af7Sopenharmony_cias:
3567e5c31af7Sopenharmony_ci
3568e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.txt[]
3569e5c31af7Sopenharmony_ci
3570e5c31af7Sopenharmony_ciThis structure describes the following feature:
3571e5c31af7Sopenharmony_ci
3572e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3573e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3574e5c31af7Sopenharmony_ci    structure.
3575e5c31af7Sopenharmony_ci  * [[features-diagnosticsConfig]] pname:diagnosticsConfig indicates whether
3576e5c31af7Sopenharmony_ci    the implementation supports the ability to configure diagnostic tools.
3577e5c31af7Sopenharmony_ci
3578e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDiagnosticsConfigFeaturesNV
3579e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3580e5c31af7Sopenharmony_ci
3581e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.txt[]
3582e5c31af7Sopenharmony_ci--
3583e5c31af7Sopenharmony_ciendif::VK_NV_device_diagnostics_config[]
3584e5c31af7Sopenharmony_ci
3585e5c31af7Sopenharmony_ciifdef::VK_EXT_device_memory_report[]
3586e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceMemoryReportFeaturesEXT',desc='Structure describing whether device memory report callback can be supported by an implementation',type='structs']
3587e5c31af7Sopenharmony_ci--
3588e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceMemoryReportFeaturesEXT structure is defined
3589e5c31af7Sopenharmony_cias:
3590e5c31af7Sopenharmony_ci
3591e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.txt[]
3592e5c31af7Sopenharmony_ci
3593e5c31af7Sopenharmony_ciThis structure describes the following feature:
3594e5c31af7Sopenharmony_ci
3595e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3596e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3597e5c31af7Sopenharmony_ci    structure.
3598e5c31af7Sopenharmony_ci  * [[features-deviceMemoryReport]] pname:deviceMemoryReport indicates
3599e5c31af7Sopenharmony_ci    whether the implementation supports the ability to register device
3600e5c31af7Sopenharmony_ci    memory report callbacks.
3601e5c31af7Sopenharmony_ci
3602e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
3603e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3604e5c31af7Sopenharmony_ci
3605e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.txt[]
3606e5c31af7Sopenharmony_ci--
3607e5c31af7Sopenharmony_ciendif::VK_EXT_device_memory_report[]
3608e5c31af7Sopenharmony_ci
3609e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query[]
3610e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT',desc='Structure describing whether global priority query can be supported by an implementation',type='structs']
3611e5c31af7Sopenharmony_ci--
3612e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT structure is
3613e5c31af7Sopenharmony_cidefined as:
3614e5c31af7Sopenharmony_ci
3615e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT.txt[]
3616e5c31af7Sopenharmony_ci
3617e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT
3618e5c31af7Sopenharmony_cistructure describe the following features:
3619e5c31af7Sopenharmony_ci
3620e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3621e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3622e5c31af7Sopenharmony_ci    structure.
3623e5c31af7Sopenharmony_ci  * [[features-globalPriorityQuery]] pname:globalPriorityQuery indicates
3624e5c31af7Sopenharmony_ci    whether the implementation supports the ability to query global queue
3625e5c31af7Sopenharmony_ci    priorities.
3626e5c31af7Sopenharmony_ci
3627e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT
3628e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3629e5c31af7Sopenharmony_ci
3630e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT.txt[]
3631e5c31af7Sopenharmony_ci--
3632e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query[]
3633e5c31af7Sopenharmony_ci
3634e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_creation_cache_control[]
3635e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT',desc='Structure describing whether pipeline cache control can be supported by an implementation',type='structs']
3636e5c31af7Sopenharmony_ci--
3637e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT structure
3638e5c31af7Sopenharmony_ciis defined as:
3639e5c31af7Sopenharmony_ci
3640e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT.txt[]
3641e5c31af7Sopenharmony_ci
3642e5c31af7Sopenharmony_ciThis structure describes the following feature:
3643e5c31af7Sopenharmony_ci
3644e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3645e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3646e5c31af7Sopenharmony_ci    structure.
3647e5c31af7Sopenharmony_ci  * [[features-pipelineCreationCacheControl]]
3648e5c31af7Sopenharmony_ci    pname:pipelineCreationCacheControl indicates that the implementation
3649e5c31af7Sopenharmony_ci    supports:
3650e5c31af7Sopenharmony_ci  ** The following can: be used in stext:Vk*PipelineCreateInfo::pname:flags:
3651e5c31af7Sopenharmony_ci  *** ename:VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT
3652e5c31af7Sopenharmony_ci  *** ename:VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT
3653e5c31af7Sopenharmony_ci  ** The following can: be used in
3654e5c31af7Sopenharmony_ci     slink:VkPipelineCacheCreateInfo::pname:flags:
3655e5c31af7Sopenharmony_ci  *** ename:VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT
3656e5c31af7Sopenharmony_ci
3657e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT
3658e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3659e5c31af7Sopenharmony_ci
3660e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT.txt[]
3661e5c31af7Sopenharmony_ci--
3662e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_creation_cache_control[]
3663e5c31af7Sopenharmony_ci
3664e5c31af7Sopenharmony_ciifdef::VK_KHR_zero_initialize_workgroup_memory[]
3665e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR',desc='Structure describing support for zero initialization of workgroup memory by an implementation',type='structs']
3666e5c31af7Sopenharmony_ci--
3667e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR structure
3668e5c31af7Sopenharmony_ciis defined as:
3669e5c31af7Sopenharmony_ci
3670e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.txt[]
3671e5c31af7Sopenharmony_ci
3672e5c31af7Sopenharmony_ciThis structure describes the following feature:
3673e5c31af7Sopenharmony_ci
3674e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3675e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3676e5c31af7Sopenharmony_ci    structure.
3677e5c31af7Sopenharmony_ci  * [[features-shaderZeroInitializeWorkgroupMemory]]
3678e5c31af7Sopenharmony_ci    pname:shaderZeroInitializeWorkgroupMemory specifies whether the
3679e5c31af7Sopenharmony_ci    implementation supports initializing a variable in Workgroup storage
3680e5c31af7Sopenharmony_ci    class.
3681e5c31af7Sopenharmony_ci
3682e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR
3683e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3684e5c31af7Sopenharmony_ci
3685e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.txt[]
3686e5c31af7Sopenharmony_ci--
3687e5c31af7Sopenharmony_ciendif::VK_KHR_zero_initialize_workgroup_memory[]
3688e5c31af7Sopenharmony_ci
3689e5c31af7Sopenharmony_ciifdef::VK_EXT_private_data[]
3690e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrivateDataFeaturesEXT',desc='Structure specifying physical device support',type='structs']
3691e5c31af7Sopenharmony_ci--
3692e5c31af7Sopenharmony_ci
3693e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrivateDataFeaturesEXT structure is defined as:
3694e5c31af7Sopenharmony_ci
3695e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrivateDataFeaturesEXT.txt[]
3696e5c31af7Sopenharmony_ci
3697e5c31af7Sopenharmony_ciThis structure describes the following feature:
3698e5c31af7Sopenharmony_ci
3699e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3700e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3701e5c31af7Sopenharmony_ci    structure.
3702e5c31af7Sopenharmony_ci  * [[features-privateData]] pname:privateData indicates whether the
3703e5c31af7Sopenharmony_ci    implementation supports private data.
3704e5c31af7Sopenharmony_ci    See <<private-data, Private Data>>.
3705e5c31af7Sopenharmony_ci
3706e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrivateDataFeaturesEXT
3707e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3708e5c31af7Sopenharmony_ci
3709e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrivateDataFeaturesEXT.txt[]
3710e5c31af7Sopenharmony_ci--
3711e5c31af7Sopenharmony_ciendif::VK_EXT_private_data[]
3712e5c31af7Sopenharmony_ci
3713e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[]
3714e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',desc='Structure describing support for shader subgroup uniform control flow by an implementation',type='structs']
3715e5c31af7Sopenharmony_ci--
3716e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
3717e5c31af7Sopenharmony_cistructure is defined as:
3718e5c31af7Sopenharmony_ci
3719e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.txt[]
3720e5c31af7Sopenharmony_ci
3721e5c31af7Sopenharmony_ciThis structure describes the following feature:
3722e5c31af7Sopenharmony_ci
3723e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3724e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3725e5c31af7Sopenharmony_ci    structure.
3726e5c31af7Sopenharmony_ci  * [[features-shaderSubgroupUniformControlFlow]]
3727e5c31af7Sopenharmony_ci    pname:shaderSubgroupUniformControlFlow specifies whether the
3728e5c31af7Sopenharmony_ci    implementation supports the shader execution mode
3729e5c31af7Sopenharmony_ci    code:SubgroupUniformControlFlowKHR
3730e5c31af7Sopenharmony_ci
3731e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrivateDataFeaturesEXT
3732e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3733e5c31af7Sopenharmony_ci
3734e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.txt[]
3735e5c31af7Sopenharmony_ci--
3736e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[]
3737e5c31af7Sopenharmony_ci
3738e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
3739e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRobustness2FeaturesEXT',desc='Structure describing the out-of-bounds behavior for an implementation',type='structs']
3740e5c31af7Sopenharmony_ci--
3741e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRobustness2FeaturesEXT structure is defined as:
3742e5c31af7Sopenharmony_ci
3743e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRobustness2FeaturesEXT.txt[]
3744e5c31af7Sopenharmony_ci
3745e5c31af7Sopenharmony_ciThis structure describes the following features:
3746e5c31af7Sopenharmony_ci
3747e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3748e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3749e5c31af7Sopenharmony_ci    structure.
3750e5c31af7Sopenharmony_ci  * [[features-robustBufferAccess2]] pname:robustBufferAccess2 indicates
3751e5c31af7Sopenharmony_ci    whether buffer accesses are tightly bounds-checked against the range of
3752e5c31af7Sopenharmony_ci    the descriptor.
3753e5c31af7Sopenharmony_ci    Uniform buffers must: be bounds-checked to the range of the descriptor,
3754e5c31af7Sopenharmony_ci    where the range is rounded up to a multiple of
3755e5c31af7Sopenharmony_ci    <<limits-robustUniformBufferAccessSizeAlignment,robustUniformBufferAccessSizeAlignment>>.
3756e5c31af7Sopenharmony_ci    Storage buffers must: be bounds-checked to the range of the descriptor,
3757e5c31af7Sopenharmony_ci    where the range is rounded up to a multiple of
3758e5c31af7Sopenharmony_ci    <<limits-robustStorageBufferAccessSizeAlignment,robustStorageBufferAccessSizeAlignment>>.
3759e5c31af7Sopenharmony_ci    Out of bounds buffer loads will return zero values, and formatted loads
3760e5c31af7Sopenharmony_ci    will have [eq]#(0,0,1)# values inserted for missing G, B, or A
3761e5c31af7Sopenharmony_ci    components based on the format.
3762e5c31af7Sopenharmony_ci  * [[features-robustImageAccess2]] pname:robustImageAccess2 indicates
3763e5c31af7Sopenharmony_ci    whether image accesses are tightly bounds-checked against the dimensions
3764e5c31af7Sopenharmony_ci    of the image view.
3765e5c31af7Sopenharmony_ci    Out of bounds image loads will return zero values, with [eq]#(0,0,1)#
3766e5c31af7Sopenharmony_ci    values <<textures-conversion-to-rgba,inserted for missing G, B, or A
3767e5c31af7Sopenharmony_ci    components>> based on the format.
3768e5c31af7Sopenharmony_ci  * [[features-nullDescriptor]] pname:nullDescriptor indicates whether
3769e5c31af7Sopenharmony_ci    descriptors can: be written with a dlink:VK_NULL_HANDLE resource or
3770e5c31af7Sopenharmony_ci    view, which are considered valid to access and act as if the descriptor
3771e5c31af7Sopenharmony_ci    were bound to nothing.
3772e5c31af7Sopenharmony_ci
3773e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRobustness2FeaturesEXT
3774e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3775e5c31af7Sopenharmony_ci
3776e5c31af7Sopenharmony_ci.Valid Usage
3777e5c31af7Sopenharmony_ci****
3778e5c31af7Sopenharmony_ci  * [[VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000]]
3779e5c31af7Sopenharmony_ci    If pname:robustBufferAccess2 is enabled then
3780e5c31af7Sopenharmony_ci    <<features-robustBufferAccess, pname:robustBufferAccess>> must: also be
3781e5c31af7Sopenharmony_ci    enabled
3782e5c31af7Sopenharmony_ci****
3783e5c31af7Sopenharmony_ci
3784e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRobustness2FeaturesEXT.txt[]
3785e5c31af7Sopenharmony_ci--
3786e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
3787e5c31af7Sopenharmony_ci
3788e5c31af7Sopenharmony_ciifndef::VK_EXT_robustness2[]
3789e5c31af7Sopenharmony_ci[[features-nullDescriptor]] nullDescriptor support requires the
3790e5c31af7Sopenharmony_ci`apiext:VK_EXT_robustness2` extension.
3791e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
3792e5c31af7Sopenharmony_ci
3793e5c31af7Sopenharmony_ciifdef::VK_EXT_image_robustness[]
3794e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageRobustnessFeaturesEXT',desc='Structure describing the out-of-bounds behavior for an implementation',type='structs']
3795e5c31af7Sopenharmony_ci--
3796e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageRobustnessFeaturesEXT structure is defined
3797e5c31af7Sopenharmony_cias:
3798e5c31af7Sopenharmony_ci
3799e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageRobustnessFeaturesEXT.txt[]
3800e5c31af7Sopenharmony_ci
3801e5c31af7Sopenharmony_ciThis structure describes the following feature:
3802e5c31af7Sopenharmony_ci
3803e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3804e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3805e5c31af7Sopenharmony_ci    structure.
3806e5c31af7Sopenharmony_ci  * [[features-robustImageAccess]] pname:robustImageAccess indicates whether
3807e5c31af7Sopenharmony_ci    image accesses are tightly bounds-checked against the dimensions of the
3808e5c31af7Sopenharmony_ci    image view.
3809e5c31af7Sopenharmony_ci    <<textures-input-validation,Invalid texels>> resulting from out of
3810e5c31af7Sopenharmony_ci    bounds image loads will be replaced as described in
3811e5c31af7Sopenharmony_ci    <<textures-texel-replacement,Texel Replacement>>, with either
3812e5c31af7Sopenharmony_ci    [eq]#(0,0,1)# or [eq]#(0,0,0)# values inserted for missing G, B, or A
3813e5c31af7Sopenharmony_ci    components based on the format.
3814e5c31af7Sopenharmony_ci
3815e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageRobustnessFeaturesEXT
3816e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3817e5c31af7Sopenharmony_ci
3818e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageRobustnessFeaturesEXT.txt[]
3819e5c31af7Sopenharmony_ci--
3820e5c31af7Sopenharmony_ciendif::VK_EXT_image_robustness[]
3821e5c31af7Sopenharmony_ci
3822e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_terminate_invocation[]
3823e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR',desc='Structure describing support for the SPIR-V code:SPV_KHR_terminate_invocation extension',type='structs']
3824e5c31af7Sopenharmony_ci--
3825e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR structure is
3826e5c31af7Sopenharmony_cidefined as:
3827e5c31af7Sopenharmony_ci
3828e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR.txt[]
3829e5c31af7Sopenharmony_ci
3830e5c31af7Sopenharmony_ciThis structure describes the following feature:
3831e5c31af7Sopenharmony_ci
3832e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3833e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3834e5c31af7Sopenharmony_ci    structure.
3835e5c31af7Sopenharmony_ci  * [[features-shaderTerminateInvocation]] pname:shaderTerminateInvocation
3836e5c31af7Sopenharmony_ci    specifies whether the implementation supports SPIR-V modules that use
3837e5c31af7Sopenharmony_ci    the `SPV_KHR_terminate_invocation` extension.
3838e5c31af7Sopenharmony_ci
3839e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR
3840e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3841e5c31af7Sopenharmony_ci
3842e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR.txt[]
3843e5c31af7Sopenharmony_ci--
3844e5c31af7Sopenharmony_ciendif::VK_KHR_shader_terminate_invocation[]
3845e5c31af7Sopenharmony_ci
3846e5c31af7Sopenharmony_ciifdef::VK_EXT_custom_border_color[]
3847e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCustomBorderColorFeaturesEXT',desc='Structure describing whether custom border colors can be supported by an implementation',type='structs']
3848e5c31af7Sopenharmony_ci--
3849e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCustomBorderColorFeaturesEXT structure is defined
3850e5c31af7Sopenharmony_cias:
3851e5c31af7Sopenharmony_ci
3852e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCustomBorderColorFeaturesEXT.txt[]
3853e5c31af7Sopenharmony_ci
3854e5c31af7Sopenharmony_ciThis structure describes the following features:
3855e5c31af7Sopenharmony_ci
3856e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3857e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3858e5c31af7Sopenharmony_ci    structure.
3859e5c31af7Sopenharmony_ci  * [[features-customBorderColors]] pname:customBorderColors indicates that
3860e5c31af7Sopenharmony_ci    the implementation supports providing a pname:borderColor value with one
3861e5c31af7Sopenharmony_ci    of the following values at sampler creation time:
3862e5c31af7Sopenharmony_ci  ** ename:VK_BORDER_COLOR_FLOAT_CUSTOM_EXT
3863e5c31af7Sopenharmony_ci  ** ename:VK_BORDER_COLOR_INT_CUSTOM_EXT
3864e5c31af7Sopenharmony_ci  * [[features-customBorderColorWithoutFormat]]
3865e5c31af7Sopenharmony_ci    pname:customBorderColorWithoutFormat indicates that explicit formats are
3866e5c31af7Sopenharmony_ci    not required for custom border colors and the value of the pname:format
3867e5c31af7Sopenharmony_ci    member of the slink:VkSamplerCustomBorderColorCreateInfoEXT structure
3868e5c31af7Sopenharmony_ci    may: be ename:VK_FORMAT_UNDEFINED.
3869e5c31af7Sopenharmony_ci    If this feature bit is not set, applications must: provide the
3870e5c31af7Sopenharmony_ci    elink:VkFormat of the image view(s) being sampled by this sampler in the
3871e5c31af7Sopenharmony_ci    pname:format member of the slink:VkSamplerCustomBorderColorCreateInfoEXT
3872e5c31af7Sopenharmony_ci    structure.
3873e5c31af7Sopenharmony_ci
3874e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCustomBorderColorFeaturesEXT
3875e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3876e5c31af7Sopenharmony_ci
3877e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCustomBorderColorFeaturesEXT.txt[]
3878e5c31af7Sopenharmony_ci--
3879e5c31af7Sopenharmony_ciendif::VK_EXT_custom_border_color[]
3880e5c31af7Sopenharmony_ci
3881e5c31af7Sopenharmony_ciifdef::VK_EXT_border_color_swizzle[]
3882e5c31af7Sopenharmony_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']
3883e5c31af7Sopenharmony_ci--
3884e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBorderColorSwizzleFeaturesEXT structure is defined
3885e5c31af7Sopenharmony_cias:
3886e5c31af7Sopenharmony_ci
3887e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.txt[]
3888e5c31af7Sopenharmony_ci
3889e5c31af7Sopenharmony_ciThis structure describes the following features:
3890e5c31af7Sopenharmony_ci
3891e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3892e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3893e5c31af7Sopenharmony_ci    structure.
3894e5c31af7Sopenharmony_ci  * [[features-borderColorSwizzle]] pname:borderColorSwizzle indicates that
3895e5c31af7Sopenharmony_ci    defined values are returned by sampled image operations when used with a
3896e5c31af7Sopenharmony_ci    sampler that uses a ename:VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
3897e5c31af7Sopenharmony_ci    ename:VK_BORDER_COLOR_INT_OPAQUE_BLACK,
3898e5c31af7Sopenharmony_ci    ename:VK_BORDER_COLOR_FLOAT_CUSTOM_EXT, or
3899e5c31af7Sopenharmony_ci    ename:VK_BORDER_COLOR_INT_CUSTOM_EXT pname:borderColor and an image view
3900e5c31af7Sopenharmony_ci    that uses a non-<<resources-image-views-identity-mappings,identity
3901e5c31af7Sopenharmony_ci    component mapping>>, when either pname:borderColorSwizzleFromImage is
3902e5c31af7Sopenharmony_ci    enabled or the slink:VkSamplerBorderColorComponentMappingCreateInfoEXT
3903e5c31af7Sopenharmony_ci    is specified.
3904e5c31af7Sopenharmony_ci  * [[features-borderColorSwizzleFromImage]]
3905e5c31af7Sopenharmony_ci    pname:borderColorSwizzleFromImage indicates that the implementation will
3906e5c31af7Sopenharmony_ci    return the correct border color values from sampled image operations
3907e5c31af7Sopenharmony_ci    under the conditions expressed above, without the application having to
3908e5c31af7Sopenharmony_ci    specify the border color component mapping when creating the sampler
3909e5c31af7Sopenharmony_ci    object.
3910e5c31af7Sopenharmony_ci    If this feature bit is not set, applications can: chain a
3911e5c31af7Sopenharmony_ci    slink:VkSamplerBorderColorComponentMappingCreateInfoEXT structure when
3912e5c31af7Sopenharmony_ci    creating samplers for use with image views that do not have an
3913e5c31af7Sopenharmony_ci    <<resources-image-views-identity-mappings,identity swizzle>> and, when
3914e5c31af7Sopenharmony_ci    those samplers are combined with image views using the same component
3915e5c31af7Sopenharmony_ci    mapping, sampled image operations that use opaque black or custom border
3916e5c31af7Sopenharmony_ci    colors will return the correct border color values.
3917e5c31af7Sopenharmony_ci
3918e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
3919e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
3920e5c31af7Sopenharmony_ci
3921e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.txt[]
3922e5c31af7Sopenharmony_ci--
3923e5c31af7Sopenharmony_ciendif::VK_EXT_border_color_swizzle[]
3924e5c31af7Sopenharmony_ci
3925e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[]
3926e5c31af7Sopenharmony_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']
3927e5c31af7Sopenharmony_ci--
3928e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePortabilitySubsetFeaturesKHR structure is defined
3929e5c31af7Sopenharmony_cias:
3930e5c31af7Sopenharmony_ci
3931e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePortabilitySubsetFeaturesKHR.txt[]
3932e5c31af7Sopenharmony_ci
3933e5c31af7Sopenharmony_ciThis structure describes the following features:
3934e5c31af7Sopenharmony_ci
3935e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
3936e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3937e5c31af7Sopenharmony_ci    structure.
3938e5c31af7Sopenharmony_ci  * [[features-constantAlphaColorBlendFactors]]
3939e5c31af7Sopenharmony_ci    pname:constantAlphaColorBlendFactors indicates whether this
3940e5c31af7Sopenharmony_ci    implementation supports constant _alpha_ <<framebuffer-blendfactors>>
3941e5c31af7Sopenharmony_ci    used as source or destination _color_ <<framebuffer-blending>>.
3942e5c31af7Sopenharmony_ci  * [[features-events]] pname:events indicates whether this implementation
3943e5c31af7Sopenharmony_ci    supports synchronization using <<synchronization-events>>.
3944e5c31af7Sopenharmony_ci  * [[features-imageViewFormatReinterpretation]]
3945e5c31af7Sopenharmony_ci    pname:imageViewFormatReinterpretation indicates whether this
3946e5c31af7Sopenharmony_ci    implementation supports a sname:VkImageView being created with a texel
3947e5c31af7Sopenharmony_ci    format containing a different number of components, or a different
3948e5c31af7Sopenharmony_ci    number of bits in each component, than the texel format of the
3949e5c31af7Sopenharmony_ci    underlying sname:VkImage.
3950e5c31af7Sopenharmony_ci  * [[features-imageViewFormatSwizzle]] pname:imageViewFormatSwizzle
3951e5c31af7Sopenharmony_ci    indicates whether this implementation supports remapping format
3952e5c31af7Sopenharmony_ci    components using slink:VkImageViewCreateInfo::pname:components.
3953e5c31af7Sopenharmony_ci  * [[features-imageView2DOn3DImage]] pname:imageView2DOn3DImage indicates
3954e5c31af7Sopenharmony_ci    whether this implementation supports a sname:VkImage being created with
3955e5c31af7Sopenharmony_ci    the ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT flag set, permitting a
3956e5c31af7Sopenharmony_ci    2D or 2D array image view to be created on a 3D sname:VkImage.
3957e5c31af7Sopenharmony_ci  * [[features-multisampleArrayImage]] pname:multisampleArrayImage indicates
3958e5c31af7Sopenharmony_ci    whether this implementation supports a sname:VkImage being created as a
3959e5c31af7Sopenharmony_ci    2D array with multiple samples per texel.
3960e5c31af7Sopenharmony_ci  * [[features-mutableComparisonSamplers]] pname:mutableComparisonSamplers
3961e5c31af7Sopenharmony_ci    indicates whether this implementation allows descriptors with comparison
3962e5c31af7Sopenharmony_ci    samplers to be <<descriptorsets-updates, updated>>.
3963e5c31af7Sopenharmony_ci  * [[features-pointPolygons]] pname:pointPolygons indicates whether this
3964e5c31af7Sopenharmony_ci    implementation supports <<primsrast>> using a _point_
3965e5c31af7Sopenharmony_ci    <<primsrast-polygonmode>>.
3966e5c31af7Sopenharmony_ci  * [[features-samplerMipLodBias]] pname:samplerMipLodBias indicates whether
3967e5c31af7Sopenharmony_ci    this implementation supports setting a <<samplers-mipLodBias, mipmap LOD
3968e5c31af7Sopenharmony_ci    bias value>> when <<samplers, creating a sampler>>.
3969e5c31af7Sopenharmony_ci  * [[features-separateStencilMaskRef]] pname:separateStencilMaskRef
3970e5c31af7Sopenharmony_ci    indicates whether this implementation supports separate front and back
3971e5c31af7Sopenharmony_ci    <<fragops-stencil>> reference values.
3972e5c31af7Sopenharmony_ci  * [[features-shaderSampleRateInterpolationFunctions]]
3973e5c31af7Sopenharmony_ci    pname:shaderSampleRateInterpolationFunctions indicates whether this
3974e5c31af7Sopenharmony_ci    implementation supports fragment shaders which use the
3975e5c31af7Sopenharmony_ci    <<spirvenv-capabilities-table-InterpolationFunction,
3976e5c31af7Sopenharmony_ci    code:InterpolationFunction>> capability and the extended instructions
3977e5c31af7Sopenharmony_ci    `InterpolateAtCentroid`, `InterpolateAtOffset`, and
3978e5c31af7Sopenharmony_ci    `InterpolateAtSample` from the `GLSL.std.450` extended instruction set.
3979e5c31af7Sopenharmony_ci    This member is only meaningful if the
3980e5c31af7Sopenharmony_ci    <<features-sampleRateShading,sampleRateShading>> feature is supported.
3981e5c31af7Sopenharmony_ci  * [[features-tessellationIsolines]] pname:tessellationIsolines indicates
3982e5c31af7Sopenharmony_ci    whether this implementation supports
3983e5c31af7Sopenharmony_ci    <<tessellation-isoline-tessellation, isoline output>> from the
3984e5c31af7Sopenharmony_ci    <<tessellation>> stage of a graphics pipeline.
3985e5c31af7Sopenharmony_ci    This member is only meaningful if
3986e5c31af7Sopenharmony_ci    <<features-tessellationShader,tessellation shaders>> are supported.
3987e5c31af7Sopenharmony_ci  * [[features-tessellationPointMode]] pname:tessellationPointMode indicates
3988e5c31af7Sopenharmony_ci    whether this implementation supports <<tessellation-point-mode, point
3989e5c31af7Sopenharmony_ci    output>> from the <<tessellation>> stage of a graphics pipeline.
3990e5c31af7Sopenharmony_ci    This member is only meaningful if
3991e5c31af7Sopenharmony_ci    <<features-tessellationShader,tessellation shaders>> are supported.
3992e5c31af7Sopenharmony_ci  * [[features-triangleFans]] pname:triangleFans indicates whether this
3993e5c31af7Sopenharmony_ci    implementation supports <<drawing-triangle-fans>> primitive topology.
3994e5c31af7Sopenharmony_ci  * [[features-vertexAttributeAccessBeyondStride]]
3995e5c31af7Sopenharmony_ci    pname:vertexAttributeAccessBeyondStride indicates whether this
3996e5c31af7Sopenharmony_ci    implementation supports accessing a vertex input attribute beyond the
3997e5c31af7Sopenharmony_ci    stride of the corresponding vertex input binding.
3998e5c31af7Sopenharmony_ci
3999e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePortabilitySubsetFeaturesKHR
4000e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4001e5c31af7Sopenharmony_ci
4002e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePortabilitySubsetFeaturesKHR.txt[]
4003e5c31af7Sopenharmony_ci--
4004e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
4005e5c31af7Sopenharmony_ci
4006e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[]
4007e5c31af7Sopenharmony_ciinclude::{chapters}/VK_KHR_performance_query/features.txt[]
4008e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[]
4009e5c31af7Sopenharmony_ci
4010e5c31af7Sopenharmony_ciifdef::VK_EXT_4444_formats[]
4011e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice4444FormatsFeaturesEXT',desc='Structure describing additional 4444 formats supported by an implementation',type='structs']
4012e5c31af7Sopenharmony_ci--
4013e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevice4444FormatsFeaturesEXT structure is defined as:
4014e5c31af7Sopenharmony_ci
4015e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice4444FormatsFeaturesEXT.txt[]
4016e5c31af7Sopenharmony_ci
4017e5c31af7Sopenharmony_ciThis structure describes the following features:
4018e5c31af7Sopenharmony_ci
4019e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4020e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4021e5c31af7Sopenharmony_ci    structure.
4022e5c31af7Sopenharmony_ci  * [[features-formatA4R4G4B4]] pname:formatA4R4G4B4 indicates that the
4023e5c31af7Sopenharmony_ci    implementation must: support using a elink:VkFormat of
4024e5c31af7Sopenharmony_ci    ename:VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT with at least the following
4025e5c31af7Sopenharmony_ci    elink:VkFormatFeatureFlagBits:
4026e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
4027e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT
4028e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
4029e5c31af7Sopenharmony_ci  * [[features-formatA4B4G4R4]] pname:formatA4B4G4R4 indicates that the
4030e5c31af7Sopenharmony_ci    implementation must: support using a elink:VkFormat of
4031e5c31af7Sopenharmony_ci    ename:VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT with at least the following
4032e5c31af7Sopenharmony_ci    elink:VkFormatFeatureFlagBits:
4033e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
4034e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT
4035e5c31af7Sopenharmony_ci  ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
4036e5c31af7Sopenharmony_ci
4037e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice4444FormatsFeaturesEXT
4038e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4039e5c31af7Sopenharmony_ci
4040e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice4444FormatsFeaturesEXT.txt[]
4041e5c31af7Sopenharmony_ci--
4042e5c31af7Sopenharmony_ciendif::VK_EXT_4444_formats[]
4043e5c31af7Sopenharmony_ci
4044e5c31af7Sopenharmony_ciifdef::VK_VALVE_mutable_descriptor_type[]
4045e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE',desc='Structure describing whether the mutable descriptor type is supported',type='structs']
4046e5c31af7Sopenharmony_ci--
4047e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE structure is
4048e5c31af7Sopenharmony_cidefined as:
4049e5c31af7Sopenharmony_ci
4050e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.txt[]
4051e5c31af7Sopenharmony_ci
4052e5c31af7Sopenharmony_ciThis structure describes the following feature:
4053e5c31af7Sopenharmony_ci
4054e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4055e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4056e5c31af7Sopenharmony_ci    structure.
4057e5c31af7Sopenharmony_ci  * [[features-mutableDescriptorType]] pname:mutableDescriptorType indicates
4058e5c31af7Sopenharmony_ci    that the implementation must: support using the elink:VkDescriptorType
4059e5c31af7Sopenharmony_ci    of ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE with at least the following
4060e5c31af7Sopenharmony_ci    descriptor types, where any combination of the types must: be supported:
4061e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
4062e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
4063e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
4064e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
4065e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
4066e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
4067e5c31af7Sopenharmony_ci
4068e5c31af7Sopenharmony_ci  * Additionally, pname:mutableDescriptorType indicates that:
4069e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
4070e5c31af7Sopenharmony_ci  ** Non-uniform descriptor indexing must: be supported if all descriptor
4071e5c31af7Sopenharmony_ci     types in a slink:VkMutableDescriptorTypeListVALVE for
4072e5c31af7Sopenharmony_ci     ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE have the corresponding
4073e5c31af7Sopenharmony_ci     non-uniform indexing features enabled in
4074e5c31af7Sopenharmony_ci     slink:VkPhysicalDeviceDescriptorIndexingFeatures.
4075e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT with
4076e5c31af7Sopenharmony_ci     pname:descriptorType of ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE relaxes
4077e5c31af7Sopenharmony_ci     the list of required descriptor types to the descriptor types which
4078e5c31af7Sopenharmony_ci     have the corresponding update-after-bind feature enabled in
4079e5c31af7Sopenharmony_ci     slink:VkPhysicalDeviceDescriptorIndexingFeatures.
4080e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
4081e5c31af7Sopenharmony_ci  ** Dynamically uniform descriptor indexing must: be supported if all
4082e5c31af7Sopenharmony_ci     descriptor types in a slink:VkMutableDescriptorTypeListVALVE for
4083e5c31af7Sopenharmony_ci     ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE have the corresponding dynamic
4084e5c31af7Sopenharmony_ci     indexing features enabled.
4085e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE must: be
4086e5c31af7Sopenharmony_ci     supported.
4087e5c31af7Sopenharmony_ci  ** ename:VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE must: be supported.
4088e5c31af7Sopenharmony_ci
4089e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE
4090e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4091e5c31af7Sopenharmony_ci
4092e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.txt[]
4093e5c31af7Sopenharmony_ci--
4094e5c31af7Sopenharmony_ciendif::VK_VALVE_mutable_descriptor_type[]
4095e5c31af7Sopenharmony_ci
4096e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[]
4097e5c31af7Sopenharmony_ci
4098e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClipControlFeaturesEXT',desc='Structure describing additional depth clip control supported by an implementation',type='structs']
4099e5c31af7Sopenharmony_ci--
4100e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClipControlFeaturesEXT structure is defined
4101e5c31af7Sopenharmony_cias:
4102e5c31af7Sopenharmony_ci
4103e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClipControlFeaturesEXT.txt[]
4104e5c31af7Sopenharmony_ci
4105e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceDepthClipControlFeaturesEXT
4106e5c31af7Sopenharmony_cistructure describe the following features:
4107e5c31af7Sopenharmony_ci
4108e5c31af7Sopenharmony_ci  * [[features-depthClipControl]] pname:depthClipControl indicates that the
4109e5c31af7Sopenharmony_ci    implementation supports setting
4110e5c31af7Sopenharmony_ci    slink:VkPipelineViewportDepthClipControlCreateInfoEXT::pname:negativeOneToOne
4111e5c31af7Sopenharmony_ci    to ename:VK_TRUE.
4112e5c31af7Sopenharmony_ci
4113e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClipControlFeaturesEXT
4114e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4115e5c31af7Sopenharmony_ci
4116e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClipControlFeaturesEXT.txt[]
4117e5c31af7Sopenharmony_ci--
4118e5c31af7Sopenharmony_ci
4119e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[]
4120e5c31af7Sopenharmony_ci
4121e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
4122e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',desc='Structure describing the workgroup storage explicit layout features that can be supported by an implementation',type='structs']
4123e5c31af7Sopenharmony_ci--
4124e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR structure
4125e5c31af7Sopenharmony_ciis defined as:
4126e5c31af7Sopenharmony_ci
4127e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.txt[]
4128e5c31af7Sopenharmony_ci
4129e5c31af7Sopenharmony_ciThis structure describes the following features:
4130e5c31af7Sopenharmony_ci
4131e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4132e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4133e5c31af7Sopenharmony_ci    structure.
4134e5c31af7Sopenharmony_ci  * [[features-workgroupMemoryExplicitLayout]]
4135e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayout indicates whether the implementation
4136e5c31af7Sopenharmony_ci    supports the SPIR-V code:WorkgroupMemoryExplicitLayoutKHR capability.
4137e5c31af7Sopenharmony_ci  * [[features-workgroupMemoryExplicitLayoutScalarBlockLayout]]
4138e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayoutScalarBlockLayout indicates whether
4139e5c31af7Sopenharmony_ci    the implementation supports scalar alignment for laying out Workgroup
4140e5c31af7Sopenharmony_ci    Blocks.
4141e5c31af7Sopenharmony_ci  * [[features-workgroupMemoryExplicitLayout8BitAccess]]
4142e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayout8BitAccess indicates whether objects
4143e5c31af7Sopenharmony_ci    in the code:Workgroup storage class with the code:Block decoration can:
4144e5c31af7Sopenharmony_ci    have 8-bit integer members.
4145e5c31af7Sopenharmony_ci    If this feature is not enabled, 8-bit integer members must: not be used
4146e5c31af7Sopenharmony_ci    in such objects.
4147e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
4148e5c31af7Sopenharmony_ci    code:WorkgroupMemoryExplicitLayout8BitAccessKHR capability.
4149e5c31af7Sopenharmony_ci  * [[features-workgroupMemoryExplicitLayout16BitAccess]]
4150e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayout16BitAccess indicates whether objects
4151e5c31af7Sopenharmony_ci    in the code:Workgroup storage class with the code:Block decoration can:
4152e5c31af7Sopenharmony_ci    have 16-bit integer and 16-bit floating-point members.
4153e5c31af7Sopenharmony_ci    If this feature is not enabled, 16-bit integer or 16-bit floating-point
4154e5c31af7Sopenharmony_ci    members must: not be used in such objects.
4155e5c31af7Sopenharmony_ci    This also indicates whether shader modules can: declare the
4156e5c31af7Sopenharmony_ci    code:WorkgroupMemoryExplicitLayout16BitAccessKHR capability.
4157e5c31af7Sopenharmony_ci
4158e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
4159e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4160e5c31af7Sopenharmony_ci
4161e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.txt[]
4162e5c31af7Sopenharmony_ci--
4163e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
4164e5c31af7Sopenharmony_ci
4165e5c31af7Sopenharmony_ciifdef::VK_KHR_synchronization2[]
4166e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSynchronization2FeaturesKHR',desc='Structure describing whether the implementation supports v2 synchronization commands',type='structs']
4167e5c31af7Sopenharmony_ci--
4168e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSynchronization2FeaturesKHR structure is defined
4169e5c31af7Sopenharmony_cias:
4170e5c31af7Sopenharmony_ci
4171e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSynchronization2FeaturesKHR.txt[]
4172e5c31af7Sopenharmony_ci
4173e5c31af7Sopenharmony_ciThis structure describes the following feature:
4174e5c31af7Sopenharmony_ci
4175e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4176e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4177e5c31af7Sopenharmony_ci    structure.
4178e5c31af7Sopenharmony_ci  * [[features-synchronization2]] pname:synchronization2 indicates whether
4179e5c31af7Sopenharmony_ci    the implementation supports the new set of synchronization commands
4180e5c31af7Sopenharmony_ci    introduced in `apiext:VK_KHR_synchronization2`.
4181e5c31af7Sopenharmony_ci
4182e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSynchronization2FeaturesKHR
4183e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4184e5c31af7Sopenharmony_ci
4185e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSynchronization2FeaturesKHR.txt[]
4186e5c31af7Sopenharmony_ci--
4187e5c31af7Sopenharmony_ciendif::VK_KHR_synchronization2[]
4188e5c31af7Sopenharmony_ci
4189e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_input_dynamic_state[]
4190e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT',desc='Structure describing whether the dynamic vertex input state can be used',type='structs']
4191e5c31af7Sopenharmony_ci--
4192e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT structure is
4193e5c31af7Sopenharmony_cidefined as:
4194e5c31af7Sopenharmony_ci
4195e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.txt[]
4196e5c31af7Sopenharmony_ci
4197e5c31af7Sopenharmony_ciThis structure describes the following feature:
4198e5c31af7Sopenharmony_ci
4199e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4200e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4201e5c31af7Sopenharmony_ci    structure.
4202e5c31af7Sopenharmony_ci  * [[features-vertexInputDynamicState]] pname:vertexInputDynamicState
4203e5c31af7Sopenharmony_ci    indicates that the implementation supports the following dynamic states:
4204e5c31af7Sopenharmony_ci  ** ename:VK_DYNAMIC_STATE_VERTEX_INPUT_EXT
4205e5c31af7Sopenharmony_ci
4206e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
4207e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4208e5c31af7Sopenharmony_ci
4209e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.txt[]
4210e5c31af7Sopenharmony_ci--
4211e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_input_dynamic_state[]
4212e5c31af7Sopenharmony_ci
4213e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
4214e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateFeaturesKHR',desc='Structure indicating support for variable rate fragment shading',type='structs']
4215e5c31af7Sopenharmony_ci--
4216e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateFeaturesKHR structure is
4217e5c31af7Sopenharmony_cidefined as:
4218e5c31af7Sopenharmony_ci
4219e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.txt[]
4220e5c31af7Sopenharmony_ci
4221e5c31af7Sopenharmony_ciThis structure describes the following features:
4222e5c31af7Sopenharmony_ci
4223e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4224e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4225e5c31af7Sopenharmony_ci    structure.
4226e5c31af7Sopenharmony_ci  * [[features-pipelineFragmentShadingRate]]
4227e5c31af7Sopenharmony_ci    pname:pipelineFragmentShadingRate indicates that the implementation
4228e5c31af7Sopenharmony_ci    supports the <<primsrast-fragment-shading-rate-pipeline, pipeline
4229e5c31af7Sopenharmony_ci    fragment shading rate>>.
4230e5c31af7Sopenharmony_ci  * [[features-primitiveFragmentShadingRate]]
4231e5c31af7Sopenharmony_ci    pname:primitiveFragmentShadingRate indicates that the implementation
4232e5c31af7Sopenharmony_ci    supports the <<primsrast-fragment-shading-rate-primitive, primitive
4233e5c31af7Sopenharmony_ci    fragment shading rate>>.
4234e5c31af7Sopenharmony_ci  * [[features-attachmentFragmentShadingRate]]
4235e5c31af7Sopenharmony_ci    pname:attachmentFragmentShadingRate indicates that the implementation
4236e5c31af7Sopenharmony_ci    supports the <<primsrast-fragment-shading-rate-attachment, attachment
4237e5c31af7Sopenharmony_ci    fragment shading rate>>.
4238e5c31af7Sopenharmony_ci
4239e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateFeaturesKHR
4240e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4241e5c31af7Sopenharmony_ci
4242e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.txt[]
4243e5c31af7Sopenharmony_ci--
4244e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
4245e5c31af7Sopenharmony_ci
4246e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shading_rate_enums[]
4247e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV',desc='Structure indicating support for fragment shading rate enums',type='structs']
4248e5c31af7Sopenharmony_ci--
4249e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV structure is
4250e5c31af7Sopenharmony_cidefined as:
4251e5c31af7Sopenharmony_ci
4252e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.txt[]
4253e5c31af7Sopenharmony_ci
4254e5c31af7Sopenharmony_ciThis structure describes the following features:
4255e5c31af7Sopenharmony_ci
4256e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4257e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4258e5c31af7Sopenharmony_ci    structure.
4259e5c31af7Sopenharmony_ci  * [[features-fragmentShadingRateEnums]] pname:fragmentShadingRateEnums
4260e5c31af7Sopenharmony_ci    indicates that the implementation supports specifying fragment shading
4261e5c31af7Sopenharmony_ci    rates using the ename:VkFragmentShadingRateNV enumerated type.
4262e5c31af7Sopenharmony_ci  * [[features-supersampleFragmentShadingRates]]
4263e5c31af7Sopenharmony_ci    pname:supersampleFragmentShadingRates indicates that the implementation
4264e5c31af7Sopenharmony_ci    supports fragment shading rate enum values indicating more than one
4265e5c31af7Sopenharmony_ci    invocation per fragment.
4266e5c31af7Sopenharmony_ci  * [[features-noInvocationFragmentShadingRates]]
4267e5c31af7Sopenharmony_ci    pname:noInvocationFragmentShadingRates indicates that the implementation
4268e5c31af7Sopenharmony_ci    supports a fragment shading rate enum value indicating that no fragment
4269e5c31af7Sopenharmony_ci    shaders should be invoked when that shading rate is used.
4270e5c31af7Sopenharmony_ci
4271e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV
4272e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4273e5c31af7Sopenharmony_ci
4274e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.txt[]
4275e5c31af7Sopenharmony_ci--
4276e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shading_rate_enums[]
4277e5c31af7Sopenharmony_ci
4278e5c31af7Sopenharmony_ci
4279e5c31af7Sopenharmony_ciifdef::VK_NV_inherited_viewport_scissor[]
4280e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInheritedViewportScissorFeaturesNV',desc='Structure describing the viewport scissor inheritance behavior for an implementation',type='structs']
4281e5c31af7Sopenharmony_ci--
4282e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInheritedViewportScissorFeaturesNV structure is
4283e5c31af7Sopenharmony_cidefined as:
4284e5c31af7Sopenharmony_ci
4285e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.txt[]
4286e5c31af7Sopenharmony_ci
4287e5c31af7Sopenharmony_ciThis structure describes the following feature:
4288e5c31af7Sopenharmony_ci
4289e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4290e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4291e5c31af7Sopenharmony_ci    structure.
4292e5c31af7Sopenharmony_ci    * [[features-inheritedViewportScissor2D]]
4293e5c31af7Sopenharmony_ci      pname:inheritedViewportScissor2D indicates whether secondary command
4294e5c31af7Sopenharmony_ci      buffers can inherit most of the dynamic state affected by
4295e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state[]
4296e5c31af7Sopenharmony_ci      ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
4297e5c31af7Sopenharmony_ci      ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
4298e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state[]
4299e5c31af7Sopenharmony_ciifdef::VK_EXT_discard_rectangles[]
4300e5c31af7Sopenharmony_ci      ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
4301e5c31af7Sopenharmony_ciendif::VK_EXT_discard_rectangles[]
4302e5c31af7Sopenharmony_ci      ename:VK_DYNAMIC_STATE_VIEWPORT or ename:VK_DYNAMIC_STATE_SCISSOR,
4303e5c31af7Sopenharmony_ci      from a primary command buffer.
4304e5c31af7Sopenharmony_ci
4305e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInheritedViewportScissorFeaturesNV
4306e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4307e5c31af7Sopenharmony_ci
4308e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.txt[]
4309e5c31af7Sopenharmony_ci--
4310e5c31af7Sopenharmony_ciendif::VK_NV_inherited_viewport_scissor[]
4311e5c31af7Sopenharmony_ci
4312e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_2plane_444_formats[]
4313e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',desc='Structure describing whether the implementation supports additional 2-plane 444 {YCbCr} formats',type='structs']
4314e5c31af7Sopenharmony_ci--
4315e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT structure is
4316e5c31af7Sopenharmony_cidefined as:
4317e5c31af7Sopenharmony_ci
4318e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.txt[]
4319e5c31af7Sopenharmony_ci
4320e5c31af7Sopenharmony_ciThis structure describes the following feature:
4321e5c31af7Sopenharmony_ci
4322e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4323e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4324e5c31af7Sopenharmony_ci    structure.
4325e5c31af7Sopenharmony_ci  * [[features-ycbcr2plane444Formats]] pname:ycbcr2plane444Formats indicates
4326e5c31af7Sopenharmony_ci    that the implementation supports the following 2-plane 444 {YCbCr}
4327e5c31af7Sopenharmony_ci    formats:
4328e5c31af7Sopenharmony_ci    ** ename:VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT
4329e5c31af7Sopenharmony_ci    ** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT
4330e5c31af7Sopenharmony_ci    ** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT
4331e5c31af7Sopenharmony_ci    ** ename:VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT
4332e5c31af7Sopenharmony_ci
4333e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
4334e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4335e5c31af7Sopenharmony_ci
4336e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.txt[]
4337e5c31af7Sopenharmony_ci--
4338e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_2plane_444_formats[]
4339e5c31af7Sopenharmony_ci
4340e5c31af7Sopenharmony_ciifdef::VK_EXT_color_write_enable[]
4341e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceColorWriteEnableFeaturesEXT',desc='Structure describing whether writes to color attachments can be enabled and disabled dynamically',type='structs']
4342e5c31af7Sopenharmony_ci--
4343e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceColorWriteEnableFeaturesEXT structure is defined
4344e5c31af7Sopenharmony_cias:
4345e5c31af7Sopenharmony_ci
4346e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceColorWriteEnableFeaturesEXT.txt[]
4347e5c31af7Sopenharmony_ci
4348e5c31af7Sopenharmony_ciThis structure describes the following feature:
4349e5c31af7Sopenharmony_ci
4350e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4351e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4352e5c31af7Sopenharmony_ci    structure.
4353e5c31af7Sopenharmony_ci  * [[features-colorWriteEnable]] pname:colorWriteEnable indicates that the
4354e5c31af7Sopenharmony_ci    implementation supports the dynamic state
4355e5c31af7Sopenharmony_ci    ename:VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT.
4356e5c31af7Sopenharmony_ci
4357e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceColorWriteEnableFeaturesEXT
4358e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4359e5c31af7Sopenharmony_ci
4360e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceColorWriteEnableFeaturesEXT.txt[]
4361e5c31af7Sopenharmony_ci--
4362e5c31af7Sopenharmony_ciendif::VK_EXT_color_write_enable[]
4363e5c31af7Sopenharmony_ci
4364e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[]
4365e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProvokingVertexFeaturesEXT',desc='Structure describing the provoking vertex features that can be supported by an implementation',type='structs']
4366e5c31af7Sopenharmony_ci--
4367e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProvokingVertexFeaturesEXT structure is defined
4368e5c31af7Sopenharmony_cias:
4369e5c31af7Sopenharmony_ci
4370e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProvokingVertexFeaturesEXT.txt[]
4371e5c31af7Sopenharmony_ci
4372e5c31af7Sopenharmony_ciThis structure describes the following feature:
4373e5c31af7Sopenharmony_ci
4374e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4375e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4376e5c31af7Sopenharmony_ci    structure.
4377e5c31af7Sopenharmony_ci  * [[features-provokingVertexLast]] pname:provokingVertexLast indicates
4378e5c31af7Sopenharmony_ci    whether the implementation supports the
4379e5c31af7Sopenharmony_ci    ename:VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
4380e5c31af7Sopenharmony_ci    <<VkProvokingVertexModeEXT,provoking vertex mode>> for flat shading.
4381e5c31af7Sopenharmony_ci  * [[features-transformFeedbackPreservesProvokingVertex]]
4382e5c31af7Sopenharmony_ci    pname:transformFeedbackPreservesProvokingVertex indicates that the order
4383e5c31af7Sopenharmony_ci    of vertices within each primitive written by transform feedback will
4384e5c31af7Sopenharmony_ci    preserve the provoking vertex.
4385e5c31af7Sopenharmony_ci    This does not apply to triangle fan primitives when
4386e5c31af7Sopenharmony_ci    <<limits-transformFeedbackPreservesTriangleFanProvokingVertex,pname:transformFeedbackPreservesTriangleFanProvokingVertex>>
4387e5c31af7Sopenharmony_ci    is ename:VK_FALSE.
4388e5c31af7Sopenharmony_ci    pname:transformFeedbackPreservesProvokingVertex must: be ename:VK_FALSE
4389e5c31af7Sopenharmony_ci    when the apiext:VK_EXT_transform_feedback extension is not supported.
4390e5c31af7Sopenharmony_ci
4391e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProvokingVertexFeaturesEXT
4392e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4393e5c31af7Sopenharmony_ci
4394e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
4395e5c31af7Sopenharmony_ciWhen sname:VkPhysicalDeviceProvokingVertexFeaturesEXT is in the pname:pNext
4396e5c31af7Sopenharmony_cichain of slink:VkDeviceCreateInfo but the
4397e5c31af7Sopenharmony_ci<<features-transformFeedback,transform feedback feature>> is not enabled,
4398e5c31af7Sopenharmony_cithe value of pname:transformFeedbackPreservesProvokingVertex is ignored.
4399e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
4400e5c31af7Sopenharmony_ci
4401e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProvokingVertexFeaturesEXT.txt[]
4402e5c31af7Sopenharmony_ci--
4403e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[]
4404e5c31af7Sopenharmony_ci
4405e5c31af7Sopenharmony_ciifdef::VK_EXT_pageable_device_local_memory[]
4406e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',desc='Structure describing whether the implementation supports pageable device-local memory',type='structs']
4407e5c31af7Sopenharmony_ci--
4408e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT structure is
4409e5c31af7Sopenharmony_cidefined as:
4410e5c31af7Sopenharmony_ci
4411e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.txt[]
4412e5c31af7Sopenharmony_ci
4413e5c31af7Sopenharmony_ciThis structure describes the following feature:
4414e5c31af7Sopenharmony_ci
4415e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4416e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4417e5c31af7Sopenharmony_ci    structure.
4418e5c31af7Sopenharmony_ci  * [[features-pageableDeviceLocalMemory]] pname:pageableDeviceLocalMemory
4419e5c31af7Sopenharmony_ci    indicates that the implementation supports pageable device-local memory
4420e5c31af7Sopenharmony_ci    and may: transparently move device-local memory allocations to
4421e5c31af7Sopenharmony_ci    host-local memory to better share device-local memory with other
4422e5c31af7Sopenharmony_ci    applications.
4423e5c31af7Sopenharmony_ci
4424e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
4425e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4426e5c31af7Sopenharmony_ci
4427e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.txt[]
4428e5c31af7Sopenharmony_ci--
4429e5c31af7Sopenharmony_ciendif::VK_EXT_pageable_device_local_memory[]
4430e5c31af7Sopenharmony_ci
4431e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
4432e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiDrawFeaturesEXT',desc='Structure describing whether the implementation supports multi draw functionality',type='structs']
4433e5c31af7Sopenharmony_ci--
4434e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiDrawFeaturesEXT structure is defined as:
4435e5c31af7Sopenharmony_ci
4436e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiDrawFeaturesEXT.txt[]
4437e5c31af7Sopenharmony_ci
4438e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceMultiDrawFeaturesEXT structure
4439e5c31af7Sopenharmony_cidescribe the following features:
4440e5c31af7Sopenharmony_ci
4441e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4442e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4443e5c31af7Sopenharmony_ci    structure.
4444e5c31af7Sopenharmony_ci  * [[features-multiDraw]] pname:multiDraw indicates that the implementation
4445e5c31af7Sopenharmony_ci    supports flink:vkCmdDrawMultiEXT and flink:vkCmdDrawMultiIndexedEXT.
4446e5c31af7Sopenharmony_ci
4447e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiDrawFeaturesEXT
4448e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4449e5c31af7Sopenharmony_ci
4450e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiDrawFeaturesEXT.txt[]
4451e5c31af7Sopenharmony_ci--
4452e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
4453e5c31af7Sopenharmony_ci
4454e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_motion_blur[]
4455e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingMotionBlurFeaturesNV',desc='Structure describing the ray tracing motion blur features that can be supported by an implementation',type='structs']
4456e5c31af7Sopenharmony_ci--
4457e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV structure is
4458e5c31af7Sopenharmony_cidefined as:
4459e5c31af7Sopenharmony_ci
4460e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.txt[]
4461e5c31af7Sopenharmony_ci
4462e5c31af7Sopenharmony_ciThis structure describes the following feature:
4463e5c31af7Sopenharmony_ci
4464e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4465e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4466e5c31af7Sopenharmony_ci    structure.
4467e5c31af7Sopenharmony_ci  * [[features-rayTracingMotionBlur]] pname:rayTracingMotionBlur indicates
4468e5c31af7Sopenharmony_ci    whether the implementation supports the motion blur feature.
4469e5c31af7Sopenharmony_ci  * [[features-rayTracingMotionBlurPipelineTraceRaysIndirect]]
4470e5c31af7Sopenharmony_ci    pname:rayTracingMotionBlurPipelineTraceRaysIndirect indicates whether
4471e5c31af7Sopenharmony_ci    the implementation supports indirect ray tracing commands with the
4472e5c31af7Sopenharmony_ci    motion blur feature enabled.
4473e5c31af7Sopenharmony_ci
4474e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingMotionBlurFeaturesNV
4475e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4476e5c31af7Sopenharmony_ci
4477e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.txt[]
4478e5c31af7Sopenharmony_ci--
4479e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing_motion_blur[]
4480e5c31af7Sopenharmony_ci
4481e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_subpass_shading[]
4482e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubpassShadingFeaturesHUAWEI',desc='Structure describing whether subpass shading is enabled',type='structs']
4483e5c31af7Sopenharmony_ci--
4484e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubpassShadingFeaturesHUAWEI structure is defined
4485e5c31af7Sopenharmony_cias:
4486e5c31af7Sopenharmony_ci
4487e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.txt[]
4488e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4489e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4490e5c31af7Sopenharmony_ci    structure.
4491e5c31af7Sopenharmony_ci  * [[features-subpassShading]] pname:subpassShading specifies whether
4492e5c31af7Sopenharmony_ci    subpass shading is supported.
4493e5c31af7Sopenharmony_ci
4494e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubpassShadingFeaturesHUAWEI
4495e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4496e5c31af7Sopenharmony_ci
4497e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.txt[]
4498e5c31af7Sopenharmony_ci--
4499e5c31af7Sopenharmony_ciendif::VK_HUAWEI_subpass_shading[]
4500e5c31af7Sopenharmony_ci
4501e5c31af7Sopenharmony_ciifdef::VK_NV_external_memory_rdma[]
4502e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemoryRDMAFeaturesNV',desc='Structure describing the external memory RDMA features supported by the implementation',type='structs']
4503e5c31af7Sopenharmony_ci--
4504e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemoryRDMAFeaturesNV structure is defined
4505e5c31af7Sopenharmony_cias:
4506e5c31af7Sopenharmony_ci
4507e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.txt[]
4508e5c31af7Sopenharmony_ci
4509e5c31af7Sopenharmony_ciThis structure describes the following feature:
4510e5c31af7Sopenharmony_ci
4511e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4512e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4513e5c31af7Sopenharmony_ci    structure.
4514e5c31af7Sopenharmony_ci  * [[features-externalMemoryRDMA]] pname:externalMemoryRDMA indicates
4515e5c31af7Sopenharmony_ci    whether the implementation has support for the
4516e5c31af7Sopenharmony_ci    ename:VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV memory property and the
4517e5c31af7Sopenharmony_ci    ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV external memory
4518e5c31af7Sopenharmony_ci    handle type.
4519e5c31af7Sopenharmony_ci
4520e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemoryRDMAFeaturesNV
4521e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4522e5c31af7Sopenharmony_ci
4523e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.txt[]
4524e5c31af7Sopenharmony_ci--
4525e5c31af7Sopenharmony_ciendif::VK_NV_external_memory_rdma[]
4526e5c31af7Sopenharmony_ci
4527e5c31af7Sopenharmony_ciifdef::VK_KHR_present_id[]
4528e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentIdFeaturesKHR',desc='Structure indicating support for present id',type='structs']
4529e5c31af7Sopenharmony_ci--
4530e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentIdFeaturesKHR structure is defined as:
4531e5c31af7Sopenharmony_ci
4532e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentIdFeaturesKHR.txt[]
4533e5c31af7Sopenharmony_ci
4534e5c31af7Sopenharmony_ciThis structure describes the following feature:
4535e5c31af7Sopenharmony_ci
4536e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4537e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4538e5c31af7Sopenharmony_ci    structure.
4539e5c31af7Sopenharmony_ci  * [[features-presentId]] pname:presentId indicates that the implementation
4540e5c31af7Sopenharmony_ci    supports specifying present ID values in the sname:VkPresentIdKHR
4541e5c31af7Sopenharmony_ci    extension to the sname:VkPresentInfoKHR struct.
4542e5c31af7Sopenharmony_ci
4543e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentIdFeaturesKHR
4544e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4545e5c31af7Sopenharmony_ci
4546e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentIdFeaturesKHR.txt[]
4547e5c31af7Sopenharmony_ci--
4548e5c31af7Sopenharmony_ciendif::VK_KHR_present_id[]
4549e5c31af7Sopenharmony_ci
4550e5c31af7Sopenharmony_ciifdef::VK_KHR_present_wait[]
4551e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentWaitFeaturesKHR',desc='Structure indicating support for present wait',type='structs']
4552e5c31af7Sopenharmony_ci--
4553e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentWaitFeaturesKHR structure is defined as:
4554e5c31af7Sopenharmony_ci
4555e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentWaitFeaturesKHR.txt[]
4556e5c31af7Sopenharmony_ci
4557e5c31af7Sopenharmony_ciThis structure describes the following feature:
4558e5c31af7Sopenharmony_ci
4559e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4560e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4561e5c31af7Sopenharmony_ci    structure.
4562e5c31af7Sopenharmony_ci  * [[features-presentWait]] pname:presentWait indicates that the
4563e5c31af7Sopenharmony_ci    implementation supports fname:vkWaitForPresentKHR.
4564e5c31af7Sopenharmony_ci
4565e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentWaitFeaturesKHR
4566e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4567e5c31af7Sopenharmony_ci
4568e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentWaitFeaturesKHR.txt[]
4569e5c31af7Sopenharmony_ci--
4570e5c31af7Sopenharmony_ciendif::VK_KHR_present_wait[]
4571e5c31af7Sopenharmony_ci
4572e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_integer_dot_product[]
4573e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR',desc='Structure describing integer dot product features that can be supported by an implementation',type='structs']
4574e5c31af7Sopenharmony_ci--
4575e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR structure is
4576e5c31af7Sopenharmony_cidefined as:
4577e5c31af7Sopenharmony_ci
4578e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR.txt[]
4579e5c31af7Sopenharmony_ci
4580e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR
4581e5c31af7Sopenharmony_cistructure describe the following features:
4582e5c31af7Sopenharmony_ci
4583e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4584e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4585e5c31af7Sopenharmony_ci    structure.
4586e5c31af7Sopenharmony_ci  * [[features-shaderIntegerDotProduct]] pname:shaderIntegerDotProduct
4587e5c31af7Sopenharmony_ci    specifies whether shader modules can: declare the
4588e5c31af7Sopenharmony_ci    code:DotProductInputAllKHR, code:DotProductInput4x8BitKHR,
4589e5c31af7Sopenharmony_ci    code:DotProductInput4x8BitPackedKHR and code:DotProductKHR capabilities.
4590e5c31af7Sopenharmony_ci
4591e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR
4592e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4593e5c31af7Sopenharmony_ci
4594e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR.txt[]
4595e5c31af7Sopenharmony_ci--
4596e5c31af7Sopenharmony_ciendif::VK_KHR_shader_integer_dot_product[]
4597e5c31af7Sopenharmony_ci
4598e5c31af7Sopenharmony_ciifdef::VK_EXT_rgba10x6_formats[]
4599e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT',desc='Structure describing whether rendering to VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 formats can be supported by an implementation',type='structs']
4600e5c31af7Sopenharmony_ci--
4601e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT structure is defined
4602e5c31af7Sopenharmony_cias:
4603e5c31af7Sopenharmony_ci
4604e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.txt[]
4605e5c31af7Sopenharmony_ci
4606e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
4607e5c31af7Sopenharmony_cistructure describe the following features:
4608e5c31af7Sopenharmony_ci
4609e5c31af7Sopenharmony_ci  * pname:sType is the type of this structure.
4610e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4611e5c31af7Sopenharmony_ci    structure.
4612e5c31af7Sopenharmony_ci  * [[features-formatRgba10x6WithoutYCbCrSampler]]
4613e5c31af7Sopenharmony_ci    pname:formatRgba10x6WithoutYCbCrSampler indicates that
4614e5c31af7Sopenharmony_ci    ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 can: be used with a
4615e5c31af7Sopenharmony_ci    sname:VkImageView with pname:subresourceRange.aspectMask equal to
4616e5c31af7Sopenharmony_ci    ename:VK_IMAGE_ASPECT_COLOR_BIT without a <<samplers-YCbCr-conversion,
4617e5c31af7Sopenharmony_ci    sampler {YCbCr} conversion>> enabled.
4618e5c31af7Sopenharmony_ci
4619e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
4620e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4621e5c31af7Sopenharmony_ci
4622e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.txt[]
4623e5c31af7Sopenharmony_ci--
4624e5c31af7Sopenharmony_ciendif::VK_EXT_rgba10x6_formats[]
4625e5c31af7Sopenharmony_ci
4626e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[]
4627e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance4FeaturesKHR',desc='Structure describing whether the implementation supports maintenance4 functionality',type='structs']
4628e5c31af7Sopenharmony_ci--
4629e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance4FeaturesKHR structure is defined as:
4630e5c31af7Sopenharmony_ci
4631e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance4FeaturesKHR.txt[]
4632e5c31af7Sopenharmony_ci
4633e5c31af7Sopenharmony_ciThis structure describes the following features:
4634e5c31af7Sopenharmony_ci
4635e5c31af7Sopenharmony_ci  * [[features-maintenance4]] pname:maintenance4 indicates that the
4636e5c31af7Sopenharmony_ci    implementation supports the following:
4637e5c31af7Sopenharmony_ci  ** The application may: destroy a slink:VkPipelineLayout object
4638e5c31af7Sopenharmony_ci     immediately after using it to create another object.
4639e5c31af7Sopenharmony_ci  ** code:LocalSizeId can: be used as an alternative to code:LocalSize to
4640e5c31af7Sopenharmony_ci     specify the local workgroup size with specialization constants.
4641e5c31af7Sopenharmony_ci  ** Images created with identical creation parameters will always have the
4642e5c31af7Sopenharmony_ci     same alignment requirements.
4643e5c31af7Sopenharmony_ci  ** The size memory requirement of a buffer or image is never greater than
4644e5c31af7Sopenharmony_ci     that of another buffer or image created with a greater or equal size.
4645e5c31af7Sopenharmony_ci  ** Push constants do not have to be initialized before they are
4646e5c31af7Sopenharmony_ci     dynamically accessed.
4647e5c31af7Sopenharmony_ci  ** The interface matching rules allow a larger output vector to match with
4648e5c31af7Sopenharmony_ci     a smaller input vector, with additional values being discarded.
4649e5c31af7Sopenharmony_ci
4650e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance4FeaturesKHR
4651e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4652e5c31af7Sopenharmony_ci
4653e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance4FeaturesKHR.txt[]
4654e5c31af7Sopenharmony_ci--
4655e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance4[]
4656e5c31af7Sopenharmony_ci
4657e5c31af7Sopenharmony_ciifdef::VK_KHR_dynamic_rendering[]
4658e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDynamicRenderingFeaturesKHR',desc='Structure indicating support for dynamic render pass instances',type='structs']
4659e5c31af7Sopenharmony_ci--
4660e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDynamicRenderingFeaturesKHR structure is defined
4661e5c31af7Sopenharmony_cias:
4662e5c31af7Sopenharmony_ci
4663e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDynamicRenderingFeaturesKHR.txt[]
4664e5c31af7Sopenharmony_ci
4665e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceDynamicRenderingFeaturesKHR
4666e5c31af7Sopenharmony_cistructure describe the following features:
4667e5c31af7Sopenharmony_ci
4668e5c31af7Sopenharmony_ci  * [[features-dynamicRendering]] pname:dynamicRendering specifies that the
4669e5c31af7Sopenharmony_ci    implementation supports dynamic render pass instances using the
4670e5c31af7Sopenharmony_ci    flink:vkCmdBeginRenderingKHR command.
4671e5c31af7Sopenharmony_ci
4672e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDynamicRenderingFeaturesKHR
4673e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4674e5c31af7Sopenharmony_ci
4675e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDynamicRenderingFeaturesKHR.txt[]
4676e5c31af7Sopenharmony_ci--
4677e5c31af7Sopenharmony_ciendif::VK_KHR_dynamic_rendering[]
4678e5c31af7Sopenharmony_ci
4679e5c31af7Sopenharmony_ciifdef::VK_EXT_image_view_min_lod[]
4680e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageViewMinLodFeaturesEXT',desc='Structure describing whether clamping the min lod of a image view is supported by the implementation',type='structs']
4681e5c31af7Sopenharmony_ci--
4682e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageViewMinLodFeaturesEXT structure is defined
4683e5c31af7Sopenharmony_cias:
4684e5c31af7Sopenharmony_ci
4685e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageViewMinLodFeaturesEXT.txt[]
4686e5c31af7Sopenharmony_ci
4687e5c31af7Sopenharmony_ciThis structure describes the following features:
4688e5c31af7Sopenharmony_ci
4689e5c31af7Sopenharmony_ci  * [[features-minLod]] pname:minLod indicates whether the implementation
4690e5c31af7Sopenharmony_ci    supports clamping the minimum LOD value during
4691e5c31af7Sopenharmony_ci    <<textures-image-level-selection,Image Level(s) Selection>> and
4692e5c31af7Sopenharmony_ci    <<textures-integer-coordinate-operations,Integer Texel Coordinate
4693e5c31af7Sopenharmony_ci    Operations>> with a given slink:VkImageView by
4694e5c31af7Sopenharmony_ci    slink:VkImageViewMinLodCreateInfoEXT::pname:minLod.
4695e5c31af7Sopenharmony_ci
4696e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageViewMinLodFeaturesEXT
4697e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features]
4698e5c31af7Sopenharmony_ci
4699e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageViewMinLodFeaturesEXT.txt[]
4700e5c31af7Sopenharmony_ci--
4701e5c31af7Sopenharmony_ciendif::VK_EXT_image_view_min_lod[]
4702e5c31af7Sopenharmony_ci
4703e5c31af7Sopenharmony_ciifdef::VK_ARM_rasterization_order_attachment_access[]
4704e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM',desc='Structure describing whether rasterization order attachment access can be supported by an implementation',type='structs']
4705e5c31af7Sopenharmony_ci--
4706e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM
4707e5c31af7Sopenharmony_cistructure is defined as:
4708e5c31af7Sopenharmony_ci
4709e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.txt[]
4710e5c31af7Sopenharmony_ci
4711e5c31af7Sopenharmony_ciThe members of the
4712e5c31af7Sopenharmony_cisname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM
4713e5c31af7Sopenharmony_cistructure describe the following features:
4714e5c31af7Sopenharmony_ci
4715e5c31af7Sopenharmony_ci  * [[features-rasterizationOrderColorAttachmentAccess]]
4716e5c31af7Sopenharmony_ci    pname:rasterizationOrderColorAttachmentAccess indicates that
4717e5c31af7Sopenharmony_ci    rasterization order access to color and input attachments is supported
4718e5c31af7Sopenharmony_ci    by the implementation.
4719e5c31af7Sopenharmony_ci  * [[features-rasterizationOrderDepthAttachmentAccess]]
4720e5c31af7Sopenharmony_ci    pname:rasterizationOrderDepthAttachmentAccess indicates that
4721e5c31af7Sopenharmony_ci    rasterization order access to the depth aspect of depth/stencil and
4722e5c31af7Sopenharmony_ci    input attachments is supported by the implementation.
4723e5c31af7Sopenharmony_ci  * [[features-rasterizationOrderStencilAttachmentAccess]]
4724e5c31af7Sopenharmony_ci    pname:rasterizationOrderStencilAttachmentAccess indicates that
4725e5c31af7Sopenharmony_ci    rasterization order access to the stencil aspect of depth/stencil and
4726e5c31af7Sopenharmony_ci    input attachments is supported by the implementation.
4727e5c31af7Sopenharmony_ci
4728e5c31af7Sopenharmony_ciIf the sname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM
4729e5c31af7Sopenharmony_cistructure is included in the pname:pNext chain of
4730e5c31af7Sopenharmony_cislink:VkPhysicalDeviceFeatures2, it is filled with values indicating whether
4731e5c31af7Sopenharmony_cithe feature is supported.
4732e5c31af7Sopenharmony_cisname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM can:
4733e5c31af7Sopenharmony_cialso be used in the pname:pNext chain of slink:VkDeviceCreateInfo to enable
4734e5c31af7Sopenharmony_cifeatures.
4735e5c31af7Sopenharmony_ci
4736e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.txt[]
4737e5c31af7Sopenharmony_ci--
4738e5c31af7Sopenharmony_ci
4739e5c31af7Sopenharmony_ciendif::VK_ARM_rasterization_order_attachment_access[]
4740e5c31af7Sopenharmony_ci
4741e5c31af7Sopenharmony_ci
4742e5c31af7Sopenharmony_ci[[features-requirements]]
4743e5c31af7Sopenharmony_ci== Feature Requirements
4744e5c31af7Sopenharmony_ci
4745e5c31af7Sopenharmony_ciAll Vulkan graphics implementations must: support the following features:
4746e5c31af7Sopenharmony_ci
4747e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[]
4748e5c31af7Sopenharmony_ci  * <<features-robustBufferAccess, pname:robustBufferAccess>>, unless the
4749e5c31af7Sopenharmony_ci    `apiext:VK_KHR_portability_subset` extension is enabled.
4750e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
4751e5c31af7Sopenharmony_ciifndef::VK_KHR_portability_subset[]
4752e5c31af7Sopenharmony_ci  * <<features-robustBufferAccess, pname:robustBufferAccess>>
4753e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
4754e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
4755e5c31af7Sopenharmony_ci  * <<features-multiview, pname:multiview>>, if Vulkan 1.1 is supported.
4756e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_draw_parameters[]
4757e5c31af7Sopenharmony_ci  * <<features-shaderDrawParameters,pname:shaderDrawParameters>>, if the
4758e5c31af7Sopenharmony_ci    `apiext:VK_KHR_shader_draw_parameters` extension is supported.
4759e5c31af7Sopenharmony_ciendif::VK_KHR_shader_draw_parameters[]
4760e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
4761e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[]
4762e5c31af7Sopenharmony_ci  * <<features-uniformBufferStandardLayout,pname:uniformBufferStandardLayout>>,
4763e5c31af7Sopenharmony_ci    if Vulkan 1.2 or the `apiext:VK_KHR_uniform_buffer_standard_layout`
4764e5c31af7Sopenharmony_ci    extension is supported.
4765e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[]
4766e5c31af7Sopenharmony_ciifdef::VK_KHR_variable_pointers[]
4767e5c31af7Sopenharmony_ci  * <<features-variablePointersStorageBuffer,
4768e5c31af7Sopenharmony_ci    pname:variablePointersStorageBuffer>>, if the
4769e5c31af7Sopenharmony_ci    `apiext:VK_KHR_variable_pointers` extension is supported.
4770e5c31af7Sopenharmony_ciendif::VK_KHR_variable_pointers[]
4771e5c31af7Sopenharmony_ciifdef::VK_KHR_8bit_storage[]
4772e5c31af7Sopenharmony_ci  * <<features-storageBuffer8BitAccess, pname:storageBuffer8BitAccess>>, if
4773e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_8bit_storage` extension is supported.
4774e5c31af7Sopenharmony_ciendif::VK_KHR_8bit_storage[]
4775e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_8bit_storage[]
4776e5c31af7Sopenharmony_ci  * <<features-storageBuffer8BitAccess, pname:StorageBuffer8BitAccess>>, if
4777e5c31af7Sopenharmony_ci    <<features-uniformAndStorageBuffer8BitAccess,
4778e5c31af7Sopenharmony_ci    pname:uniformAndStorageBuffer8BitAccess>> is enabled.
4779e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_8bit_storage[]
4780e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
4781e5c31af7Sopenharmony_ci  * If
4782e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing,descriptorIndexing>> feature is supported, or if]
4783e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_descriptor_indexing` extension is supported:
4784e5c31af7Sopenharmony_ci  ** <<features-shaderSampledImageArrayDynamicIndexing,
4785e5c31af7Sopenharmony_ci     pname:shaderSampledImageArrayDynamicIndexing>>
4786e5c31af7Sopenharmony_ci  ** <<features-shaderStorageBufferArrayDynamicIndexing,
4787e5c31af7Sopenharmony_ci     pname:shaderStorageBufferArrayDynamicIndexing>>
4788e5c31af7Sopenharmony_ci  ** <<features-shaderUniformTexelBufferArrayDynamicIndexing,
4789e5c31af7Sopenharmony_ci     pname:shaderUniformTexelBufferArrayDynamicIndexing>>
4790e5c31af7Sopenharmony_ci  ** <<features-shaderStorageTexelBufferArrayDynamicIndexing,
4791e5c31af7Sopenharmony_ci     pname:shaderStorageTexelBufferArrayDynamicIndexing>>
4792e5c31af7Sopenharmony_ci  ** <<features-shaderSampledImageArrayNonUniformIndexing,
4793e5c31af7Sopenharmony_ci     pname:shaderSampledImageArrayNonUniformIndexing>>
4794e5c31af7Sopenharmony_ci  ** <<features-shaderStorageBufferArrayNonUniformIndexing,
4795e5c31af7Sopenharmony_ci     pname:shaderStorageBufferArrayNonUniformIndexing>>
4796e5c31af7Sopenharmony_ci  ** <<features-shaderUniformTexelBufferArrayNonUniformIndexing,
4797e5c31af7Sopenharmony_ci     pname:shaderUniformTexelBufferArrayNonUniformIndexing>>
4798e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingSampledImageUpdateAfterBind,
4799e5c31af7Sopenharmony_ci     pname:descriptorBindingSampledImageUpdateAfterBind>>
4800e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingStorageImageUpdateAfterBind,
4801e5c31af7Sopenharmony_ci     pname:descriptorBindingStorageImageUpdateAfterBind>>
4802e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingStorageBufferUpdateAfterBind,
4803e5c31af7Sopenharmony_ci     pname:descriptorBindingStorageBufferUpdateAfterBind>> (see also
4804e5c31af7Sopenharmony_ci     <<limits-robustBufferAccessUpdateAfterBind,
4805e5c31af7Sopenharmony_ci     pname:robustBufferAccessUpdateAfterBind>>)
4806e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingUniformTexelBufferUpdateAfterBind,
4807e5c31af7Sopenharmony_ci     pname:descriptorBindingUniformTexelBufferUpdateAfterBind>> (see also
4808e5c31af7Sopenharmony_ci     <<limits-robustBufferAccessUpdateAfterBind,
4809e5c31af7Sopenharmony_ci     pname:robustBufferAccessUpdateAfterBind>>)
4810e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingStorageTexelBufferUpdateAfterBind,
4811e5c31af7Sopenharmony_ci     pname:descriptorBindingStorageTexelBufferUpdateAfterBind>> (see also
4812e5c31af7Sopenharmony_ci     <<limits-robustBufferAccessUpdateAfterBind,
4813e5c31af7Sopenharmony_ci     pname:robustBufferAccessUpdateAfterBind>>)
4814e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingUpdateUnusedWhilePending,
4815e5c31af7Sopenharmony_ci     pname:descriptorBindingUpdateUnusedWhilePending>>
4816e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingPartiallyBound,
4817e5c31af7Sopenharmony_ci     pname:descriptorBindingPartiallyBound>>
4818e5c31af7Sopenharmony_ci  ** <<features-runtimeDescriptorArray, pname:runtimeDescriptorArray>>
4819e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
4820e5c31af7Sopenharmony_ciifdef::VK_EXT_inline_uniform_block[]
4821e5c31af7Sopenharmony_ci  * <<features-inlineUniformBlock,pname:inlineUniformBlock>>, if the
4822e5c31af7Sopenharmony_ci    `apiext:VK_EXT_inline_uniform_block` extension is supported.
4823e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
4824e5c31af7Sopenharmony_ci  * <<features-descriptorBindingInlineUniformBlockUpdateAfterBind,
4825e5c31af7Sopenharmony_ci    pname:descriptorBindingInlineUniformBlockUpdateAfterBind>>, if the
4826e5c31af7Sopenharmony_ci    `apiext:VK_EXT_inline_uniform_block` extension is supported; and if
4827e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing,pname:descriptorIndexing>> feature is supported, or]
4828e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_descriptor_indexing` extension is supported.
4829e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
4830e5c31af7Sopenharmony_ciendif::VK_EXT_inline_uniform_block[]
4831e5c31af7Sopenharmony_ciifdef::VK_EXT_scalar_block_layout[]
4832e5c31af7Sopenharmony_ci  * <<features-scalarBlockLayout,pname:scalarBlockLayout>>, if the
4833e5c31af7Sopenharmony_ci    `apiext:VK_EXT_scalar_block_layout` extension is supported.
4834e5c31af7Sopenharmony_ciendif::VK_EXT_scalar_block_layout[]
4835e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
4836e5c31af7Sopenharmony_ci  * <<features-subgroupBroadcastDynamicId,
4837e5c31af7Sopenharmony_ci    pname:subgroupBroadcastDynamicId>>, if Vulkan 1.2 is supported.
4838e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
4839e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_KHR_sampler_mirror_clamp_to_edge[]
4840e5c31af7Sopenharmony_ci  * <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>>,
4841e5c31af7Sopenharmony_ci    if the `apiext:VK_KHR_sampler_mirror_clamp_to_edge` extension is
4842e5c31af7Sopenharmony_ci    supported.
4843e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_KHR_sampler_mirror_clamp_to_edge[]
4844e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_KHR_draw_indirect_count[]
4845e5c31af7Sopenharmony_ci  * <<features-drawIndirectCount, pname:drawIndirectCount>>, if the
4846e5c31af7Sopenharmony_ci    `apiext:VK_KHR_draw_indirect_count` extension is supported.
4847e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_KHR_draw_indirect_count[]
4848e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_EXT_sampler_filter_minmax[]
4849e5c31af7Sopenharmony_ci  * <<features-samplerFilterMinmax, pname:samplerFilterMinmax>>, if the
4850e5c31af7Sopenharmony_ci    `apiext:VK_EXT_sampler_filter_minmax` extension is supported.
4851e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_EXT_sampler_filter_minmax[]
4852e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_EXT_shader_viewport_index_layer[]
4853e5c31af7Sopenharmony_ci  * <<features-shaderOutputViewportIndex, pname:shaderOutputViewportIndex>>,
4854e5c31af7Sopenharmony_ci    if the `apiext:VK_EXT_shader_viewport_index_layer` extension is
4855e5c31af7Sopenharmony_ci    supported.
4856e5c31af7Sopenharmony_ci  * <<features-shaderOutputLayer, pname:shaderOutputLayer>>, if the
4857e5c31af7Sopenharmony_ci    `apiext:VK_EXT_shader_viewport_index_layer` extension is supported.
4858e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_EXT_shader_viewport_index_layer[]
4859e5c31af7Sopenharmony_ciifdef::VK_EXT_subgroup_size_control[]
4860e5c31af7Sopenharmony_ci  * <<features-subgroupSizeControl, pname:subgroupSizeControl>>, if the
4861e5c31af7Sopenharmony_ci    `apiext:VK_EXT_subgroup_size_control` extension is supported.
4862e5c31af7Sopenharmony_ci  * <<features-computeFullSubgroups, pname:computeFullSubgroups>>, if the
4863e5c31af7Sopenharmony_ci    `apiext:VK_EXT_subgroup_size_control` extension is supported.
4864e5c31af7Sopenharmony_ciendif::VK_EXT_subgroup_size_control[]
4865e5c31af7Sopenharmony_ciifdef::VK_EXT_device_memory_report[]
4866e5c31af7Sopenharmony_ci  * <<features-deviceMemoryReport, pname:deviceMemoryReport>>, if the
4867e5c31af7Sopenharmony_ci    `apiext:VK_EXT_device_memory_report` extension is supported.
4868e5c31af7Sopenharmony_ciendif::VK_EXT_device_memory_report[]
4869e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query[]
4870e5c31af7Sopenharmony_ci  * <<features-globalPriorityQuery, pname:globalPriorityQuery>>, if the
4871e5c31af7Sopenharmony_ci    `apiext:VK_EXT_global_priority_query` extension is supported.
4872e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query[]
4873e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[]
4874e5c31af7Sopenharmony_ci  * <<features-imagelessFramebuffer, pname:imagelessFramebuffer>>, if Vulkan
4875e5c31af7Sopenharmony_ci    1.2 or the `apiext:VK_KHR_imageless_framebuffer` extension is supported.
4876e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[]
4877e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
4878e5c31af7Sopenharmony_ci  * <<features-separateDepthStencilLayouts,
4879e5c31af7Sopenharmony_ci    pname:separateDepthStencilLayouts>>, if Vulkan 1.2 or the
4880e5c31af7Sopenharmony_ci    `apiext:VK_KHR_separate_depth_stencil_layouts` extension is supported.
4881e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[]
4882e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_host_query_reset[]
4883e5c31af7Sopenharmony_ci  * <<features-hostQueryReset, pname:hostQueryReset>>, if Vulkan 1.2 or the
4884e5c31af7Sopenharmony_ci    `apiext:VK_EXT_host_query_reset` extension is supported.
4885e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_host_query_reset[]
4886e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
4887e5c31af7Sopenharmony_ci  * <<features-timelineSemaphore, pname:timelineSemaphore>>, if Vulkan 1.2
4888e5c31af7Sopenharmony_ci    or the `apiext:VK_KHR_timeline_semaphore` extension is supported.
4889e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
4890e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
4891e5c31af7Sopenharmony_ci  * If the `apiext:VK_KHR_acceleration_structure` extension is supported:
4892e5c31af7Sopenharmony_ci  ** <<features-accelerationStructure,pname:accelerationStructure>>
4893e5c31af7Sopenharmony_ci  ** All the features required by
4894e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing,descriptorIndexing>> feature if Vulkan 1.2 is supported, or]
4895e5c31af7Sopenharmony_ci     the `apiext:VK_EXT_descriptor_indexing` extension.
4896e5c31af7Sopenharmony_ci  ** <<features-descriptorBindingAccelerationStructureUpdateAfterBind,
4897e5c31af7Sopenharmony_ci     pname:descriptorBindingAccelerationStructureUpdateAfterBind>>
4898e5c31af7Sopenharmony_ci  ** <<features-bufferDeviceAddress, pname:bufferDeviceAddress>> from
4899e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[Vulkan 1.2 or]
4900e5c31af7Sopenharmony_ci     the `apiext:VK_KHR_buffer_device_address` extension.
4901e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
4902e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
4903e5c31af7Sopenharmony_ci  * If the `apiext:VK_KHR_ray_tracing_pipeline` extension is supported:
4904e5c31af7Sopenharmony_ci  ** <<features-accelerationStructure,pname:accelerationStructure>> from
4905e5c31af7Sopenharmony_ci     `apiext:VK_KHR_acceleration_structure`
4906e5c31af7Sopenharmony_ci  ** <<features-rayTracingPipeline, pname:rayTracingPipeline>>
4907e5c31af7Sopenharmony_ci  ** <<features-rayTracingPipelineTraceRaysIndirect,
4908e5c31af7Sopenharmony_ci     pname:rayTracingPipelineTraceRaysIndirect>>
4909e5c31af7Sopenharmony_ci  ** <<features-rayTraversalPrimitiveCulling,
4910e5c31af7Sopenharmony_ci     pname:rayTraversalPrimitiveCulling>>, if <<features-rayQuery,
4911e5c31af7Sopenharmony_ci     pname:rayQuery>> is supported from `apiext:VK_KHR_ray_query`
4912e5c31af7Sopenharmony_ci  ** the `apiext:VK_KHR_pipeline_library` extension.
4913e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
4914e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[]
4915e5c31af7Sopenharmony_ci  * If the `apiext:VK_KHR_ray_query` extension is supported:
4916e5c31af7Sopenharmony_ci  ** <<features-accelerationStructure,pname:accelerationStructure>> from
4917e5c31af7Sopenharmony_ci     `apiext:VK_KHR_acceleration_structure`
4918e5c31af7Sopenharmony_ci  ** <<features-rayQuery, pname:rayQuery>>
4919e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[]
4920e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_creation_cache_control[]
4921e5c31af7Sopenharmony_ci  * <<features-pipelineCreationCacheControl,
4922e5c31af7Sopenharmony_ci    pname:pipelineCreationCacheControl>>, if the
4923e5c31af7Sopenharmony_ci    `apiext:VK_EXT_pipeline_creation_cache_control` extension is supported.
4924e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_creation_cache_control[]
4925e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[]
4926e5c31af7Sopenharmony_ci  * <<features-subgroup-extended-types, pname:shaderSubgroupExtendedTypes>>,
4927e5c31af7Sopenharmony_ci    if Vulkan 1.2 or the `apiext:VK_KHR_shader_subgroup_extended_types`
4928e5c31af7Sopenharmony_ci    extension is supported.
4929e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[]
4930e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_ycbcr_conversion[]
4931e5c31af7Sopenharmony_ci  * <<features-samplerYcbcrConversion, pname:samplerYcbcrConversion>>, if
4932e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_sampler_ycbcr_conversion` extension is supported.
4933e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_ycbcr_conversion[]
4934e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_executable_properties[]
4935e5c31af7Sopenharmony_ci  * <<features-pipelineExecutableInfo, pname:pipelineExecutableInfo>>, if
4936e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_pipeline_executable_properties` extension is
4937e5c31af7Sopenharmony_ci    supported.
4938e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_executable_properties[]
4939e5c31af7Sopenharmony_ciifdef::VK_EXT_texture_compression_astc_hdr[]
4940e5c31af7Sopenharmony_ci  * <<features-textureCompressionASTC_HDR,
4941e5c31af7Sopenharmony_ci    pname:textureCompressionASTC_HDR>>, if the
4942e5c31af7Sopenharmony_ci    `apiext:VK_EXT_texture_compression_astc_hdr` extension is supported.
4943e5c31af7Sopenharmony_ciendif::VK_EXT_texture_compression_astc_hdr[]
4944e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_enable[]
4945e5c31af7Sopenharmony_ci  * <<features-depthClipEnable, pname:depthClipEnable>>, if the
4946e5c31af7Sopenharmony_ci    `apiext:VK_EXT_depth_clip_enable` extension is supported.
4947e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_enable[]
4948e5c31af7Sopenharmony_ciifdef::VK_EXT_memory_priority[]
4949e5c31af7Sopenharmony_ci  * <<features-memoryPriority, pname:memoryPriority>>, if the
4950e5c31af7Sopenharmony_ci    `apiext:VK_EXT_memory_priority` extension is supported.
4951e5c31af7Sopenharmony_ciendif::VK_EXT_memory_priority[]
4952e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_image_arrays[]
4953e5c31af7Sopenharmony_ci  * <<features-ycbcrImageArrays, pname:ycbcrImageArrays>>, if the
4954e5c31af7Sopenharmony_ci    `apiext:VK_EXT_ycbcr_image_arrays` extension is supported.
4955e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_image_arrays[]
4956e5c31af7Sopenharmony_ciifdef::VK_EXT_index_type_uint8[]
4957e5c31af7Sopenharmony_ci  * <<features-indexTypeUint8, pname:indexTypeUint8>>, if the
4958e5c31af7Sopenharmony_ci    `apiext:VK_EXT_index_type_uint8` extension is supported.
4959e5c31af7Sopenharmony_ciendif::VK_EXT_index_type_uint8[]
4960e5c31af7Sopenharmony_ciifdef::VK_EXT_primitive_topology_list_restart[]
4961e5c31af7Sopenharmony_ci  * <<features-primitiveTopologyListRestart,
4962e5c31af7Sopenharmony_ci    pname:primitiveTopologyListRestart>>, if the
4963e5c31af7Sopenharmony_ci    `apiext:VK_EXT_primitive_topology_list_restart` extension is supported.
4964e5c31af7Sopenharmony_ciendif::VK_EXT_primitive_topology_list_restart[]
4965e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_demote_to_helper_invocation[]
4966e5c31af7Sopenharmony_ci  * <<features-shaderDemoteToHelperInvocation,
4967e5c31af7Sopenharmony_ci    pname:shaderDemoteToHelperInvocation>>, if the
4968e5c31af7Sopenharmony_ci    `apiext:VK_EXT_shader_demote_to_helper_invocation` extension is
4969e5c31af7Sopenharmony_ci    supported.
4970e5c31af7Sopenharmony_ciendif::VK_EXT_shader_demote_to_helper_invocation[]
4971e5c31af7Sopenharmony_ciifdef::VK_EXT_texel_buffer_alignment[]
4972e5c31af7Sopenharmony_ci  * <<features-texelBufferAlignment, pname:texelBufferAlignment>>, if the
4973e5c31af7Sopenharmony_ci    `apiext:VK_EXT_texel_buffer_alignment` extension is supported.
4974e5c31af7Sopenharmony_ciendif::VK_EXT_texel_buffer_alignment[]
4975e5c31af7Sopenharmony_ciifdef::VK_KHR_vulkan_memory_model[]
4976e5c31af7Sopenharmony_ci  * <<features-vulkanMemoryModel, pname:vulkanMemoryModel>>, if the
4977e5c31af7Sopenharmony_ci    `apiext:VK_KHR_vulkan_memory_model` extension is supported.
4978e5c31af7Sopenharmony_ciendif::VK_KHR_vulkan_memory_model[]
4979e5c31af7Sopenharmony_ciifdef::VK_KHR_buffer_device_address[]
4980e5c31af7Sopenharmony_ci  * <<features-bufferDeviceAddress, pname:bufferDeviceAddress>>, if the
4981e5c31af7Sopenharmony_ci    `apiext:VK_KHR_buffer_device_address` extension is supported.
4982e5c31af7Sopenharmony_ciendif::VK_KHR_buffer_device_address[]
4983e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[]
4984e5c31af7Sopenharmony_ci  * <<VkPhysicalDevicePerformanceQueryFeaturesKHR,
4985e5c31af7Sopenharmony_ci    pname:performanceCounterQueryPools>>, if the
4986e5c31af7Sopenharmony_ci    `apiext:VK_KHR_performance_query` extension is supported.
4987e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[]
4988e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
4989e5c31af7Sopenharmony_ci  * <<features-transformFeedback, pname:transformFeedback>>, if the
4990e5c31af7Sopenharmony_ci    `apiext:VK_EXT_transform_feedback` extension is supported.
4991e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
4992e5c31af7Sopenharmony_ciifdef::VK_EXT_conditional_rendering[]
4993e5c31af7Sopenharmony_ci  * <<features-conditionalRendering, pname:conditionalRendering>>, if the
4994e5c31af7Sopenharmony_ci    `apiext:VK_EXT_conditional_rendering` extension is supported.
4995e5c31af7Sopenharmony_ciendif::VK_EXT_conditional_rendering[]
4996e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[]
4997e5c31af7Sopenharmony_ci  * <<features-vertexAttributeInstanceRateDivisor,
4998e5c31af7Sopenharmony_ci    pname:vertexAttributeInstanceRateDivisor>>, if the
4999e5c31af7Sopenharmony_ci    `apiext:VK_EXT_vertex_attribute_divisor` extension is supported.
5000e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[]
5001e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
5002e5c31af7Sopenharmony_ci  * <<features-fragmentDensityMap, pname:fragmentDensityMap>>, if the
5003e5c31af7Sopenharmony_ci    `apiext:VK_EXT_fragment_density_map` extension is supported.
5004e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
5005e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_clock[]
5006e5c31af7Sopenharmony_ci  * <<features-shaderSubgroupClock, pname:shaderSubgroupClock>>, if the
5007e5c31af7Sopenharmony_ci    `apiext:VK_KHR_shader_clock` extension is supported.
5008e5c31af7Sopenharmony_ciendif::VK_KHR_shader_clock[]
5009e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_atomic_int64[]
5010e5c31af7Sopenharmony_ci  * <<features-shaderBufferInt64Atomics, pname:shaderBufferInt64Atomics>>,
5011e5c31af7Sopenharmony_ci    if the `apiext:VK_KHR_shader_atomic_int64` extension is supported.
5012e5c31af7Sopenharmony_ciendif::VK_KHR_shader_atomic_int64[]
5013e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[]
5014e5c31af7Sopenharmony_ci  * <<features-shaderInt64, pname:shaderInt64>>, if the
5015e5c31af7Sopenharmony_ci    <<features-shaderSharedInt64Atomics, pname:shaderSharedInt64Atomics>> or
5016e5c31af7Sopenharmony_ci    <<features-shaderBufferInt64Atomics, pname:shaderBufferInt64Atomics>>
5017e5c31af7Sopenharmony_ci    features are supported.
5018e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[]
5019e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float16_int8[]
5020e5c31af7Sopenharmony_ci  * <<features-shaderFloat16, pname:shaderFloat16>> or
5021e5c31af7Sopenharmony_ci    <<features-shaderInt8, pname:shaderInt8>>, if the
5022e5c31af7Sopenharmony_ci    `apiext:VK_KHR_shader_float16_int8` extension is supported.
5023e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float16_int8[]
5024e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[]
5025e5c31af7Sopenharmony_ci  * <<features-fragmentShaderSampleInterlock,
5026e5c31af7Sopenharmony_ci    pname:fragmentShaderSampleInterlock>> or
5027e5c31af7Sopenharmony_ci    <<features-fragmentShaderPixelInterlock,
5028e5c31af7Sopenharmony_ci    pname:fragmentShaderPixelInterlock>> or
5029e5c31af7Sopenharmony_ci    <<features-fragmentShaderShadingRateInterlock,
5030e5c31af7Sopenharmony_ci    pname:fragmentShaderShadingRateInterlock>>, if the
5031e5c31af7Sopenharmony_ci    `apiext:VK_EXT_fragment_shader_interlock` extension is supported.
5032e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[]
5033e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[]
5034e5c31af7Sopenharmony_ci  * <<features-rectangularLines, pname:rectangularLines>> or
5035e5c31af7Sopenharmony_ci    <<features-bresenhamLines, pname:bresenhamLines>> or
5036e5c31af7Sopenharmony_ci    <<features-smoothLines, pname:smoothLines>> or
5037e5c31af7Sopenharmony_ci    <<features-stippledRectangularLines, pname:stippledRectangularLines>> or
5038e5c31af7Sopenharmony_ci    <<features-stippledBresenhamLines, pname:stippledBresenhamLines>> or
5039e5c31af7Sopenharmony_ci    <<features-stippledSmoothLines, pname:stippledSmoothLines>>, if the
5040e5c31af7Sopenharmony_ci    `apiext:VK_EXT_line_rasterization` extension is supported.
5041e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[]
5042e5c31af7Sopenharmony_ciifdef::VK_KHR_16bit_storage[]
5043e5c31af7Sopenharmony_ci  * <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>,
5044e5c31af7Sopenharmony_ci    if the `apiext:VK_KHR_16bit_storage` extension is supported.
5045e5c31af7Sopenharmony_ciendif::VK_KHR_16bit_storage[]
5046e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[]
5047e5c31af7Sopenharmony_ci  * <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>,
5048e5c31af7Sopenharmony_ci    if <<features-uniformAndStorageBuffer16BitAccess,
5049e5c31af7Sopenharmony_ci    pname:uniformAndStorageBuffer16BitAccess>> is enabled.
5050e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_16bit_storage[]
5051e5c31af7Sopenharmony_ciifdef::VK_EXT_image_robustness[]
5052e5c31af7Sopenharmony_ci  * <<features-robustImageAccess, pname:robustImageAccess>>, if the
5053e5c31af7Sopenharmony_ci    `apiext:VK_EXT_image_robustness` extension is supported.
5054e5c31af7Sopenharmony_ciendif::VK_EXT_image_robustness[]
5055e5c31af7Sopenharmony_ciifdef::VK_EXT_4444_formats[]
5056e5c31af7Sopenharmony_ci  * <<features-formatA4R4G4B4, pname:formatA4R4G4B4>>, if the
5057e5c31af7Sopenharmony_ci    `apiext:VK_EXT_4444_formats` extension is supported.
5058e5c31af7Sopenharmony_ciendif::VK_EXT_4444_formats[]
5059e5c31af7Sopenharmony_ciifdef::VK_VALVE_mutable_descriptor_type[]
5060e5c31af7Sopenharmony_ci  * <<features-mutableDescriptorType, pname:mutableDescriptorType>>, if the
5061e5c31af7Sopenharmony_ci    `apiext:VK_VALVE_mutable_descriptor_type` extension is supported.
5062e5c31af7Sopenharmony_ciendif::VK_VALVE_mutable_descriptor_type[]
5063e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[]
5064e5c31af7Sopenharmony_ci  * <<features-shaderInt64, pname:shaderInt64>> and
5065e5c31af7Sopenharmony_ci    <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>, if
5066e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_shader_image_atomic_int64` extension is supported.
5067e5c31af7Sopenharmony_ci  * <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>, if
5068e5c31af7Sopenharmony_ci    the <<features-sparseImageInt64Atomics, pname:sparseImageInt64Atomics>>
5069e5c31af7Sopenharmony_ci    feature is supported.
5070e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[]
5071e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[]
5072e5c31af7Sopenharmony_ci  * <<features-shaderImageFloat32Atomics, pname:shaderImageFloat32Atomics>>,
5073e5c31af7Sopenharmony_ci    if the <<features-sparseImageFloat32Atomics,
5074e5c31af7Sopenharmony_ci    pname:sparseImageFloat32Atomics>> feature is supported.
5075e5c31af7Sopenharmony_ci  * <<features-shaderImageFloat32AtomicAdd,
5076e5c31af7Sopenharmony_ci    pname:shaderImageFloat32AtomicAdd>>, if the
5077e5c31af7Sopenharmony_ci    <<features-sparseImageFloat32AtomicAdd,
5078e5c31af7Sopenharmony_ci    pname:sparseImageFloat32AtomicAdd>> feature is supported.
5079e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[]
5080e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
5081e5c31af7Sopenharmony_ci  * <<features-pipelineFragmentShadingRate,
5082e5c31af7Sopenharmony_ci    pname:pipelineFragmentShadingRate>>, if the
5083e5c31af7Sopenharmony_ci    `apiext:VK_KHR_fragment_shading_rate` extension is supported.
5084e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
5085e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_terminate_invocation[]
5086e5c31af7Sopenharmony_ci  * <<features-shaderTerminateInvocation, pname:shaderTerminateInvocation>>
5087e5c31af7Sopenharmony_ci    if the `apiext:VK_KHR_shader_terminate_invocation` extension is
5088e5c31af7Sopenharmony_ci    supported.
5089e5c31af7Sopenharmony_ciendif::VK_KHR_shader_terminate_invocation[]
5090e5c31af7Sopenharmony_ciifdef::VK_KHR_zero_initialize_workgroup_memory[]
5091e5c31af7Sopenharmony_ci  * <<features-shaderZeroInitializeWorkgroupMemory,
5092e5c31af7Sopenharmony_ci    pname:shaderZeroInitializeWorkgroupMem>>, if the
5093e5c31af7Sopenharmony_ci    `apiext:VK_KHR_zero_initialize_workgroup_memory` extension is supported.
5094e5c31af7Sopenharmony_ciendif::VK_KHR_zero_initialize_workgroup_memory[]
5095e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[]
5096e5c31af7Sopenharmony_ci  * <<features-workgroupMemoryExplicitLayout,
5097e5c31af7Sopenharmony_ci    pname:workgroupMemoryExplicitLayout>>, if the
5098e5c31af7Sopenharmony_ci    `apiext:VK_KHR_workgroup_memory_explicit_layout` extension is supported.
5099e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[]
5100e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_input_dynamic_state[]
5101e5c31af7Sopenharmony_ci  * <<features-vertexInputDynamicState, pname:vertexInputDynamicState>>, if
5102e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_vertex_input_dynamic_state` extension is supported.
5103e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_input_dynamic_state[]
5104e5c31af7Sopenharmony_ciifdef::VK_KHR_synchronization2[]
5105e5c31af7Sopenharmony_ci  * <<features-synchronization2, pname:synchronization2>> if the
5106e5c31af7Sopenharmony_ci    `apiext:VK_KHR_synchronization2` extension is supported.
5107e5c31af7Sopenharmony_ciendif::VK_KHR_synchronization2[]
5108e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[]
5109e5c31af7Sopenharmony_ci  * <<features-provokingVertexLast, pname:provokingVertexLast>>, if the
5110e5c31af7Sopenharmony_ci    `apiext:VK_EXT_provoking_vertex` extension is supported.
5111e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[]
5112e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[]
5113e5c31af7Sopenharmony_ci  * <<features-shaderSubgroupUniformControlFlow,
5114e5c31af7Sopenharmony_ci    pname:shaderSubgroupUniformControlFlow>>, if the
5115e5c31af7Sopenharmony_ci    `apiext:VK_KHR_shader_subgroup_uniform_control_flow` extension is
5116e5c31af7Sopenharmony_ci    supported.
5117e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[]
5118e5c31af7Sopenharmony_ciifdef::VK_EXT_border_color_swizzle[]
5119e5c31af7Sopenharmony_ci  * <<features-borderColorSwizzle, pname:borderColorSwizzle>> if the
5120e5c31af7Sopenharmony_ci    apiext:VK_EXT_border_color_swizzle extension is supported.
5121e5c31af7Sopenharmony_ciendif::VK_EXT_border_color_swizzle[]
5122e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
5123e5c31af7Sopenharmony_ci  * <<features-multiDraw, pname:multiDraw>>, if the
5124e5c31af7Sopenharmony_ci    `apiext:VK_EXT_multi_draw` extension is supported.
5125e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
5126e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[]
5127e5c31af7Sopenharmony_ci  * <<features-shaderImageFloat32AtomicMinMax,
5128e5c31af7Sopenharmony_ci    pname:shaderImageFloat32AtomicMinMax>>, if the
5129e5c31af7Sopenharmony_ci    <<features-sparseImageFloat32AtomicMinMax,
5130e5c31af7Sopenharmony_ci    pname:sparseImageFloat32AtomicMinMax>> feature is supported.
5131e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[]
5132e5c31af7Sopenharmony_ciifdef::VK_KHR_present_id[]
5133e5c31af7Sopenharmony_ci  * <<features-presentId, pname:presentId>>, if the
5134e5c31af7Sopenharmony_ci    `apiext:VK_KHR_present_id` extension is supported.
5135e5c31af7Sopenharmony_ciendif::VK_KHR_present_id[]
5136e5c31af7Sopenharmony_ciifdef::VK_KHR_present_wait[]
5137e5c31af7Sopenharmony_ci  * <<features-presentWait, pname:presentWait>>, if the
5138e5c31af7Sopenharmony_ci    `apiext:VK_KHR_present_wait` extension is supported.
5139e5c31af7Sopenharmony_ciendif::VK_KHR_present_wait[]
5140e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_integer_dot_product[]
5141e5c31af7Sopenharmony_ci  * <<features-shaderIntegerDotProduct, pname:shaderIntegerDotProduct>> if
5142e5c31af7Sopenharmony_ci    the `apiext:VK_KHR_shader_integer_dot_product` extension is supported.
5143e5c31af7Sopenharmony_ciendif::VK_KHR_shader_integer_dot_product[]
5144e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[]
5145e5c31af7Sopenharmony_ci  * <<features-maintenance4, pname:maintenance4>>, if the
5146e5c31af7Sopenharmony_ci    `apiext:VK_KHR_maintenance4` extension is supported.
5147e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance4[]
5148e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[]
5149e5c31af7Sopenharmony_ci  * <<features-depthClipControl, pname:depthClipControl>>, if the
5150e5c31af7Sopenharmony_ci    `apiext:VK_EXT_depth_clip_control` extension is supported.
5151e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[]
5152e5c31af7Sopenharmony_ciifdef::VK_EXT_image_view_min_lod[]
5153e5c31af7Sopenharmony_ci  * <<features-minLod, pname:minLod>>, if the
5154e5c31af7Sopenharmony_ci    `apiext:VK_EXT_image_view_min_lod` extension is supported.
5155e5c31af7Sopenharmony_ciendif::VK_EXT_image_view_min_lod[]
5156e5c31af7Sopenharmony_ci
5157e5c31af7Sopenharmony_ciAll other features defined in the Specification are optional:.
5158