1e5c31af7Sopenharmony_ci// Copyright 2015-2024 The Khronos Group Inc.
2e5c31af7Sopenharmony_ci//
3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0
4e5c31af7Sopenharmony_ci
5e5c31af7Sopenharmony_ci// This text fragment is used many times in the Devices and Queues, and
6e5c31af7Sopenharmony_ci// Limits chapters for different behavior, property, and limit queries.
7e5c31af7Sopenharmony_ciifdef::hidden[]
8e5c31af7Sopenharmony_ci// tag::limits_desc[]
9e5c31af7Sopenharmony_ciIf the sname:{refpage} structure is included in the pname:pNext chain of the
10e5c31af7Sopenharmony_cislink:VkPhysicalDeviceProperties2 structure passed to
11e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceProperties2, it is filled in with each
12e5c31af7Sopenharmony_cicorresponding implementation-dependent property.
13e5c31af7Sopenharmony_ci// end::limits_desc[]
14e5c31af7Sopenharmony_ciendif::hidden[]
15e5c31af7Sopenharmony_ci
16e5c31af7Sopenharmony_ci
17e5c31af7Sopenharmony_ci[[limits]]
18e5c31af7Sopenharmony_ci= Limits
19e5c31af7Sopenharmony_ci
20e5c31af7Sopenharmony_ci_Limits_ are implementation-dependent minimums, maximums, and other device
21e5c31af7Sopenharmony_cicharacteristics that an application may: need to be aware of.
22e5c31af7Sopenharmony_ci
23e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
24e5c31af7Sopenharmony_ci[NOTE]
25e5c31af7Sopenharmony_ci.Note
26e5c31af7Sopenharmony_ci====
27e5c31af7Sopenharmony_ciLimits are reported via the basic slink:VkPhysicalDeviceLimits structure as
28e5c31af7Sopenharmony_ciwell as the extensible structure sname:VkPhysicalDeviceProperties2, which
29e5c31af7Sopenharmony_ciwas added in `apiext:VK_KHR_get_physical_device_properties2` and included in
30e5c31af7Sopenharmony_ciVulkan 1.1.
31e5c31af7Sopenharmony_ciWhen limits are added in future Vulkan versions or extensions, each
32e5c31af7Sopenharmony_ciextension should: introduce one new limit structure, if needed.
33e5c31af7Sopenharmony_ciThis structure can: be added to the pname:pNext chain of the
34e5c31af7Sopenharmony_cisname:VkPhysicalDeviceProperties2 structure.
35e5c31af7Sopenharmony_ci====
36e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
37e5c31af7Sopenharmony_ci
38e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLimits',desc='Structure reporting implementation-dependent physical device limits',type='structs']
39e5c31af7Sopenharmony_ci--
40e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLimits structure is defined as:
41e5c31af7Sopenharmony_ci
42e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLimits.adoc[]
43e5c31af7Sopenharmony_ci
44e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLimits are properties of the physical device.
45e5c31af7Sopenharmony_ciThese are available in the pname:limits member of the
46e5c31af7Sopenharmony_cislink:VkPhysicalDeviceProperties structure which is returned from
47e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceProperties.
48e5c31af7Sopenharmony_ci
49e5c31af7Sopenharmony_ci  * [[limits-maxImageDimension1D]] pname:maxImageDimension1D is the largest
50e5c31af7Sopenharmony_ci    dimension (pname:width) that is guaranteed to be supported for all
51e5c31af7Sopenharmony_ci    images created with an pname:imageType of ename:VK_IMAGE_TYPE_1D.
52e5c31af7Sopenharmony_ci    Some combinations of image parameters (format, usage, etc.) may: allow
53e5c31af7Sopenharmony_ci    support for larger dimensions, which can: be queried using
54e5c31af7Sopenharmony_ci    flink:vkGetPhysicalDeviceImageFormatProperties.
55e5c31af7Sopenharmony_ci  * [[limits-maxImageDimension2D]] pname:maxImageDimension2D is the largest
56e5c31af7Sopenharmony_ci    dimension (pname:width or pname:height) that is guaranteed to be
57e5c31af7Sopenharmony_ci    supported for all images created with an pname:imageType of
58e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and without
59e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT set in pname:flags.
60e5c31af7Sopenharmony_ci    Some combinations of image parameters (format, usage, etc.) may: allow
61e5c31af7Sopenharmony_ci    support for larger dimensions, which can: be queried using
62e5c31af7Sopenharmony_ci    flink:vkGetPhysicalDeviceImageFormatProperties.
63e5c31af7Sopenharmony_ci  * [[limits-maxImageDimension3D]] pname:maxImageDimension3D is the largest
64e5c31af7Sopenharmony_ci    dimension (pname:width, pname:height, or pname:depth) that is guaranteed
65e5c31af7Sopenharmony_ci    to be supported for all images created with an pname:imageType of
66e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_3D.
67e5c31af7Sopenharmony_ci    Some combinations of image parameters (format, usage, etc.) may: allow
68e5c31af7Sopenharmony_ci    support for larger dimensions, which can: be queried using
69e5c31af7Sopenharmony_ci    flink:vkGetPhysicalDeviceImageFormatProperties.
70e5c31af7Sopenharmony_ci  * [[limits-maxImageDimensionCube]] pname:maxImageDimensionCube is the
71e5c31af7Sopenharmony_ci    largest dimension (pname:width or pname:height) that is guaranteed to be
72e5c31af7Sopenharmony_ci    supported for all images created with an pname:imageType of
73e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TYPE_2D and with
74e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT set in pname:flags.
75e5c31af7Sopenharmony_ci    Some combinations of image parameters (format, usage, etc.) may: allow
76e5c31af7Sopenharmony_ci    support for larger dimensions, which can: be queried using
77e5c31af7Sopenharmony_ci    flink:vkGetPhysicalDeviceImageFormatProperties.
78e5c31af7Sopenharmony_ci  * [[limits-maxImageArrayLayers]] pname:maxImageArrayLayers is the maximum
79e5c31af7Sopenharmony_ci    number of layers (pname:arrayLayers) for an image.
80e5c31af7Sopenharmony_ci  * [[limits-maxTexelBufferElements]] pname:maxTexelBufferElements is the
81e5c31af7Sopenharmony_ci    maximum number of addressable texels for a buffer view created on a
82e5c31af7Sopenharmony_ci    buffer which was created with the
83e5c31af7Sopenharmony_ci    ename:VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or
84e5c31af7Sopenharmony_ci    ename:VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set in the pname:usage
85e5c31af7Sopenharmony_ci    member of the slink:VkBufferCreateInfo structure.
86e5c31af7Sopenharmony_ci  * [[limits-maxUniformBufferRange]] pname:maxUniformBufferRange is the
87e5c31af7Sopenharmony_ci    maximum value that can: be specified in the pname:range member of a
88e5c31af7Sopenharmony_ci    slink:VkDescriptorBufferInfo structure passed to
89e5c31af7Sopenharmony_ci    flink:vkUpdateDescriptorSets for descriptors of type
90e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
91e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.
92e5c31af7Sopenharmony_ci  * [[limits-maxStorageBufferRange]] pname:maxStorageBufferRange is the
93e5c31af7Sopenharmony_ci    maximum value that can: be specified in the pname:range member of a
94e5c31af7Sopenharmony_ci    slink:VkDescriptorBufferInfo structure passed to
95e5c31af7Sopenharmony_ci    flink:vkUpdateDescriptorSets for descriptors of type
96e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
97e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.
98e5c31af7Sopenharmony_ci  * [[limits-maxPushConstantsSize]] pname:maxPushConstantsSize is the
99e5c31af7Sopenharmony_ci    maximum size, in bytes, of the pool of push constant memory.
100e5c31af7Sopenharmony_ci    For each of the push constant ranges indicated by the
101e5c31af7Sopenharmony_ci    pname:pPushConstantRanges member of the slink:VkPipelineLayoutCreateInfo
102e5c31af7Sopenharmony_ci    structure, [eq]#(pname:offset {plus} pname:size)# must: be less than or
103e5c31af7Sopenharmony_ci    equal to this limit.
104e5c31af7Sopenharmony_ci  * [[limits-maxMemoryAllocationCount]] pname:maxMemoryAllocationCount is
105e5c31af7Sopenharmony_ci    the maximum number of device memory allocations, as created by
106e5c31af7Sopenharmony_ci    flink:vkAllocateMemory, which can: simultaneously exist.
107e5c31af7Sopenharmony_ci  * [[limits-maxSamplerAllocationCount]] pname:maxSamplerAllocationCount is
108e5c31af7Sopenharmony_ci    the maximum number of sampler objects, as created by
109e5c31af7Sopenharmony_ci    flink:vkCreateSampler, which can: simultaneously exist on a device.
110e5c31af7Sopenharmony_ci  * [[limits-bufferImageGranularity]] pname:bufferImageGranularity is the
111e5c31af7Sopenharmony_ci    granularity, in bytes, at which buffer or linear image resources, and
112e5c31af7Sopenharmony_ci    optimal image resources can: be bound to adjacent offsets in the same
113e5c31af7Sopenharmony_ci    sname:VkDeviceMemory object without aliasing.
114e5c31af7Sopenharmony_ci    See <<resources-bufferimagegranularity,Buffer-Image Granularity>> for
115e5c31af7Sopenharmony_ci    more details.
116e5c31af7Sopenharmony_ci  * [[limits-sparseAddressSpaceSize]] pname:sparseAddressSpaceSize is the
117e5c31af7Sopenharmony_ci    total amount of address space available, in bytes, for sparse memory
118e5c31af7Sopenharmony_ci    resources.
119e5c31af7Sopenharmony_ci    This is an upper bound on the sum of the sizes of all sparse resources,
120e5c31af7Sopenharmony_ci    regardless of whether any memory is bound to them.
121e5c31af7Sopenharmony_ciifdef::VK_NV_extended_sparse_address_space[]
122e5c31af7Sopenharmony_ci    If the <<features-extendedSparseAddressSpace,
123e5c31af7Sopenharmony_ci    pname:extendedSparseAddressSpace>> feature is enabled, then the
124e5c31af7Sopenharmony_ci    difference between <<limits-extendedSparseAddressSpaceSize,
125e5c31af7Sopenharmony_ci    pname:extendedSparseAddressSpaceSize>> and pname:sparseAddressSpaceSize
126e5c31af7Sopenharmony_ci    can also be used, by sname:VkImage created with the pname:usage member
127e5c31af7Sopenharmony_ci    of slink:VkImageCreateInfo only containing bits in
128e5c31af7Sopenharmony_ci    <<limits-extendedSparseImageUsageFlags,
129e5c31af7Sopenharmony_ci    pname:extendedSparseImageUsageFlags>> and sname:VkBuffer created with
130e5c31af7Sopenharmony_ci    the pname:usage member of slink:VkBufferCreateInfo only containing bits
131e5c31af7Sopenharmony_ci    in <<limits-extendedSparseBufferUsageFlags,
132e5c31af7Sopenharmony_ci    pname:extendedSparseBufferUsageFlags>>.
133e5c31af7Sopenharmony_ciendif::VK_NV_extended_sparse_address_space[]
134e5c31af7Sopenharmony_ci  * [[limits-maxBoundDescriptorSets]] pname:maxBoundDescriptorSets is the
135e5c31af7Sopenharmony_ci    maximum number of descriptor sets that can: be simultaneously used by a
136e5c31af7Sopenharmony_ci    pipeline.
137e5c31af7Sopenharmony_ci    All code:DescriptorSet decorations in shader modules must: have a value
138e5c31af7Sopenharmony_ci    less than pname:maxBoundDescriptorSets.
139e5c31af7Sopenharmony_ci    See <<descriptorsets-sets>>.
140e5c31af7Sopenharmony_ci  * [[limits-maxPerStageDescriptorSamplers]]
141e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorSamplers is the maximum number of samplers
142e5c31af7Sopenharmony_ci    that can: be accessible to a single shader stage in a pipeline layout.
143e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_SAMPLER or
144e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER count against this
145e5c31af7Sopenharmony_ci    limit.
146e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
147e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
148e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
149e5c31af7Sopenharmony_ci    count against this limit.
150e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
151e5c31af7Sopenharmony_ci    A descriptor is accessible to a shader stage when the pname:stageFlags
152e5c31af7Sopenharmony_ci    member of the sname:VkDescriptorSetLayoutBinding structure has the bit
153e5c31af7Sopenharmony_ci    for that shader stage set.
154e5c31af7Sopenharmony_ci    See <<descriptorsets-sampler>> and
155e5c31af7Sopenharmony_ci    <<descriptorsets-combinedimagesampler>>.
156e5c31af7Sopenharmony_ci  * [[limits-maxPerStageDescriptorUniformBuffers]]
157e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUniformBuffers is the maximum number of
158e5c31af7Sopenharmony_ci    uniform buffers that can: be accessible to a single shader stage in a
159e5c31af7Sopenharmony_ci    pipeline layout.
160e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
161e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against this
162e5c31af7Sopenharmony_ci    limit.
163e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
164e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
165e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
166e5c31af7Sopenharmony_ci    count against this limit.
167e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
168e5c31af7Sopenharmony_ci    A descriptor is accessible to a shader stage when the pname:stageFlags
169e5c31af7Sopenharmony_ci    member of the sname:VkDescriptorSetLayoutBinding structure has the bit
170e5c31af7Sopenharmony_ci    for that shader stage set.
171e5c31af7Sopenharmony_ci    See <<descriptorsets-uniformbuffer>> and
172e5c31af7Sopenharmony_ci    <<descriptorsets-uniformbufferdynamic>>.
173e5c31af7Sopenharmony_ci  * [[limits-maxPerStageDescriptorStorageBuffers]]
174e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorStorageBuffers is the maximum number of
175e5c31af7Sopenharmony_ci    storage buffers that can: be accessible to a single shader stage in a
176e5c31af7Sopenharmony_ci    pipeline layout.
177e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
178e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this
179e5c31af7Sopenharmony_ci    limit.
180e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
181e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
182e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
183e5c31af7Sopenharmony_ci    count against this limit.
184e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
185e5c31af7Sopenharmony_ci    A descriptor is accessible to a pipeline shader stage when the
186e5c31af7Sopenharmony_ci    pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
187e5c31af7Sopenharmony_ci    structure has the bit for that shader stage set.
188e5c31af7Sopenharmony_ci    See <<descriptorsets-storagebuffer>> and
189e5c31af7Sopenharmony_ci    <<descriptorsets-storagebufferdynamic>>.
190e5c31af7Sopenharmony_ci  * [[limits-maxPerStageDescriptorSampledImages]]
191e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorSampledImages is the maximum number of
192e5c31af7Sopenharmony_ci    sampled images that can: be accessible to a single shader stage in a
193e5c31af7Sopenharmony_ci    pipeline layout.
194e5c31af7Sopenharmony_ci    Descriptors with a type of
195e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
196e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or
197e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER count against this limit.
198e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
199e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
200e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
201e5c31af7Sopenharmony_ci    count against this limit.
202e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
203e5c31af7Sopenharmony_ci    A descriptor is accessible to a pipeline shader stage when the
204e5c31af7Sopenharmony_ci    pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
205e5c31af7Sopenharmony_ci    structure has the bit for that shader stage set.
206e5c31af7Sopenharmony_ci    See <<descriptorsets-combinedimagesampler>>,
207e5c31af7Sopenharmony_ci    <<descriptorsets-sampledimage>>, and
208e5c31af7Sopenharmony_ci    <<descriptorsets-uniformtexelbuffer>>.
209e5c31af7Sopenharmony_ci  * [[limits-maxPerStageDescriptorStorageImages]]
210e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorStorageImages is the maximum number of
211e5c31af7Sopenharmony_ci    storage images that can: be accessible to a single shader stage in a
212e5c31af7Sopenharmony_ci    pipeline layout.
213e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or
214e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER count against this limit.
215e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
216e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
217e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
218e5c31af7Sopenharmony_ci    count against this limit.
219e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
220e5c31af7Sopenharmony_ci    A descriptor is accessible to a pipeline shader stage when the
221e5c31af7Sopenharmony_ci    pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
222e5c31af7Sopenharmony_ci    structure has the bit for that shader stage set.
223e5c31af7Sopenharmony_ci    See <<descriptorsets-storageimage>>, and
224e5c31af7Sopenharmony_ci    <<descriptorsets-storagetexelbuffer>>.
225e5c31af7Sopenharmony_ci  * [[limits-maxPerStageDescriptorInputAttachments]]
226e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorInputAttachments is the maximum number of
227e5c31af7Sopenharmony_ci    input attachments that can: be accessible to a single shader stage in a
228e5c31af7Sopenharmony_ci    pipeline layout.
229e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
230e5c31af7Sopenharmony_ci    count against this limit.
231e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
232e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
233e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
234e5c31af7Sopenharmony_ci    count against this limit.
235e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
236e5c31af7Sopenharmony_ci    A descriptor is accessible to a pipeline shader stage when the
237e5c31af7Sopenharmony_ci    pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
238e5c31af7Sopenharmony_ci    structure has the bit for that shader stage set.
239e5c31af7Sopenharmony_ci    These are only supported for the fragment stage.
240e5c31af7Sopenharmony_ci    See <<descriptorsets-inputattachment>>.
241e5c31af7Sopenharmony_ci  * [[limits-maxPerStageResources]] pname:maxPerStageResources is the
242e5c31af7Sopenharmony_ci    maximum number of resources that can: be accessible to a single shader
243e5c31af7Sopenharmony_ci    stage in a pipeline layout.
244e5c31af7Sopenharmony_ci    Descriptors with a type of
245e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
246e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
247e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
248e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
249e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
250e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
251e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
252e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
253e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, or
254e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT count against this limit.
255e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
256e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
257e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
258e5c31af7Sopenharmony_ci    count against this limit.
259e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
260e5c31af7Sopenharmony_ci    For the fragment shader stage the framebuffer color attachments also
261e5c31af7Sopenharmony_ci    count against this limit.
262e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetSamplers]] pname:maxDescriptorSetSamplers is
263e5c31af7Sopenharmony_ci    the maximum number of samplers that can: be included in a pipeline
264e5c31af7Sopenharmony_ci    layout.
265e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_SAMPLER or
266e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER count against this
267e5c31af7Sopenharmony_ci    limit.
268e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
269e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
270e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
271e5c31af7Sopenharmony_ci    count against this limit.
272e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
273e5c31af7Sopenharmony_ci    See <<descriptorsets-sampler>> and
274e5c31af7Sopenharmony_ci    <<descriptorsets-combinedimagesampler>>.
275e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetUniformBuffers]]
276e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUniformBuffers is the maximum number of uniform
277e5c31af7Sopenharmony_ci    buffers that can: be included in a pipeline layout.
278e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
279e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against this
280e5c31af7Sopenharmony_ci    limit.
281e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
282e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
283e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
284e5c31af7Sopenharmony_ci    count against this limit.
285e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
286e5c31af7Sopenharmony_ci    See <<descriptorsets-uniformbuffer>> and
287e5c31af7Sopenharmony_ci    <<descriptorsets-uniformbufferdynamic>>.
288e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetUniformBuffersDynamic]]
289e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUniformBuffersDynamic is the maximum number of
290e5c31af7Sopenharmony_ci    dynamic uniform buffers that can: be included in a pipeline layout.
291e5c31af7Sopenharmony_ci    Descriptors with a type of
292e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against this
293e5c31af7Sopenharmony_ci    limit.
294e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
295e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
296e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
297e5c31af7Sopenharmony_ci    count against this limit.
298e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
299e5c31af7Sopenharmony_ci    See <<descriptorsets-uniformbufferdynamic>>.
300e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetStorageBuffers]]
301e5c31af7Sopenharmony_ci    pname:maxDescriptorSetStorageBuffers is the maximum number of storage
302e5c31af7Sopenharmony_ci    buffers that can: be included in a pipeline layout.
303e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
304e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this
305e5c31af7Sopenharmony_ci    limit.
306e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
307e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
308e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
309e5c31af7Sopenharmony_ci    count against this limit.
310e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
311e5c31af7Sopenharmony_ci    See <<descriptorsets-storagebuffer>> and
312e5c31af7Sopenharmony_ci    <<descriptorsets-storagebufferdynamic>>.
313e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetStorageBuffersDynamic]]
314e5c31af7Sopenharmony_ci    pname:maxDescriptorSetStorageBuffersDynamic is the maximum number of
315e5c31af7Sopenharmony_ci    dynamic storage buffers that can: be included in a pipeline layout.
316e5c31af7Sopenharmony_ci    Descriptors with a type of
317e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this
318e5c31af7Sopenharmony_ci    limit.
319e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
320e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
321e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
322e5c31af7Sopenharmony_ci    count against this limit.
323e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
324e5c31af7Sopenharmony_ci    See <<descriptorsets-storagebufferdynamic>>.
325e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetSampledImages]]
326e5c31af7Sopenharmony_ci    pname:maxDescriptorSetSampledImages is the maximum number of sampled
327e5c31af7Sopenharmony_ci    images that can: be included in a pipeline layout.
328e5c31af7Sopenharmony_ci    Descriptors with a type of
329e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
330e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or
331e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER count against this limit.
332e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
333e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
334e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
335e5c31af7Sopenharmony_ci    count against this limit.
336e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
337e5c31af7Sopenharmony_ci    See <<descriptorsets-combinedimagesampler>>,
338e5c31af7Sopenharmony_ci    <<descriptorsets-sampledimage>>, and
339e5c31af7Sopenharmony_ci    <<descriptorsets-uniformtexelbuffer>>.
340e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetStorageImages]]
341e5c31af7Sopenharmony_ci    pname:maxDescriptorSetStorageImages is the maximum number of storage
342e5c31af7Sopenharmony_ci    images that can: be included in a pipeline layout.
343e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or
344e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER count against this limit.
345e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
346e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
347e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
348e5c31af7Sopenharmony_ci    count against this limit.
349e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
350e5c31af7Sopenharmony_ci    See <<descriptorsets-storageimage>>, and
351e5c31af7Sopenharmony_ci    <<descriptorsets-storagetexelbuffer>>.
352e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetInputAttachments]]
353e5c31af7Sopenharmony_ci    pname:maxDescriptorSetInputAttachments is the maximum number of input
354e5c31af7Sopenharmony_ci    attachments that can: be included in a pipeline layout.
355e5c31af7Sopenharmony_ci    Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
356e5c31af7Sopenharmony_ci    count against this limit.
357e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
358e5c31af7Sopenharmony_ci    Only descriptors in descriptor set layouts created without the
359e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
360e5c31af7Sopenharmony_ci    count against this limit.
361e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
362e5c31af7Sopenharmony_ci    See <<descriptorsets-inputattachment>>.
363e5c31af7Sopenharmony_ci  * [[limits-maxVertexInputAttributes]] pname:maxVertexInputAttributes is
364e5c31af7Sopenharmony_ci    the maximum number of vertex input attributes that can: be specified for
365e5c31af7Sopenharmony_ci    a graphics pipeline.
366e5c31af7Sopenharmony_ci    These are described in the array of
367e5c31af7Sopenharmony_ci    sname:VkVertexInputAttributeDescription structures that are provided at
368e5c31af7Sopenharmony_ci    graphics pipeline creation time via the
369e5c31af7Sopenharmony_ci    pname:pVertexAttributeDescriptions member of the
370e5c31af7Sopenharmony_ci    slink:VkPipelineVertexInputStateCreateInfo structure.
371e5c31af7Sopenharmony_ci    See <<fxvertex-attrib>> and <<fxvertex-input>>.
372e5c31af7Sopenharmony_ci  * [[limits-maxVertexInputBindings]] pname:maxVertexInputBindings is the
373e5c31af7Sopenharmony_ci    maximum number of vertex buffers that can: be specified for providing
374e5c31af7Sopenharmony_ci    vertex attributes to a graphics pipeline.
375e5c31af7Sopenharmony_ci    These are described in the array of
376e5c31af7Sopenharmony_ci    sname:VkVertexInputBindingDescription structures that are provided at
377e5c31af7Sopenharmony_ci    graphics pipeline creation time via the pname:pVertexBindingDescriptions
378e5c31af7Sopenharmony_ci    member of the slink:VkPipelineVertexInputStateCreateInfo structure.
379e5c31af7Sopenharmony_ci    The pname:binding member of sname:VkVertexInputBindingDescription must:
380e5c31af7Sopenharmony_ci    be less than this limit.
381e5c31af7Sopenharmony_ci    See <<fxvertex-input>>.
382e5c31af7Sopenharmony_ci  * [[limits-maxVertexInputAttributeOffset]]
383e5c31af7Sopenharmony_ci    pname:maxVertexInputAttributeOffset is the maximum vertex input
384e5c31af7Sopenharmony_ci    attribute offset that can: be added to the vertex input binding stride.
385e5c31af7Sopenharmony_ci    The pname:offset member of the sname:VkVertexInputAttributeDescription
386e5c31af7Sopenharmony_ci    structure must: be less than or equal to this limit.
387e5c31af7Sopenharmony_ci    See <<fxvertex-input>>.
388e5c31af7Sopenharmony_ci  * [[limits-maxVertexInputBindingStride]] pname:maxVertexInputBindingStride
389e5c31af7Sopenharmony_ci    is the maximum vertex input binding stride that can: be specified in a
390e5c31af7Sopenharmony_ci    vertex input binding.
391e5c31af7Sopenharmony_ci    The pname:stride member of the sname:VkVertexInputBindingDescription
392e5c31af7Sopenharmony_ci    structure must: be less than or equal to this limit.
393e5c31af7Sopenharmony_ci    See <<fxvertex-input>>.
394e5c31af7Sopenharmony_ci  * [[limits-maxVertexOutputComponents]] pname:maxVertexOutputComponents is
395e5c31af7Sopenharmony_ci    the maximum number of components of output variables which can: be
396e5c31af7Sopenharmony_ci    output by a vertex shader.
397e5c31af7Sopenharmony_ci    See <<shaders-vertex>>.
398e5c31af7Sopenharmony_ci  * [[limits-maxTessellationGenerationLevel]]
399e5c31af7Sopenharmony_ci    pname:maxTessellationGenerationLevel is the maximum tessellation
400e5c31af7Sopenharmony_ci    generation level supported by the fixed-function tessellation primitive
401e5c31af7Sopenharmony_ci    generator.
402e5c31af7Sopenharmony_ci    See <<tessellation>>.
403e5c31af7Sopenharmony_ci  * [[limits-maxTessellationPatchSize]] pname:maxTessellationPatchSize is
404e5c31af7Sopenharmony_ci    the maximum patch size, in vertices, of patches that can: be processed
405e5c31af7Sopenharmony_ci    by the tessellation control shader and tessellation primitive generator.
406e5c31af7Sopenharmony_ci    The pname:patchControlPoints member of the
407e5c31af7Sopenharmony_ci    slink:VkPipelineTessellationStateCreateInfo structure specified at
408e5c31af7Sopenharmony_ci    pipeline creation time and the value provided in the code:OutputVertices
409e5c31af7Sopenharmony_ci    execution mode of shader modules must: be less than or equal to this
410e5c31af7Sopenharmony_ci    limit.
411e5c31af7Sopenharmony_ci    See <<tessellation>>.
412e5c31af7Sopenharmony_ci  * [[limits-maxTessellationControlPerVertexInputComponents]]
413e5c31af7Sopenharmony_ci    pname:maxTessellationControlPerVertexInputComponents is the maximum
414e5c31af7Sopenharmony_ci    number of components of input variables which can: be provided as
415e5c31af7Sopenharmony_ci    per-vertex inputs to the tessellation control shader stage.
416e5c31af7Sopenharmony_ci  * [[limits-maxTessellationControlPerVertexOutputComponents]]
417e5c31af7Sopenharmony_ci    pname:maxTessellationControlPerVertexOutputComponents is the maximum
418e5c31af7Sopenharmony_ci    number of components of per-vertex output variables which can: be output
419e5c31af7Sopenharmony_ci    from the tessellation control shader stage.
420e5c31af7Sopenharmony_ci  * [[limits-maxTessellationControlPerPatchOutputComponents]]
421e5c31af7Sopenharmony_ci    pname:maxTessellationControlPerPatchOutputComponents is the maximum
422e5c31af7Sopenharmony_ci    number of components of per-patch output variables which can: be output
423e5c31af7Sopenharmony_ci    from the tessellation control shader stage.
424e5c31af7Sopenharmony_ci  * [[limits-maxTessellationControlTotalOutputComponents]]
425e5c31af7Sopenharmony_ci    pname:maxTessellationControlTotalOutputComponents is the maximum total
426e5c31af7Sopenharmony_ci    number of components of per-vertex and per-patch output variables which
427e5c31af7Sopenharmony_ci    can: be output from the tessellation control shader stage.
428e5c31af7Sopenharmony_ci  * [[limits-maxTessellationEvaluationInputComponents]]
429e5c31af7Sopenharmony_ci    pname:maxTessellationEvaluationInputComponents is the maximum number of
430e5c31af7Sopenharmony_ci    components of input variables which can: be provided as per-vertex
431e5c31af7Sopenharmony_ci    inputs to the tessellation evaluation shader stage.
432e5c31af7Sopenharmony_ci  * [[limits-maxTessellationEvaluationOutputComponents]]
433e5c31af7Sopenharmony_ci    pname:maxTessellationEvaluationOutputComponents is the maximum number of
434e5c31af7Sopenharmony_ci    components of per-vertex output variables which can: be output from the
435e5c31af7Sopenharmony_ci    tessellation evaluation shader stage.
436e5c31af7Sopenharmony_ci  * [[limits-maxGeometryShaderInvocations]]
437e5c31af7Sopenharmony_ci    pname:maxGeometryShaderInvocations is the maximum invocation count
438e5c31af7Sopenharmony_ci    supported for instanced geometry shaders.
439e5c31af7Sopenharmony_ci    The value provided in the code:Invocations execution mode of shader
440e5c31af7Sopenharmony_ci    modules must: be less than or equal to this limit.
441e5c31af7Sopenharmony_ci    See <<geometry>>.
442e5c31af7Sopenharmony_ci  * [[limits-maxGeometryInputComponents]] pname:maxGeometryInputComponents
443e5c31af7Sopenharmony_ci    is the maximum number of components of input variables which can: be
444e5c31af7Sopenharmony_ci    provided as inputs to the geometry shader stage.
445e5c31af7Sopenharmony_ci  * [[limits-maxGeometryOutputComponents]] pname:maxGeometryOutputComponents
446e5c31af7Sopenharmony_ci    is the maximum number of components of output variables which can: be
447e5c31af7Sopenharmony_ci    output from the geometry shader stage.
448e5c31af7Sopenharmony_ci  * [[limits-maxGeometryOutputVertices]] pname:maxGeometryOutputVertices is
449e5c31af7Sopenharmony_ci    the maximum number of vertices which can: be emitted by any geometry
450e5c31af7Sopenharmony_ci    shader.
451e5c31af7Sopenharmony_ci  * [[limits-maxGeometryTotalOutputComponents]]
452e5c31af7Sopenharmony_ci    pname:maxGeometryTotalOutputComponents is the maximum total number of
453e5c31af7Sopenharmony_ci    components of output variables, across all emitted vertices, which can:
454e5c31af7Sopenharmony_ci    be output from the geometry shader stage.
455e5c31af7Sopenharmony_ci  * [[limits-maxFragmentInputComponents]] pname:maxFragmentInputComponents
456e5c31af7Sopenharmony_ci    is the maximum number of components of input variables which can: be
457e5c31af7Sopenharmony_ci    provided as inputs to the fragment shader stage.
458e5c31af7Sopenharmony_ci  * [[limits-maxFragmentOutputAttachments]]
459e5c31af7Sopenharmony_ci    pname:maxFragmentOutputAttachments is the maximum number of output
460e5c31af7Sopenharmony_ci    attachments which can: be written to by the fragment shader stage.
461e5c31af7Sopenharmony_ci  * [[limits-maxFragmentDualSrcAttachments]]
462e5c31af7Sopenharmony_ci    pname:maxFragmentDualSrcAttachments is the maximum number of output
463e5c31af7Sopenharmony_ci    attachments which can: be written to by the fragment shader stage when
464e5c31af7Sopenharmony_ci    blending is enabled and one of the dual source blend modes is in use.
465e5c31af7Sopenharmony_ci    See <<framebuffer-dsb>> and <<features-dualSrcBlend,
466e5c31af7Sopenharmony_ci    pname:dualSrcBlend>>.
467e5c31af7Sopenharmony_ci  * [[limits-maxFragmentCombinedOutputResources]]
468e5c31af7Sopenharmony_ci    pname:maxFragmentCombinedOutputResources is the total number of storage
469e5c31af7Sopenharmony_ci    buffers, storage images, and output code:Location decorated color
470e5c31af7Sopenharmony_ci    attachments (described in <<interfaces-fragmentoutput, Fragment Output
471e5c31af7Sopenharmony_ci    Interface>>) which can: be used in the fragment shader stage.
472e5c31af7Sopenharmony_ci  * [[limits-maxComputeSharedMemorySize]] pname:maxComputeSharedMemorySize
473e5c31af7Sopenharmony_ci    is the maximum total storage size, in bytes, available for variables
474e5c31af7Sopenharmony_ci    declared with the code:Workgroup storage class in shader modules (or
475e5c31af7Sopenharmony_ci    with the code:shared storage qualifier in GLSL) in the compute shader
476e5c31af7Sopenharmony_ci    stage.
477e5c31af7Sopenharmony_ci  * [[limits-maxComputeWorkGroupCount]] pname:maxComputeWorkGroupCount[3] is
478e5c31af7Sopenharmony_ci    the maximum number of local workgroups that can: be dispatched by a
479e5c31af7Sopenharmony_ci    single dispatching command.
480e5c31af7Sopenharmony_ci    These three values represent the maximum number of local workgroups for
481e5c31af7Sopenharmony_ci    the X, Y, and Z dimensions, respectively.
482e5c31af7Sopenharmony_ci    The workgroup count parameters to the dispatching commands must: be less
483e5c31af7Sopenharmony_ci    than or equal to the corresponding limit.
484e5c31af7Sopenharmony_ci    See <<dispatch>>.
485e5c31af7Sopenharmony_ci  * [[limits-maxComputeWorkGroupInvocations]]
486e5c31af7Sopenharmony_ci    pname:maxComputeWorkGroupInvocations is the maximum total number of
487e5c31af7Sopenharmony_ci    compute shader invocations in a single local workgroup.
488e5c31af7Sopenharmony_ci    The product of the X, Y, and Z sizes, as specified by the code:LocalSize
489e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[or code:LocalSizeId]
490e5c31af7Sopenharmony_ci    execution mode in shader modules or by the object decorated by the
491e5c31af7Sopenharmony_ci    code:WorkgroupSize decoration, must: be less than or equal to this
492e5c31af7Sopenharmony_ci    limit.
493e5c31af7Sopenharmony_ci  * [[limits-maxComputeWorkGroupSize]] pname:maxComputeWorkGroupSize[3] is
494e5c31af7Sopenharmony_ci    the maximum size of a local compute workgroup, per dimension.
495e5c31af7Sopenharmony_ci    These three values represent the maximum local workgroup size in the X,
496e5c31af7Sopenharmony_ci    Y, and Z dimensions, respectively.
497e5c31af7Sopenharmony_ci    The pname:x, pname:y, and pname:z sizes, as specified by the
498e5c31af7Sopenharmony_ci    code:LocalSize
499e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[or code:LocalSizeId]
500e5c31af7Sopenharmony_ci    execution mode or by the object decorated by the code:WorkgroupSize
501e5c31af7Sopenharmony_ci    decoration in shader modules, must: be less than or equal to the
502e5c31af7Sopenharmony_ci    corresponding limit.
503e5c31af7Sopenharmony_ci  * [[limits-subPixelPrecisionBits]] pname:subPixelPrecisionBits is the
504e5c31af7Sopenharmony_ci    number of bits of subpixel precision in framebuffer coordinates
505e5c31af7Sopenharmony_ci    [eq]#x~f~# and [eq]#y~f~#.
506e5c31af7Sopenharmony_ci    See <<primsrast>>.
507e5c31af7Sopenharmony_ci  * [[limits-subTexelPrecisionBits]] pname:subTexelPrecisionBits is the
508e5c31af7Sopenharmony_ci    number of bits of precision in the division along an axis of an image
509e5c31af7Sopenharmony_ci    used for minification and magnification filters.
510e5c31af7Sopenharmony_ci    [eq]#2^pname:subTexelPrecisionBits^# is the actual number of divisions
511e5c31af7Sopenharmony_ci    along each axis of the image represented.
512e5c31af7Sopenharmony_ci    Sub-texel values calculated during image sampling will snap to these
513e5c31af7Sopenharmony_ci    locations when generating the filtered results.
514e5c31af7Sopenharmony_ci  * [[limits-mipmapPrecisionBits]] pname:mipmapPrecisionBits is the number
515e5c31af7Sopenharmony_ci    of bits of division that the LOD calculation for mipmap fetching get
516e5c31af7Sopenharmony_ci    snapped to when determining the contribution from each mip level to the
517e5c31af7Sopenharmony_ci    mip filtered results.
518e5c31af7Sopenharmony_ci    [eq]#2^pname:mipmapPrecisionBits^# is the actual number of divisions.
519e5c31af7Sopenharmony_ci  * [[limits-maxDrawIndexedIndexValue]] pname:maxDrawIndexedIndexValue is
520e5c31af7Sopenharmony_ci    the maximum index value that can: be used for indexed draw calls when
521e5c31af7Sopenharmony_ci    using 32-bit indices.
522e5c31af7Sopenharmony_ci    This excludes the primitive restart index value of 0xFFFFFFFF.
523e5c31af7Sopenharmony_ci    See <<features-fullDrawIndexUint32, pname:fullDrawIndexUint32>>.
524e5c31af7Sopenharmony_ci  * [[limits-maxDrawIndirectCount]] pname:maxDrawIndirectCount is the
525e5c31af7Sopenharmony_ci    maximum draw count that is supported for indirect drawing calls.
526e5c31af7Sopenharmony_ci    See <<features-multiDrawIndirect, pname:multiDrawIndirect>>.
527e5c31af7Sopenharmony_ci  * [[limits-maxSamplerLodBias]] pname:maxSamplerLodBias is the maximum
528e5c31af7Sopenharmony_ci    absolute sampler LOD bias.
529e5c31af7Sopenharmony_ci    The sum of the pname:mipLodBias member of the slink:VkSamplerCreateInfo
530e5c31af7Sopenharmony_ci    structure and the code:Bias operand of image sampling operations in
531e5c31af7Sopenharmony_ci    shader modules (or 0 if no code:Bias operand is provided to an image
532e5c31af7Sopenharmony_ci    sampling operation) are clamped to the range
533e5c31af7Sopenharmony_ci    [eq]#[-pname:maxSamplerLodBias,+pname:maxSamplerLodBias]#.
534e5c31af7Sopenharmony_ci    See <<samplers-mipLodBias>>.
535e5c31af7Sopenharmony_ci  * [[limits-maxSamplerAnisotropy]] pname:maxSamplerAnisotropy is the
536e5c31af7Sopenharmony_ci    maximum degree of sampler anisotropy.
537e5c31af7Sopenharmony_ci    The maximum degree of anisotropic filtering used for an image sampling
538e5c31af7Sopenharmony_ci    operation is the minimum of the pname:maxAnisotropy member of the
539e5c31af7Sopenharmony_ci    slink:VkSamplerCreateInfo structure and this limit.
540e5c31af7Sopenharmony_ci    See <<samplers-maxAnisotropy>>.
541e5c31af7Sopenharmony_ci  * [[limits-maxViewports]] pname:maxViewports is the maximum number of
542e5c31af7Sopenharmony_ci    active viewports.
543e5c31af7Sopenharmony_ci    The pname:viewportCount member of the
544e5c31af7Sopenharmony_ci    slink:VkPipelineViewportStateCreateInfo structure that is provided at
545e5c31af7Sopenharmony_ci    pipeline creation must: be less than or equal to this limit.
546e5c31af7Sopenharmony_ci  * [[limits-maxViewportDimensions]] pname:maxViewportDimensions[2] are the
547e5c31af7Sopenharmony_ci    maximum viewport dimensions in the X (width) and Y (height) dimensions,
548e5c31af7Sopenharmony_ci    respectively.
549e5c31af7Sopenharmony_ci    The maximum viewport dimensions must: be greater than or equal to the
550e5c31af7Sopenharmony_ci    largest image which can: be created and used as a framebuffer
551e5c31af7Sopenharmony_ci    attachment.
552e5c31af7Sopenharmony_ci    See <<vertexpostproc-viewport,Controlling the Viewport>>.
553e5c31af7Sopenharmony_ci  * [[limits-viewportboundsrange]] pname:viewportBoundsRange[2] is the
554e5c31af7Sopenharmony_ci    [eq]#[minimum, maximum]# range that the corners of a viewport must: be
555e5c31af7Sopenharmony_ci    contained in.
556e5c31af7Sopenharmony_ci    This range must: be at least [eq]#[-2 {times} pname:size, 2 {times}
557e5c31af7Sopenharmony_ci    pname:size - 1]#, where [eq]#pname:size =
558e5c31af7Sopenharmony_ci    max(pname:maxViewportDimensions[0], pname:maxViewportDimensions[1])#.
559e5c31af7Sopenharmony_ci    See <<vertexpostproc-viewport,Controlling the Viewport>>.
560e5c31af7Sopenharmony_ci+
561e5c31af7Sopenharmony_ci[NOTE]
562e5c31af7Sopenharmony_ci.Note
563e5c31af7Sopenharmony_ci====
564e5c31af7Sopenharmony_ciThe intent of the pname:viewportBoundsRange limit is to allow a maximum
565e5c31af7Sopenharmony_cisized viewport to be arbitrarily shifted relative to the output target as
566e5c31af7Sopenharmony_cilong as at least some portion intersects.
567e5c31af7Sopenharmony_ciThis would give a bounds limit of [eq]#[-pname:size {plus} 1, 2 {times}
568e5c31af7Sopenharmony_cipname:size - 1]# which would allow all possible non-empty-set intersections
569e5c31af7Sopenharmony_ciof the output target and the viewport.
570e5c31af7Sopenharmony_ciSince these numbers are typically powers of two, picking the signed number
571e5c31af7Sopenharmony_cirange using the smallest possible number of bits ends up with the specified
572e5c31af7Sopenharmony_cirange.
573e5c31af7Sopenharmony_ci====
574e5c31af7Sopenharmony_ci  * [[limits-viewportSubPixelBits]] pname:viewportSubPixelBits is the number
575e5c31af7Sopenharmony_ci    of bits of subpixel precision for viewport bounds.
576e5c31af7Sopenharmony_ci    The subpixel precision that floating-point viewport bounds are
577e5c31af7Sopenharmony_ci    interpreted at is given by this limit.
578e5c31af7Sopenharmony_ci  * [[limits-minMemoryMapAlignment]] pname:minMemoryMapAlignment is the
579e5c31af7Sopenharmony_ci    minimum required: alignment, in bytes, of host visible memory
580e5c31af7Sopenharmony_ci    allocations within the host address space.
581e5c31af7Sopenharmony_ci    When mapping a memory allocation with flink:vkMapMemory, subtracting
582e5c31af7Sopenharmony_ci    pname:offset bytes from the returned pointer will always produce an
583e5c31af7Sopenharmony_ci    integer multiple of this limit.
584e5c31af7Sopenharmony_ci    See <<memory-device-hostaccess>>.
585e5c31af7Sopenharmony_ci    The value must: be a power of two.
586e5c31af7Sopenharmony_ci  * [[limits-minTexelBufferOffsetAlignment]]
587e5c31af7Sopenharmony_ci    pname:minTexelBufferOffsetAlignment is the minimum required: alignment,
588e5c31af7Sopenharmony_ci    in bytes, for the pname:offset member of the
589e5c31af7Sopenharmony_ci    slink:VkBufferViewCreateInfo structure for texel buffers.
590e5c31af7Sopenharmony_ci    The value must: be a power of two.
591e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
592e5c31af7Sopenharmony_ci    If <<features-texelBufferAlignment, pname:texelBufferAlignment>> is
593e5c31af7Sopenharmony_ci    enabled, this limit is equivalent to the maximum of the
594e5c31af7Sopenharmony_ci    <<limits-uniformTexelBufferOffsetAlignmentBytes,
595e5c31af7Sopenharmony_ci    pname:uniformTexelBufferOffsetAlignmentBytes>> and
596e5c31af7Sopenharmony_ci    <<limits-storageTexelBufferOffsetAlignmentBytes,
597e5c31af7Sopenharmony_ci    pname:storageTexelBufferOffsetAlignmentBytes>> members of
598e5c31af7Sopenharmony_ci    slink:VkPhysicalDeviceTexelBufferAlignmentProperties, but smaller
599e5c31af7Sopenharmony_ci    alignment is optionally: allowed by
600e5c31af7Sopenharmony_ci    <<limits-storageTexelBufferOffsetSingleTexelAlignment,
601e5c31af7Sopenharmony_ci    pname:storageTexelBufferOffsetSingleTexelAlignment>> and
602e5c31af7Sopenharmony_ci    <<limits-uniformTexelBufferOffsetSingleTexelAlignment,
603e5c31af7Sopenharmony_ci    pname:uniformTexelBufferOffsetSingleTexelAlignment>>.
604e5c31af7Sopenharmony_ci    If <<features-texelBufferAlignment, pname:texelBufferAlignment>> is not
605e5c31af7Sopenharmony_ci    enabled,
606e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
607e5c31af7Sopenharmony_ci    slink:VkBufferViewCreateInfo::pname:offset must: be a multiple of this
608e5c31af7Sopenharmony_ci    value.
609e5c31af7Sopenharmony_ci  * [[limits-minUniformBufferOffsetAlignment]]
610e5c31af7Sopenharmony_ci    pname:minUniformBufferOffsetAlignment is the minimum required:
611e5c31af7Sopenharmony_ci    alignment, in bytes, for the pname:offset member of the
612e5c31af7Sopenharmony_ci    sname:VkDescriptorBufferInfo structure for uniform buffers.
613e5c31af7Sopenharmony_ci    When a descriptor of type ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
614e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC is updated, the
615e5c31af7Sopenharmony_ci    pname:offset must: be an integer multiple of this limit.
616e5c31af7Sopenharmony_ci    Similarly, dynamic offsets for uniform buffers must: be multiples of
617e5c31af7Sopenharmony_ci    this limit.
618e5c31af7Sopenharmony_ci    The value must: be a power of two.
619e5c31af7Sopenharmony_ci  * [[limits-minStorageBufferOffsetAlignment]]
620e5c31af7Sopenharmony_ci    pname:minStorageBufferOffsetAlignment is the minimum required:
621e5c31af7Sopenharmony_ci    alignment, in bytes, for the pname:offset member of the
622e5c31af7Sopenharmony_ci    sname:VkDescriptorBufferInfo structure for storage buffers.
623e5c31af7Sopenharmony_ci    When a descriptor of type ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
624e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC is updated, the
625e5c31af7Sopenharmony_ci    pname:offset must: be an integer multiple of this limit.
626e5c31af7Sopenharmony_ci    Similarly, dynamic offsets for storage buffers must: be multiples of
627e5c31af7Sopenharmony_ci    this limit.
628e5c31af7Sopenharmony_ci    The value must: be a power of two.
629e5c31af7Sopenharmony_ci  * [[limits-minTexelOffset]] pname:minTexelOffset is the minimum offset
630e5c31af7Sopenharmony_ci    value for the code:ConstOffset image operand of any of the
631e5c31af7Sopenharmony_ci    code:OpImageSample* or code:OpImageFetch* image instructions.
632e5c31af7Sopenharmony_ci  * [[limits-maxTexelOffset]] pname:maxTexelOffset is the maximum offset
633e5c31af7Sopenharmony_ci    value for the code:ConstOffset image operand of any of the
634e5c31af7Sopenharmony_ci    code:OpImageSample* or code:OpImageFetch* image instructions.
635e5c31af7Sopenharmony_ci  * [[limits-minTexelGatherOffset]] pname:minTexelGatherOffset is the
636e5c31af7Sopenharmony_ci    minimum offset value for the code:Offset, code:ConstOffset, or
637e5c31af7Sopenharmony_ci    code:ConstOffsets image operands of any of the code:OpImage*Gather image
638e5c31af7Sopenharmony_ci    instructions.
639e5c31af7Sopenharmony_ci  * [[limits-maxTexelGatherOffset]] pname:maxTexelGatherOffset is the
640e5c31af7Sopenharmony_ci    maximum offset value for the code:Offset, code:ConstOffset, or
641e5c31af7Sopenharmony_ci    code:ConstOffsets image operands of any of the code:OpImage*Gather image
642e5c31af7Sopenharmony_ci    instructions.
643e5c31af7Sopenharmony_ci  * [[limits-minInterpolationOffset]] pname:minInterpolationOffset is the
644e5c31af7Sopenharmony_ci    base minimum (inclusive) negative offset value for the code:Offset
645e5c31af7Sopenharmony_ci    operand of the code:InterpolateAtOffset extended instruction.
646e5c31af7Sopenharmony_ci  * [[limits-maxInterpolationOffset]] pname:maxInterpolationOffset is the
647e5c31af7Sopenharmony_ci    base maximum (inclusive) positive offset value for the code:Offset
648e5c31af7Sopenharmony_ci    operand of the code:InterpolateAtOffset extended instruction.
649e5c31af7Sopenharmony_ci  * [[limits-subPixelInterpolationOffsetBits]]
650e5c31af7Sopenharmony_ci    pname:subPixelInterpolationOffsetBits is the number of fractional bits
651e5c31af7Sopenharmony_ci    that the code:x and code:y offsets to the code:InterpolateAtOffset
652e5c31af7Sopenharmony_ci    extended instruction may: be rounded to as fixed-point values.
653e5c31af7Sopenharmony_ci  * [[limits-maxFramebufferWidth]] pname:maxFramebufferWidth is the maximum
654e5c31af7Sopenharmony_ci    width for a framebuffer.
655e5c31af7Sopenharmony_ci    The pname:width member of the slink:VkFramebufferCreateInfo structure
656e5c31af7Sopenharmony_ci    must: be less than or equal to this limit.
657e5c31af7Sopenharmony_ci  * [[limits-maxFramebufferHeight]] pname:maxFramebufferHeight is the
658e5c31af7Sopenharmony_ci    maximum height for a framebuffer.
659e5c31af7Sopenharmony_ci    The pname:height member of the slink:VkFramebufferCreateInfo structure
660e5c31af7Sopenharmony_ci    must: be less than or equal to this limit.
661e5c31af7Sopenharmony_ci  * [[limits-maxFramebufferLayers]] pname:maxFramebufferLayers is the
662e5c31af7Sopenharmony_ci    maximum layer count for a layered framebuffer.
663e5c31af7Sopenharmony_ci    The pname:layers member of the slink:VkFramebufferCreateInfo structure
664e5c31af7Sopenharmony_ci    must: be less than or equal to this limit.
665e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
666e5c31af7Sopenharmony_ciifdef::hidden[]
667e5c31af7Sopenharmony_ci// tag::scdeviation[]
668e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceLimits::pname:maxFramebufferLayers may: be 1 if
669e5c31af7Sopenharmony_ci    neither pname:geometryShader or pname:shaderOutputLayer are supported
670e5c31af7Sopenharmony_ci    <<SCID-8>>.
671e5c31af7Sopenharmony_ci// end::scdeviation[]
672e5c31af7Sopenharmony_ciendif::hidden[]
673e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
674e5c31af7Sopenharmony_ci  * [[limits-framebufferColorSampleCounts]]
675e5c31af7Sopenharmony_ci    pname:framebufferColorSampleCounts is a bitmask^1^ of
676e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits indicating the color sample counts that are
677e5c31af7Sopenharmony_ci    supported for all framebuffer color attachments with floating- or
678e5c31af7Sopenharmony_ci    fixed-point formats.
679e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[]
680e5c31af7Sopenharmony_ci    There is no limit specifying the color sample counts that are supported
681e5c31af7Sopenharmony_ci    for all color attachments with integer formats.
682e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
683e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
684e5c31af7Sopenharmony_ci    For color attachments with integer formats, see
685e5c31af7Sopenharmony_ci    <<limits-framebufferIntegerColorSampleCounts,
686e5c31af7Sopenharmony_ci    pname:framebufferIntegerColorSampleCounts>>.
687e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
688e5c31af7Sopenharmony_ci  * [[limits-framebufferDepthSampleCounts]]
689e5c31af7Sopenharmony_ci    pname:framebufferDepthSampleCounts is a bitmask^1^ of
690e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits indicating the supported depth sample counts
691e5c31af7Sopenharmony_ci    for all framebuffer depth/stencil attachments, when the format includes
692e5c31af7Sopenharmony_ci    a depth component.
693e5c31af7Sopenharmony_ci  * [[limits-framebufferStencilSampleCounts]]
694e5c31af7Sopenharmony_ci    pname:framebufferStencilSampleCounts is a bitmask^1^ of
695e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits indicating the supported stencil sample
696e5c31af7Sopenharmony_ci    counts for all framebuffer depth/stencil attachments, when the format
697e5c31af7Sopenharmony_ci    includes a stencil component.
698e5c31af7Sopenharmony_ci  * [[limits-framebufferNoAttachmentsSampleCounts]]
699e5c31af7Sopenharmony_ci    pname:framebufferNoAttachmentsSampleCounts is a bitmask^1^ of
700e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits indicating the supported sample counts for a
701e5c31af7Sopenharmony_ci    <<renderpass-noattachments, subpass which uses no attachments>>.
702e5c31af7Sopenharmony_ci  * [[limits-maxColorAttachments]] pname:maxColorAttachments is the maximum
703e5c31af7Sopenharmony_ci    number of color attachments that can: be used by a subpass in a render
704e5c31af7Sopenharmony_ci    pass.
705e5c31af7Sopenharmony_ci    The pname:colorAttachmentCount member of the sname:VkSubpassDescription
706e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_create_renderpass2[]
707e5c31af7Sopenharmony_ci    or sname:VkSubpassDescription2
708e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_create_renderpass2[]
709e5c31af7Sopenharmony_ci    structure must: be less than or equal to this limit.
710e5c31af7Sopenharmony_ci  * [[limits-sampledImageColorSampleCounts]]
711e5c31af7Sopenharmony_ci    pname:sampledImageColorSampleCounts is a bitmask^1^ of
712e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits indicating the sample counts supported for
713e5c31af7Sopenharmony_ci    all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, pname:usage
714e5c31af7Sopenharmony_ci    containing ename:VK_IMAGE_USAGE_SAMPLED_BIT, and a non-integer color
715e5c31af7Sopenharmony_ci    format.
716e5c31af7Sopenharmony_ci  * [[limits-sampledImageIntegerSampleCounts]]
717e5c31af7Sopenharmony_ci    pname:sampledImageIntegerSampleCounts is a bitmask^1^ of
718e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits indicating the sample counts supported for
719e5c31af7Sopenharmony_ci    all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, pname:usage
720e5c31af7Sopenharmony_ci    containing ename:VK_IMAGE_USAGE_SAMPLED_BIT, and an integer color
721e5c31af7Sopenharmony_ci    format.
722e5c31af7Sopenharmony_ci  * [[limits-sampledImageDepthSampleCounts]]
723e5c31af7Sopenharmony_ci    pname:sampledImageDepthSampleCounts is a bitmask^1^ of
724e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits indicating the sample counts supported for
725e5c31af7Sopenharmony_ci    all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, pname:usage
726e5c31af7Sopenharmony_ci    containing ename:VK_IMAGE_USAGE_SAMPLED_BIT, and a depth format.
727e5c31af7Sopenharmony_ci  * [[limits-sampledImageStencilSampleCounts]]
728e5c31af7Sopenharmony_ci    pname:sampledImageStencilSampleCounts is a bitmask^1^ of
729e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits indicating the sample counts supported for
730e5c31af7Sopenharmony_ci    all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, pname:usage
731e5c31af7Sopenharmony_ci    containing ename:VK_IMAGE_USAGE_SAMPLED_BIT, and a stencil format.
732e5c31af7Sopenharmony_ci  * [[limits-storageImageSampleCounts]] pname:storageImageSampleCounts is a
733e5c31af7Sopenharmony_ci    bitmask^1^ of elink:VkSampleCountFlagBits indicating the sample counts
734e5c31af7Sopenharmony_ci    supported for all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL,
735e5c31af7Sopenharmony_ci    and pname:usage containing ename:VK_IMAGE_USAGE_STORAGE_BIT.
736e5c31af7Sopenharmony_ci  * [[limits-maxSampleMaskWords]] pname:maxSampleMaskWords is the maximum
737e5c31af7Sopenharmony_ci    number of array elements of a variable decorated with the
738e5c31af7Sopenharmony_ci    code:SampleMask built-in decoration.
739e5c31af7Sopenharmony_ci  * [[limits-timestampComputeAndGraphics]] pname:timestampComputeAndGraphics
740e5c31af7Sopenharmony_ci    specifies support for timestamps on all graphics and compute queues.
741e5c31af7Sopenharmony_ci    If this limit is set to ename:VK_TRUE, all queues that advertise the
742e5c31af7Sopenharmony_ci    ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT in the
743e5c31af7Sopenharmony_ci    sname:VkQueueFamilyProperties::pname:queueFlags support
744e5c31af7Sopenharmony_ci    sname:VkQueueFamilyProperties::pname:timestampValidBits of at least 36.
745e5c31af7Sopenharmony_ci    See <<queries-timestamps, Timestamp Queries>>.
746e5c31af7Sopenharmony_ci  * [[limits-timestampPeriod]] pname:timestampPeriod is the number of
747e5c31af7Sopenharmony_ci    nanoseconds required: for a timestamp query to be incremented by 1.
748e5c31af7Sopenharmony_ci    See <<queries-timestamps, Timestamp Queries>>.
749e5c31af7Sopenharmony_ci  * [[limits-maxClipDistances]] pname:maxClipDistances is the maximum number
750e5c31af7Sopenharmony_ci    of clip distances that can: be used in a single shader stage.
751e5c31af7Sopenharmony_ci    The size of any array declared with the code:ClipDistance built-in
752e5c31af7Sopenharmony_ci    decoration in a shader module must: be less than or equal to this limit.
753e5c31af7Sopenharmony_ci  * [[limits-maxCullDistances]] pname:maxCullDistances is the maximum number
754e5c31af7Sopenharmony_ci    of cull distances that can: be used in a single shader stage.
755e5c31af7Sopenharmony_ci    The size of any array declared with the code:CullDistance built-in
756e5c31af7Sopenharmony_ci    decoration in a shader module must: be less than or equal to this limit.
757e5c31af7Sopenharmony_ci  * [[limits-maxCombinedClipAndCullDistances]]
758e5c31af7Sopenharmony_ci    pname:maxCombinedClipAndCullDistances is the maximum combined number of
759e5c31af7Sopenharmony_ci    clip and cull distances that can: be used in a single shader stage.
760e5c31af7Sopenharmony_ci    The sum of the sizes of any pair of arrays declared with the
761e5c31af7Sopenharmony_ci    code:ClipDistance and code:CullDistance built-in decoration used by a
762e5c31af7Sopenharmony_ci    single shader stage in a shader module must: be less than or equal to
763e5c31af7Sopenharmony_ci    this limit.
764e5c31af7Sopenharmony_ci  * [[limits-discreteQueuePriorities]] pname:discreteQueuePriorities is the
765e5c31af7Sopenharmony_ci    number of discrete priorities that can: be assigned to a queue based on
766e5c31af7Sopenharmony_ci    the value of each member of
767e5c31af7Sopenharmony_ci    slink:VkDeviceQueueCreateInfo::pname:pQueuePriorities.
768e5c31af7Sopenharmony_ci    This must: be at least 2, and levels must: be spread evenly over the
769e5c31af7Sopenharmony_ci    range, with at least one level at 1.0, and another at 0.0.
770e5c31af7Sopenharmony_ci    See <<devsandqueues-priority>>.
771e5c31af7Sopenharmony_ci  * [[limits-pointSizeRange]] pname:pointSizeRange[2] is the range
772e5c31af7Sopenharmony_ci    [eq]#[pname:minimum,pname:maximum]# of supported sizes for points.
773e5c31af7Sopenharmony_ci    Values written to variables decorated with the code:PointSize built-in
774e5c31af7Sopenharmony_ci    decoration are clamped to this range.
775e5c31af7Sopenharmony_ci  * [[limits-lineWidthRange]] pname:lineWidthRange[2] is the range
776e5c31af7Sopenharmony_ci    [eq]#[pname:minimum,pname:maximum]# of supported widths for lines.
777e5c31af7Sopenharmony_ci    Values specified by the pname:lineWidth member of the
778e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateCreateInfo or the pname:lineWidth
779e5c31af7Sopenharmony_ci    parameter to fname:vkCmdSetLineWidth are clamped to this range.
780e5c31af7Sopenharmony_ci  * [[limits-pointSizeGranularity]] pname:pointSizeGranularity is the
781e5c31af7Sopenharmony_ci    granularity of supported point sizes.
782e5c31af7Sopenharmony_ci    Not all point sizes in the range defined by pname:pointSizeRange are
783e5c31af7Sopenharmony_ci    supported.
784e5c31af7Sopenharmony_ci    This limit specifies the granularity (or increment) between successive
785e5c31af7Sopenharmony_ci    supported point sizes.
786e5c31af7Sopenharmony_ci  * [[limits-lineWidthGranularity]] pname:lineWidthGranularity is the
787e5c31af7Sopenharmony_ci    granularity of supported line widths.
788e5c31af7Sopenharmony_ci    Not all line widths in the range defined by pname:lineWidthRange are
789e5c31af7Sopenharmony_ci    supported.
790e5c31af7Sopenharmony_ci    This limit specifies the granularity (or increment) between successive
791e5c31af7Sopenharmony_ci    supported line widths.
792e5c31af7Sopenharmony_ci  * [[limits-strictLines]] pname:strictLines specifies whether lines are
793e5c31af7Sopenharmony_ci    rasterized according to the preferred method of rasterization.
794e5c31af7Sopenharmony_ci    If set to ename:VK_FALSE, lines may: be rasterized under a relaxed set
795e5c31af7Sopenharmony_ci    of rules.
796e5c31af7Sopenharmony_ci    If set to ename:VK_TRUE, lines are rasterized as per the strict
797e5c31af7Sopenharmony_ci    definition.
798e5c31af7Sopenharmony_ci    See <<primsrast-lines-basic,Basic Line Segment Rasterization>>.
799e5c31af7Sopenharmony_ci  * [[limits-standardSampleLocations]] pname:standardSampleLocations
800e5c31af7Sopenharmony_ci    specifies whether rasterization uses the standard sample locations as
801e5c31af7Sopenharmony_ci    documented in <<primsrast-multisampling,Multisampling>>.
802e5c31af7Sopenharmony_ci    If set to ename:VK_TRUE, the implementation uses the documented sample
803e5c31af7Sopenharmony_ci    locations.
804e5c31af7Sopenharmony_ci    If set to ename:VK_FALSE, the implementation may: use different sample
805e5c31af7Sopenharmony_ci    locations.
806e5c31af7Sopenharmony_ci  * [[limits-optimalBufferCopyOffsetAlignment]]
807e5c31af7Sopenharmony_ci    pname:optimalBufferCopyOffsetAlignment is the optimal buffer offset
808e5c31af7Sopenharmony_ci    alignment in bytes for
809e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3,VK_KHR_copy_commands2[]
810e5c31af7Sopenharmony_ci    flink:vkCmdCopyBufferToImage and flink:vkCmdCopyImageToBuffer.
811e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[]
812e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_copy_commands2[]
813e5c31af7Sopenharmony_ci    flink:vkCmdCopyBufferToImage2, flink:vkCmdCopyBufferToImage,
814e5c31af7Sopenharmony_ci    flink:vkCmdCopyImageToBuffer2, and flink:vkCmdCopyImageToBuffer.
815e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[]
816e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[]
817e5c31af7Sopenharmony_ci    This value is also the optimal host memory offset alignment in bytes for
818e5c31af7Sopenharmony_ci    flink:vkCopyMemoryToImageEXT and flink:vkCopyImageToMemoryEXT.
819e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[]
820e5c31af7Sopenharmony_ci    The per texel alignment requirements are enforced, but applications
821e5c31af7Sopenharmony_ci    should: use the optimal alignment for optimal performance and power use.
822e5c31af7Sopenharmony_ci    The value must: be a power of two.
823e5c31af7Sopenharmony_ci  * [[limits-optimalBufferCopyRowPitchAlignment]]
824e5c31af7Sopenharmony_ci    pname:optimalBufferCopyRowPitchAlignment is the optimal buffer row pitch
825e5c31af7Sopenharmony_ci    alignment in bytes for
826e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3,VK_KHR_copy_commands2[]
827e5c31af7Sopenharmony_ci    flink:vkCmdCopyBufferToImage and flink:vkCmdCopyImageToBuffer.
828e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[]
829e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_copy_commands2[]
830e5c31af7Sopenharmony_ci    flink:vkCmdCopyBufferToImage2, flink:vkCmdCopyBufferToImage,
831e5c31af7Sopenharmony_ci    flink:vkCmdCopyImageToBuffer2, and flink:vkCmdCopyImageToBuffer.
832e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_copy_commands2[]
833e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[]
834e5c31af7Sopenharmony_ci    This value is also the optimal host memory row pitch alignment in bytes
835e5c31af7Sopenharmony_ci    for flink:vkCopyMemoryToImageEXT and flink:vkCopyImageToMemoryEXT.
836e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[]
837e5c31af7Sopenharmony_ci    Row pitch is the number of bytes between texels with the same X
838e5c31af7Sopenharmony_ci    coordinate in adjacent rows (Y coordinates differ by one).
839e5c31af7Sopenharmony_ci    The per texel alignment requirements are enforced, but applications
840e5c31af7Sopenharmony_ci    should: use the optimal alignment for optimal performance and power use.
841e5c31af7Sopenharmony_ci    The value must: be a power of two.
842e5c31af7Sopenharmony_ci  * [[limits-nonCoherentAtomSize]] pname:nonCoherentAtomSize is the size and
843e5c31af7Sopenharmony_ci    alignment in bytes that bounds concurrent access to
844e5c31af7Sopenharmony_ci    <<memory-device-hostaccess, host-mapped device memory>>.
845e5c31af7Sopenharmony_ci    The value must: be a power of two.
846e5c31af7Sopenharmony_ci
847e5c31af7Sopenharmony_ci1::
848e5c31af7Sopenharmony_ci    For all bitmasks of elink:VkSampleCountFlagBits, the sample count limits
849e5c31af7Sopenharmony_ci    defined above represent the minimum supported sample counts for each
850e5c31af7Sopenharmony_ci    image type.
851e5c31af7Sopenharmony_ci    Individual images may: support additional sample counts, which are
852e5c31af7Sopenharmony_ci    queried using flink:vkGetPhysicalDeviceImageFormatProperties as
853e5c31af7Sopenharmony_ci    described in <<features-supported-sample-counts, Supported Sample
854e5c31af7Sopenharmony_ci    Counts>>.
855e5c31af7Sopenharmony_ci
856e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLimits.adoc[]
857e5c31af7Sopenharmony_ci--
858e5c31af7Sopenharmony_ci
859e5c31af7Sopenharmony_ci
860e5c31af7Sopenharmony_ci[open,refpage='VkSampleCountFlagBits',desc='Bitmask specifying sample counts supported for an image used for storage operations',type='enums']
861e5c31af7Sopenharmony_ci--
862e5c31af7Sopenharmony_ciBits which may: be set in the sample count limits returned by
863e5c31af7Sopenharmony_cislink:VkPhysicalDeviceLimits, as well as in other queries and structures
864e5c31af7Sopenharmony_cirepresenting image sample counts, are:
865e5c31af7Sopenharmony_ci
866e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkSampleCountFlagBits.adoc[]
867e5c31af7Sopenharmony_ci
868e5c31af7Sopenharmony_ci  * ename:VK_SAMPLE_COUNT_1_BIT specifies an image with one sample per
869e5c31af7Sopenharmony_ci    pixel.
870e5c31af7Sopenharmony_ci  * ename:VK_SAMPLE_COUNT_2_BIT specifies an image with 2 samples per pixel.
871e5c31af7Sopenharmony_ci  * ename:VK_SAMPLE_COUNT_4_BIT specifies an image with 4 samples per pixel.
872e5c31af7Sopenharmony_ci  * ename:VK_SAMPLE_COUNT_8_BIT specifies an image with 8 samples per pixel.
873e5c31af7Sopenharmony_ci  * ename:VK_SAMPLE_COUNT_16_BIT specifies an image with 16 samples per
874e5c31af7Sopenharmony_ci    pixel.
875e5c31af7Sopenharmony_ci  * ename:VK_SAMPLE_COUNT_32_BIT specifies an image with 32 samples per
876e5c31af7Sopenharmony_ci    pixel.
877e5c31af7Sopenharmony_ci  * ename:VK_SAMPLE_COUNT_64_BIT specifies an image with 64 samples per
878e5c31af7Sopenharmony_ci    pixel.
879e5c31af7Sopenharmony_ci--
880e5c31af7Sopenharmony_ci
881e5c31af7Sopenharmony_ci[open,refpage='VkSampleCountFlags',desc='Bitmask of VkSampleCountFlagBits',type='flags']
882e5c31af7Sopenharmony_ci--
883e5c31af7Sopenharmony_ciinclude::{generated}/api/flags/VkSampleCountFlags.adoc[]
884e5c31af7Sopenharmony_ci
885e5c31af7Sopenharmony_citname:VkSampleCountFlags is a bitmask type for setting a mask of zero or
886e5c31af7Sopenharmony_cimore elink:VkSampleCountFlagBits.
887e5c31af7Sopenharmony_ci--
888e5c31af7Sopenharmony_ci
889e5c31af7Sopenharmony_ciifdef::VK_KHR_push_descriptor[]
890e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePushDescriptorPropertiesKHR',desc='Structure describing push descriptor limits that can be supported by an implementation',type='structs']
891e5c31af7Sopenharmony_ci--
892e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePushDescriptorPropertiesKHR structure is defined
893e5c31af7Sopenharmony_cias:
894e5c31af7Sopenharmony_ci
895e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePushDescriptorPropertiesKHR.adoc[]
896e5c31af7Sopenharmony_ci
897e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
898e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
899e5c31af7Sopenharmony_ci    structure.
900e5c31af7Sopenharmony_ci  * [[limits-maxPushDescriptors]] pname:maxPushDescriptors is the maximum
901e5c31af7Sopenharmony_ci    number of descriptors that can: be used in a descriptor set layout
902e5c31af7Sopenharmony_ci    created with
903e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set.
904e5c31af7Sopenharmony_ci
905e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePushDescriptorPropertiesKHR
906e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
907e5c31af7Sopenharmony_ci
908e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePushDescriptorPropertiesKHR.adoc[]
909e5c31af7Sopenharmony_ci--
910e5c31af7Sopenharmony_ciendif::VK_KHR_push_descriptor[]
911e5c31af7Sopenharmony_ci
912e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[]
913e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewProperties',desc='Structure describing multiview limits that can be supported by an implementation',type='structs']
914e5c31af7Sopenharmony_ci--
915e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewProperties structure is defined as:
916e5c31af7Sopenharmony_ci
917e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewProperties.adoc[]
918e5c31af7Sopenharmony_ci
919e5c31af7Sopenharmony_ciifdef::VK_KHR_multiview[]
920e5c31af7Sopenharmony_cior the equivalent
921e5c31af7Sopenharmony_ci
922e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewPropertiesKHR.adoc[]
923e5c31af7Sopenharmony_ciendif::VK_KHR_multiview[]
924e5c31af7Sopenharmony_ci
925e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
926e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
927e5c31af7Sopenharmony_ci    structure.
928e5c31af7Sopenharmony_ci
929e5c31af7Sopenharmony_ci// Must have preceding whitespace
930e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
931e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
932e5c31af7Sopenharmony_ci// tag::VK_KHR_multiview-properties[]
933e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxMultiviewViewCount]]
934e5c31af7Sopenharmony_ci    pname:maxMultiviewViewCount is one greater than the maximum view index
935e5c31af7Sopenharmony_ci    that can: be used in a subpass.
936e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxMultiviewInstanceIndex]]
937e5c31af7Sopenharmony_ci    pname:maxMultiviewInstanceIndex is the maximum valid value of instance
938e5c31af7Sopenharmony_ci    index allowed to be generated by a drawing command recorded within a
939e5c31af7Sopenharmony_ci    subpass of a multiview render pass instance.
940e5c31af7Sopenharmony_ci// end::VK_KHR_multiview-properties[]
941e5c31af7Sopenharmony_ci
942e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewProperties
943e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
944e5c31af7Sopenharmony_ci
945e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewProperties.adoc[]
946e5c31af7Sopenharmony_ci--
947e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[]
948e5c31af7Sopenharmony_ci
949e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_float_controls[]
950e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFloatControlsProperties',desc='Structure describing properties supported by VK_KHR_shader_float_controls',type='structs',alias='VkPhysicalDeviceFloatControlsPropertiesKHR']
951e5c31af7Sopenharmony_ci--
952e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFloatControlsProperties structure is defined as:
953e5c31af7Sopenharmony_ci
954e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFloatControlsProperties.adoc[]
955e5c31af7Sopenharmony_ci
956e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float_controls[]
957e5c31af7Sopenharmony_cior the equivalent
958e5c31af7Sopenharmony_ci
959e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFloatControlsPropertiesKHR.adoc[]
960e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float_controls[]
961e5c31af7Sopenharmony_ci
962e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
963e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
964e5c31af7Sopenharmony_ci    structure.
965e5c31af7Sopenharmony_ci
966e5c31af7Sopenharmony_ci// Must have preceding whitespace
967e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
968e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
969e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_float_controls-properties[]
970e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-denormBehaviorIndependence]]
971e5c31af7Sopenharmony_ci    pname:denormBehaviorIndependence is a
972e5c31af7Sopenharmony_ci    elink:VkShaderFloatControlsIndependence value indicating whether, and
973e5c31af7Sopenharmony_ci    how, denorm behavior can be set independently for different bit widths.
974e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-roundingModeIndependence]]
975e5c31af7Sopenharmony_ci    pname:roundingModeIndependence is a
976e5c31af7Sopenharmony_ci    elink:VkShaderFloatControlsIndependence value indicating whether, and
977e5c31af7Sopenharmony_ci    how, rounding modes can be set independently for different bit widths.
978e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderSignedZeroInfNanPreserveFloat16]]
979e5c31af7Sopenharmony_ci    pname:shaderSignedZeroInfNanPreserveFloat16 is a boolean value
980e5c31af7Sopenharmony_ci    indicating whether sign of a zero, [eq]##Nan##s and
981e5c31af7Sopenharmony_ci    latexmath:[\pm\infty] can: be preserved in 16-bit floating-point
982e5c31af7Sopenharmony_ci    computations.
983e5c31af7Sopenharmony_ci    It also indicates whether the code:SignedZeroInfNanPreserve execution
984e5c31af7Sopenharmony_ci    mode can: be used for 16-bit floating-point types.
985e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderSignedZeroInfNanPreserveFloat32]]
986e5c31af7Sopenharmony_ci    pname:shaderSignedZeroInfNanPreserveFloat32 is a boolean value
987e5c31af7Sopenharmony_ci    indicating whether sign of a zero, [eq]##Nan##s and
988e5c31af7Sopenharmony_ci    latexmath:[\pm\infty] can: be preserved in 32-bit floating-point
989e5c31af7Sopenharmony_ci    computations.
990e5c31af7Sopenharmony_ci    It also indicates whether the code:SignedZeroInfNanPreserve execution
991e5c31af7Sopenharmony_ci    mode can: be used for 32-bit floating-point types.
992e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderSignedZeroInfNanPreserveFloat64]]
993e5c31af7Sopenharmony_ci    pname:shaderSignedZeroInfNanPreserveFloat64 is a boolean value
994e5c31af7Sopenharmony_ci    indicating whether sign of a zero, [eq]##Nan##s and
995e5c31af7Sopenharmony_ci    latexmath:[\pm\infty] can: be preserved in 64-bit floating-point
996e5c31af7Sopenharmony_ci    computations.
997e5c31af7Sopenharmony_ci    It also indicates whether the code:SignedZeroInfNanPreserve execution
998e5c31af7Sopenharmony_ci    mode can: be used for 64-bit floating-point types.
999e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderDenormPreserveFloat16]]
1000e5c31af7Sopenharmony_ci    pname:shaderDenormPreserveFloat16 is a boolean value indicating whether
1001e5c31af7Sopenharmony_ci    denormals can: be preserved in 16-bit floating-point computations.
1002e5c31af7Sopenharmony_ci    It also indicates whether the code:DenormPreserve execution mode can: be
1003e5c31af7Sopenharmony_ci    used for 16-bit floating-point types.
1004e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderDenormPreserveFloat32]]
1005e5c31af7Sopenharmony_ci    pname:shaderDenormPreserveFloat32 is a boolean value indicating whether
1006e5c31af7Sopenharmony_ci    denormals can: be preserved in 32-bit floating-point computations.
1007e5c31af7Sopenharmony_ci    It also indicates whether the code:DenormPreserve execution mode can: be
1008e5c31af7Sopenharmony_ci    used for 32-bit floating-point types.
1009e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderDenormPreserveFloat64]]
1010e5c31af7Sopenharmony_ci    pname:shaderDenormPreserveFloat64 is a boolean value indicating whether
1011e5c31af7Sopenharmony_ci    denormals can: be preserved in 64-bit floating-point computations.
1012e5c31af7Sopenharmony_ci    It also indicates whether the code:DenormPreserve execution mode can: be
1013e5c31af7Sopenharmony_ci    used for 64-bit floating-point types.
1014e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderDenormFlushToZeroFloat16]]
1015e5c31af7Sopenharmony_ci    pname:shaderDenormFlushToZeroFloat16 is a boolean value indicating
1016e5c31af7Sopenharmony_ci    whether denormals can: be flushed to zero in 16-bit floating-point
1017e5c31af7Sopenharmony_ci    computations.
1018e5c31af7Sopenharmony_ci    It also indicates whether the code:DenormFlushToZero execution mode can:
1019e5c31af7Sopenharmony_ci    be used for 16-bit floating-point types.
1020e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderDenormFlushToZeroFloat32]]
1021e5c31af7Sopenharmony_ci    pname:shaderDenormFlushToZeroFloat32 is a boolean value indicating
1022e5c31af7Sopenharmony_ci    whether denormals can: be flushed to zero in 32-bit floating-point
1023e5c31af7Sopenharmony_ci    computations.
1024e5c31af7Sopenharmony_ci    It also indicates whether the code:DenormFlushToZero execution mode can:
1025e5c31af7Sopenharmony_ci    be used for 32-bit floating-point types.
1026e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderDenormFlushToZeroFloat64]]
1027e5c31af7Sopenharmony_ci    pname:shaderDenormFlushToZeroFloat64 is a boolean value indicating
1028e5c31af7Sopenharmony_ci    whether denormals can: be flushed to zero in 64-bit floating-point
1029e5c31af7Sopenharmony_ci    computations.
1030e5c31af7Sopenharmony_ci    It also indicates whether the code:DenormFlushToZero execution mode can:
1031e5c31af7Sopenharmony_ci    be used for 64-bit floating-point types.
1032e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderRoundingModeRTEFloat16]]
1033e5c31af7Sopenharmony_ci    pname:shaderRoundingModeRTEFloat16 is a boolean value indicating whether
1034e5c31af7Sopenharmony_ci    an implementation supports the round-to-nearest-even rounding mode for
1035e5c31af7Sopenharmony_ci    16-bit floating-point arithmetic and conversion instructions.
1036e5c31af7Sopenharmony_ci    It also indicates whether the code:RoundingModeRTE execution mode can:
1037e5c31af7Sopenharmony_ci    be used for 16-bit floating-point types.
1038e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderRoundingModeRTEFloat32]]
1039e5c31af7Sopenharmony_ci    pname:shaderRoundingModeRTEFloat32 is a boolean value indicating whether
1040e5c31af7Sopenharmony_ci    an implementation supports the round-to-nearest-even rounding mode for
1041e5c31af7Sopenharmony_ci    32-bit floating-point arithmetic and conversion instructions.
1042e5c31af7Sopenharmony_ci    It also indicates whether the code:RoundingModeRTE execution mode can:
1043e5c31af7Sopenharmony_ci    be used for 32-bit floating-point types.
1044e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderRoundingModeRTEFloat64]]
1045e5c31af7Sopenharmony_ci    pname:shaderRoundingModeRTEFloat64 is a boolean value indicating whether
1046e5c31af7Sopenharmony_ci    an implementation supports the round-to-nearest-even rounding mode for
1047e5c31af7Sopenharmony_ci    64-bit floating-point arithmetic and conversion instructions.
1048e5c31af7Sopenharmony_ci    It also indicates whether the code:RoundingModeRTE execution mode can:
1049e5c31af7Sopenharmony_ci    be used for 64-bit floating-point types.
1050e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderRoundingModeRTZFloat16]]
1051e5c31af7Sopenharmony_ci    pname:shaderRoundingModeRTZFloat16 is a boolean value indicating whether
1052e5c31af7Sopenharmony_ci    an implementation supports the round-towards-zero rounding mode for
1053e5c31af7Sopenharmony_ci    16-bit floating-point arithmetic and conversion instructions.
1054e5c31af7Sopenharmony_ci    It also indicates whether the code:RoundingModeRTZ execution mode can:
1055e5c31af7Sopenharmony_ci    be used for 16-bit floating-point types.
1056e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderRoundingModeRTZFloat32]]
1057e5c31af7Sopenharmony_ci    pname:shaderRoundingModeRTZFloat32 is a boolean value indicating whether
1058e5c31af7Sopenharmony_ci    an implementation supports the round-towards-zero rounding mode for
1059e5c31af7Sopenharmony_ci    32-bit floating-point arithmetic and conversion instructions.
1060e5c31af7Sopenharmony_ci    It also indicates whether the code:RoundingModeRTZ execution mode can:
1061e5c31af7Sopenharmony_ci    be used for 32-bit floating-point types.
1062e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderRoundingModeRTZFloat64]]
1063e5c31af7Sopenharmony_ci    pname:shaderRoundingModeRTZFloat64 is a boolean value indicating whether
1064e5c31af7Sopenharmony_ci    an implementation supports the round-towards-zero rounding mode for
1065e5c31af7Sopenharmony_ci    64-bit floating-point arithmetic and conversion instructions.
1066e5c31af7Sopenharmony_ci    It also indicates whether the code:RoundingModeRTZ execution mode can:
1067e5c31af7Sopenharmony_ci    be used for 64-bit floating-point types.
1068e5c31af7Sopenharmony_ci// end::VK_KHR_shader_float_controls-properties[]
1069e5c31af7Sopenharmony_ci
1070e5c31af7Sopenharmony_ciifdef::editing-notes[]
1071e5c31af7Sopenharmony_ci[NOTE]
1072e5c31af7Sopenharmony_ci.editing-note
1073e5c31af7Sopenharmony_ci====
1074e5c31af7Sopenharmony_ciImplementations may not be able to control behavior of denorms for
1075e5c31af7Sopenharmony_cifloating-point atomics.
1076e5c31af7Sopenharmony_ciThis needs to be taken into account when such atomics will be added to
1077e5c31af7Sopenharmony_ciVulkan.
1078e5c31af7Sopenharmony_ci====
1079e5c31af7Sopenharmony_ciendif::editing-notes[]
1080e5c31af7Sopenharmony_ci
1081e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFloatControlsProperties
1082e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1083e5c31af7Sopenharmony_ci
1084e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFloatControlsProperties.adoc[]
1085e5c31af7Sopenharmony_ci--
1086e5c31af7Sopenharmony_ci
1087e5c31af7Sopenharmony_ci[open,refpage='VkShaderFloatControlsIndependence',desc='Bitmask specifying whether, and how, shader float controls can be set separately',type='enums',alias='VkShaderFloatControlsIndependenceKHR']
1088e5c31af7Sopenharmony_ci--
1089e5c31af7Sopenharmony_ciValues which may: be returned in the pname:denormBehaviorIndependence and
1090e5c31af7Sopenharmony_cipname:roundingModeIndependence fields of
1091e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFloatControlsProperties are:
1092e5c31af7Sopenharmony_ci
1093e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkShaderFloatControlsIndependence.adoc[]
1094e5c31af7Sopenharmony_ci
1095e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float_controls[]
1096e5c31af7Sopenharmony_cior the equivalent
1097e5c31af7Sopenharmony_ci
1098e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkShaderFloatControlsIndependenceKHR.adoc[]
1099e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float_controls[]
1100e5c31af7Sopenharmony_ci
1101e5c31af7Sopenharmony_ci  * ename:VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY specifies that
1102e5c31af7Sopenharmony_ci    shader float controls for 32-bit floating point can: be set
1103e5c31af7Sopenharmony_ci    independently; other bit widths must: be set identically to each other.
1104e5c31af7Sopenharmony_ci  * ename:VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL specifies that shader
1105e5c31af7Sopenharmony_ci    float controls for all bit widths can: be set independently.
1106e5c31af7Sopenharmony_ci  * ename:VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE specifies that shader
1107e5c31af7Sopenharmony_ci    float controls for all bit widths must: be set identically.
1108e5c31af7Sopenharmony_ci--
1109e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_float_controls[]
1110e5c31af7Sopenharmony_ci
1111e5c31af7Sopenharmony_ciifdef::VK_EXT_discard_rectangles[]
1112e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDiscardRectanglePropertiesEXT',desc='Structure describing discard rectangle limits that can be supported by an implementation',type='structs']
1113e5c31af7Sopenharmony_ci--
1114e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDiscardRectanglePropertiesEXT structure is defined
1115e5c31af7Sopenharmony_cias:
1116e5c31af7Sopenharmony_ci
1117e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDiscardRectanglePropertiesEXT.adoc[]
1118e5c31af7Sopenharmony_ci
1119e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1120e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1121e5c31af7Sopenharmony_ci    structure.
1122e5c31af7Sopenharmony_ci  * [[limits-maxDiscardRectangles]] pname:maxDiscardRectangles is the
1123e5c31af7Sopenharmony_ci    maximum number of active discard rectangles that can: be specified.
1124e5c31af7Sopenharmony_ci
1125e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDiscardRectanglePropertiesEXT
1126e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1127e5c31af7Sopenharmony_ci
1128e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDiscardRectanglePropertiesEXT.adoc[]
1129e5c31af7Sopenharmony_ci--
1130e5c31af7Sopenharmony_ciendif::VK_EXT_discard_rectangles[]
1131e5c31af7Sopenharmony_ci
1132e5c31af7Sopenharmony_ciifdef::VK_EXT_sample_locations[]
1133e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSampleLocationsPropertiesEXT',desc='Structure describing sample location limits that can be supported by an implementation',type='structs']
1134e5c31af7Sopenharmony_ci--
1135e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSampleLocationsPropertiesEXT structure is defined
1136e5c31af7Sopenharmony_cias:
1137e5c31af7Sopenharmony_ci
1138e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSampleLocationsPropertiesEXT.adoc[]
1139e5c31af7Sopenharmony_ci
1140e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1141e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1142e5c31af7Sopenharmony_ci    structure.
1143e5c31af7Sopenharmony_ci  * [[limits-sampleLocationSampleCounts]] pname:sampleLocationSampleCounts
1144e5c31af7Sopenharmony_ci    is a bitmask of elink:VkSampleCountFlagBits indicating the sample counts
1145e5c31af7Sopenharmony_ci    supporting custom sample locations.
1146e5c31af7Sopenharmony_ci  * [[limits-maxSampleLocationGridSize]] pname:maxSampleLocationGridSize is
1147e5c31af7Sopenharmony_ci    the maximum size of the pixel grid in which sample locations can: vary
1148e5c31af7Sopenharmony_ci    that is supported for all sample counts in
1149e5c31af7Sopenharmony_ci    pname:sampleLocationSampleCounts.
1150e5c31af7Sopenharmony_ci  * [[limits-sampleLocationCoordinateRange]]
1151e5c31af7Sopenharmony_ci    pname:sampleLocationCoordinateRange[2] is the range of supported sample
1152e5c31af7Sopenharmony_ci    location coordinates.
1153e5c31af7Sopenharmony_ci  * [[limits-sampleLocationSubPixelBits]] pname:sampleLocationSubPixelBits
1154e5c31af7Sopenharmony_ci    is the number of bits of subpixel precision for sample locations.
1155e5c31af7Sopenharmony_ci  * [[limits-variableSampleLocations]] pname:variableSampleLocations
1156e5c31af7Sopenharmony_ci    specifies whether the sample locations used by all pipelines that will
1157e5c31af7Sopenharmony_ci    be bound to a command buffer during a subpass must: match.
1158e5c31af7Sopenharmony_ci    If set to ename:VK_TRUE, the implementation supports variable sample
1159e5c31af7Sopenharmony_ci    locations in a subpass.
1160e5c31af7Sopenharmony_ci    If set to ename:VK_FALSE, then the sample locations must: stay constant
1161e5c31af7Sopenharmony_ci    in each subpass.
1162e5c31af7Sopenharmony_ci
1163e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSampleLocationsPropertiesEXT
1164e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1165e5c31af7Sopenharmony_ci
1166e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSampleLocationsPropertiesEXT.adoc[]
1167e5c31af7Sopenharmony_ci--
1168e5c31af7Sopenharmony_ciendif::VK_EXT_sample_locations[]
1169e5c31af7Sopenharmony_ci
1170e5c31af7Sopenharmony_ciifdef::VK_EXT_external_memory_host[]
1171e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemoryHostPropertiesEXT',desc='Structure describing external memory host pointer limits that can be supported by an implementation',type='structs']
1172e5c31af7Sopenharmony_ci--
1173e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemoryHostPropertiesEXT structure is
1174e5c31af7Sopenharmony_cidefined as:
1175e5c31af7Sopenharmony_ci
1176e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.adoc[]
1177e5c31af7Sopenharmony_ci
1178e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1179e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1180e5c31af7Sopenharmony_ci    structure.
1181e5c31af7Sopenharmony_ci  * [[limits-minImportedHostPointerAlignment]]
1182e5c31af7Sopenharmony_ci    pname:minImportedHostPointerAlignment is the minimum required:
1183e5c31af7Sopenharmony_ci    alignment, in bytes, for the base address and size of host pointers that
1184e5c31af7Sopenharmony_ci    can: be imported to a Vulkan memory object.
1185e5c31af7Sopenharmony_ci    The value must: be a power of two.
1186e5c31af7Sopenharmony_ci
1187e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemoryHostPropertiesEXT
1188e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1189e5c31af7Sopenharmony_ci
1190e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.adoc[]
1191e5c31af7Sopenharmony_ci--
1192e5c31af7Sopenharmony_ciendif::VK_EXT_external_memory_host[]
1193e5c31af7Sopenharmony_ci
1194e5c31af7Sopenharmony_ciifdef::VK_NVX_multiview_per_view_attributes[]
1195e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',desc='Structure describing multiview limits that can be supported by an implementation',type='structs']
1196e5c31af7Sopenharmony_ci--
1197e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX structure
1198e5c31af7Sopenharmony_ciis defined as:
1199e5c31af7Sopenharmony_ci
1200e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.adoc[]
1201e5c31af7Sopenharmony_ci
1202e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1203e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1204e5c31af7Sopenharmony_ci    structure.
1205e5c31af7Sopenharmony_ci  * [[limits-perViewPositionAllComponents]]
1206e5c31af7Sopenharmony_ci    pname:perViewPositionAllComponents is ename:VK_TRUE if the
1207e5c31af7Sopenharmony_ci    implementation supports per-view position values that differ in
1208e5c31af7Sopenharmony_ci    components other than the X component.
1209e5c31af7Sopenharmony_ci
1210e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
1211e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1212e5c31af7Sopenharmony_ci
1213e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.adoc[]
1214e5c31af7Sopenharmony_ci--
1215e5c31af7Sopenharmony_ciendif::VK_NVX_multiview_per_view_attributes[]
1216e5c31af7Sopenharmony_ci
1217e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
1218e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePointClippingProperties',desc='Structure describing the point clipping behavior supported by an implementation',type='structs']
1219e5c31af7Sopenharmony_ci--
1220e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePointClippingProperties structure is defined as:
1221e5c31af7Sopenharmony_ci
1222e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePointClippingProperties.adoc[]
1223e5c31af7Sopenharmony_ci
1224e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance2[]
1225e5c31af7Sopenharmony_cior the equivalent
1226e5c31af7Sopenharmony_ci
1227e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePointClippingPropertiesKHR.adoc[]
1228e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance2[]
1229e5c31af7Sopenharmony_ci
1230e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1231e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1232e5c31af7Sopenharmony_ci    structure.
1233e5c31af7Sopenharmony_ci
1234e5c31af7Sopenharmony_ci// Must have preceding whitespace
1235e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1236e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1237e5c31af7Sopenharmony_ci// tag::VK_KHR_maintenance2-properties[]
1238e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-pointClipping]] pname:pointClippingBehavior is a
1239e5c31af7Sopenharmony_ci    elink:VkPointClippingBehavior value specifying the point clipping
1240e5c31af7Sopenharmony_ci    behavior supported by the implementation.
1241e5c31af7Sopenharmony_ci// end::VK_KHR_maintenance2-properties[]
1242e5c31af7Sopenharmony_ci
1243e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePointClippingProperties
1244e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1245e5c31af7Sopenharmony_ci
1246e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePointClippingProperties.adoc[]
1247e5c31af7Sopenharmony_ci--
1248e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance2[]
1249e5c31af7Sopenharmony_ci
1250e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1251e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubgroupProperties',desc='Structure describing subgroup support for an implementation',type='structs']
1252e5c31af7Sopenharmony_ci--
1253e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupProperties structure is defined as:
1254e5c31af7Sopenharmony_ci
1255e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupProperties.adoc[]
1256e5c31af7Sopenharmony_ci
1257e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1258e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1259e5c31af7Sopenharmony_ci    structure.
1260e5c31af7Sopenharmony_ci
1261e5c31af7Sopenharmony_ci// Must have preceding whitespace
1262e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1263e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1264e5c31af7Sopenharmony_ci// tag::VK_KHR_subgroup-properties[]
1265e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-subgroup-size]] pname:subgroupSize is the
1266e5c31af7Sopenharmony_ci    default number of invocations in each subgroup.
1267e5c31af7Sopenharmony_ci    pname:subgroupSize is at least 1 if any of the physical device's queues
1268e5c31af7Sopenharmony_ci    support ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT.
1269e5c31af7Sopenharmony_ci    pname:subgroupSize is a power-of-two.
1270e5c31af7Sopenharmony_ci  * [[limits-subgroup-supportedStages]] pname:supportedStages is a bitfield
1271e5c31af7Sopenharmony_ci    of elink:VkShaderStageFlagBits describing the shader stages that
1272e5c31af7Sopenharmony_ci    <<shaders-group-operations, group operations>> with
1273e5c31af7Sopenharmony_ci    <<shaders-scope-subgroup, subgroup scope>> are supported in.
1274e5c31af7Sopenharmony_ci    pname:supportedStages will have the ename:VK_SHADER_STAGE_COMPUTE_BIT
1275e5c31af7Sopenharmony_ci    bit set if any of the physical device's queues support
1276e5c31af7Sopenharmony_ci    ename:VK_QUEUE_COMPUTE_BIT.
1277e5c31af7Sopenharmony_ci  * [[limits-subgroupSupportedOperations]] pname:supportedOperations is a
1278e5c31af7Sopenharmony_ci    bitmask of elink:VkSubgroupFeatureFlagBits specifying the sets of
1279e5c31af7Sopenharmony_ci    <<shaders-group-operations, group operations>> with
1280e5c31af7Sopenharmony_ci    <<shaders-scope-subgroup, subgroup scope>> supported on this device.
1281e5c31af7Sopenharmony_ci    pname:supportedOperations will have the
1282e5c31af7Sopenharmony_ci    ename:VK_SUBGROUP_FEATURE_BASIC_BIT bit set if any of the physical
1283e5c31af7Sopenharmony_ci    device's queues support ename:VK_QUEUE_GRAPHICS_BIT or
1284e5c31af7Sopenharmony_ci    ename:VK_QUEUE_COMPUTE_BIT.
1285e5c31af7Sopenharmony_ci  * [[limits-subgroup-quadOperationsInAllStages]]
1286e5c31af7Sopenharmony_ci    pname:quadOperationsInAllStages is a boolean specifying whether
1287e5c31af7Sopenharmony_ci    <<shaders-quad-operations,quad group operations>> are available in all
1288e5c31af7Sopenharmony_ci    stages, or are restricted to fragment and compute stages.
1289e5c31af7Sopenharmony_ci// end::VK_KHR_subgroup-properties[]
1290e5c31af7Sopenharmony_ci
1291e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubgroupProperties
1292e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1293e5c31af7Sopenharmony_ci
1294e5c31af7Sopenharmony_ciIf pname:supportedOperations includes <<features-subgroup-quad,
1295e5c31af7Sopenharmony_ciename:VK_SUBGROUP_FEATURE_QUAD_BIT>>,
1296e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[]
1297e5c31af7Sopenharmony_cior <<features-shaderSubgroupUniformControlFlow,
1298e5c31af7Sopenharmony_cipname:shaderSubgroupUniformControlFlow>> is enabled,
1299e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[]
1300e5c31af7Sopenharmony_cipname:subgroupSize must: be greater than or equal to 4.
1301e5c31af7Sopenharmony_ci
1302e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubgroupProperties.adoc[]
1303e5c31af7Sopenharmony_ci--
1304e5c31af7Sopenharmony_ci
1305e5c31af7Sopenharmony_ci[open,refpage='VkSubgroupFeatureFlagBits',desc='Bitmask describing what group operations are supported with subgroup scope',type='enums']
1306e5c31af7Sopenharmony_ci--
1307e5c31af7Sopenharmony_ciBits which can: be set in
1308e5c31af7Sopenharmony_cislink:VkPhysicalDeviceSubgroupProperties::pname:supportedOperations
1309e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
1310e5c31af7Sopenharmony_ciand
1311e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan11Properties::pname:subgroupSupportedOperations
1312e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
1313e5c31af7Sopenharmony_cito specify supported <<shaders-group-operations, group operations>> with
1314e5c31af7Sopenharmony_ci<<shaders-scope-subgroup, subgroup scope>> are:
1315e5c31af7Sopenharmony_ci
1316e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkSubgroupFeatureFlagBits.adoc[]
1317e5c31af7Sopenharmony_ci
1318e5c31af7Sopenharmony_ci  * [[features-subgroup-basic]] ename:VK_SUBGROUP_FEATURE_BASIC_BIT
1319e5c31af7Sopenharmony_ci    specifies the device will accept SPIR-V shader modules containing the
1320e5c31af7Sopenharmony_ci    code:GroupNonUniform capability.
1321e5c31af7Sopenharmony_ci  * [[features-subgroup-vote]] ename:VK_SUBGROUP_FEATURE_VOTE_BIT specifies
1322e5c31af7Sopenharmony_ci    the device will accept SPIR-V shader modules containing the
1323e5c31af7Sopenharmony_ci    code:GroupNonUniformVote capability.
1324e5c31af7Sopenharmony_ci  * [[features-subgroup-arithmetic]]
1325e5c31af7Sopenharmony_ci    ename:VK_SUBGROUP_FEATURE_ARITHMETIC_BIT specifies the device will
1326e5c31af7Sopenharmony_ci    accept SPIR-V shader modules containing the
1327e5c31af7Sopenharmony_ci    code:GroupNonUniformArithmetic capability.
1328e5c31af7Sopenharmony_ci  * [[features-subgroup-ballot]] ename:VK_SUBGROUP_FEATURE_BALLOT_BIT
1329e5c31af7Sopenharmony_ci    specifies the device will accept SPIR-V shader modules containing the
1330e5c31af7Sopenharmony_ci    code:GroupNonUniformBallot capability.
1331e5c31af7Sopenharmony_ci  * [[features-subgroup-shuffle]] ename:VK_SUBGROUP_FEATURE_SHUFFLE_BIT
1332e5c31af7Sopenharmony_ci    specifies the device will accept SPIR-V shader modules containing the
1333e5c31af7Sopenharmony_ci    code:GroupNonUniformShuffle capability.
1334e5c31af7Sopenharmony_ci  * [[features-subgroup-shuffle-relative]]
1335e5c31af7Sopenharmony_ci    ename:VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT specifies the device will
1336e5c31af7Sopenharmony_ci    accept SPIR-V shader modules containing the
1337e5c31af7Sopenharmony_ci    code:GroupNonUniformShuffleRelative capability.
1338e5c31af7Sopenharmony_ci  * [[features-subgroup-clustered]] ename:VK_SUBGROUP_FEATURE_CLUSTERED_BIT
1339e5c31af7Sopenharmony_ci    specifies the device will accept SPIR-V shader modules containing the
1340e5c31af7Sopenharmony_ci    code:GroupNonUniformClustered capability.
1341e5c31af7Sopenharmony_ci  * [[features-subgroup-quad]] ename:VK_SUBGROUP_FEATURE_QUAD_BIT specifies
1342e5c31af7Sopenharmony_ci    the device will accept SPIR-V shader modules containing the
1343e5c31af7Sopenharmony_ci    code:GroupNonUniformQuad capability.
1344e5c31af7Sopenharmony_ciifdef::VK_NV_shader_subgroup_partitioned[]
1345e5c31af7Sopenharmony_ci  * [[features-subgroup-partitioned]]
1346e5c31af7Sopenharmony_ci    ename:VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV specifies the device will
1347e5c31af7Sopenharmony_ci    accept SPIR-V shader modules containing the
1348e5c31af7Sopenharmony_ci    code:GroupNonUniformPartitionedNV capability.
1349e5c31af7Sopenharmony_ciendif::VK_NV_shader_subgroup_partitioned[]
1350e5c31af7Sopenharmony_ci--
1351e5c31af7Sopenharmony_ci
1352e5c31af7Sopenharmony_ci[open,refpage='VkSubgroupFeatureFlags',desc='Bitmask of VkSubgroupFeatureFlagBits',type='flags']
1353e5c31af7Sopenharmony_ci--
1354e5c31af7Sopenharmony_ciinclude::{generated}/api/flags/VkSubgroupFeatureFlags.adoc[]
1355e5c31af7Sopenharmony_ci
1356e5c31af7Sopenharmony_citname:VkSubgroupFeatureFlags is a bitmask type for setting a mask of zero or
1357e5c31af7Sopenharmony_cimore elink:VkSubgroupFeatureFlagBits.
1358e5c31af7Sopenharmony_ci--
1359e5c31af7Sopenharmony_ci
1360e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_subgroup_size_control[]
1361e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubgroupSizeControlProperties',desc='Structure describing the control subgroup size properties of an implementation',type='structs',alias='VkPhysicalDeviceSubgroupSizeControlPropertiesEXT']
1362e5c31af7Sopenharmony_ci--
1363e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlProperties structure is defined
1364e5c31af7Sopenharmony_cias:
1365e5c31af7Sopenharmony_ci
1366e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlProperties.adoc[]
1367e5c31af7Sopenharmony_ci
1368e5c31af7Sopenharmony_ciifdef::VK_EXT_subgroup_size_control[]
1369e5c31af7Sopenharmony_cior the equivalent
1370e5c31af7Sopenharmony_ci
1371e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlPropertiesEXT.adoc[]
1372e5c31af7Sopenharmony_ciendif::VK_EXT_subgroup_size_control[]
1373e5c31af7Sopenharmony_ci
1374e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1375e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1376e5c31af7Sopenharmony_ci    structure.
1377e5c31af7Sopenharmony_ci
1378e5c31af7Sopenharmony_ci// Must have preceding whitespace
1379e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
1380e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
1381e5c31af7Sopenharmony_ci// tag::VK_EXT_subgroup_size_control-properties[]
1382e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-minSubgroupSize]] pname:minSubgroupSize is the
1383e5c31af7Sopenharmony_ci    minimum subgroup size supported by this device.
1384e5c31af7Sopenharmony_ci    pname:minSubgroupSize is at least one if any of the physical device's
1385e5c31af7Sopenharmony_ci    queues support ename:VK_QUEUE_GRAPHICS_BIT or
1386e5c31af7Sopenharmony_ci    ename:VK_QUEUE_COMPUTE_BIT.
1387e5c31af7Sopenharmony_ci    pname:minSubgroupSize is a power-of-two.
1388e5c31af7Sopenharmony_ci    pname:minSubgroupSize is less than or equal to pname:maxSubgroupSize.
1389e5c31af7Sopenharmony_ci    pname:minSubgroupSize is less than or equal to <<limits-subgroup-size,
1390e5c31af7Sopenharmony_ci    pname:subgroupSize>>.
1391e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxSubgroupSize]] pname:maxSubgroupSize is the
1392e5c31af7Sopenharmony_ci    maximum subgroup size supported by this device.
1393e5c31af7Sopenharmony_ci    pname:maxSubgroupSize is at least one if any of the physical device's
1394e5c31af7Sopenharmony_ci    queues support ename:VK_QUEUE_GRAPHICS_BIT or
1395e5c31af7Sopenharmony_ci    ename:VK_QUEUE_COMPUTE_BIT.
1396e5c31af7Sopenharmony_ci    pname:maxSubgroupSize is a power-of-two.
1397e5c31af7Sopenharmony_ci    pname:maxSubgroupSize is greater than or equal to pname:minSubgroupSize.
1398e5c31af7Sopenharmony_ci    pname:maxSubgroupSize is greater than or equal to
1399e5c31af7Sopenharmony_ci    <<limits-subgroup-size, pname:subgroupSize>>.
1400e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxComputeWorkgroupSubgroups]]
1401e5c31af7Sopenharmony_ci    pname:maxComputeWorkgroupSubgroups is the maximum number of subgroups
1402e5c31af7Sopenharmony_ci    supported by the implementation within a workgroup.
1403e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-requiredSubgroupSizeStages]]
1404e5c31af7Sopenharmony_ci    pname:requiredSubgroupSizeStages is a bitfield of what shader stages
1405e5c31af7Sopenharmony_ci    support having a required subgroup size specified.
1406e5c31af7Sopenharmony_ci// end::VK_EXT_subgroup_size_control-properties[]
1407e5c31af7Sopenharmony_ci
1408e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubgroupSizeControlProperties
1409e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1410e5c31af7Sopenharmony_ci
1411e5c31af7Sopenharmony_ciIf slink:VkPhysicalDeviceSubgroupProperties::pname:supportedOperations
1412e5c31af7Sopenharmony_ciincludes <<features-subgroup-quad, ename:VK_SUBGROUP_FEATURE_QUAD_BIT>>,
1413e5c31af7Sopenharmony_cipname:minSubgroupSize must: be greater than or equal to 4.
1414e5c31af7Sopenharmony_ci
1415e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubgroupSizeControlProperties.adoc[]
1416e5c31af7Sopenharmony_ci--
1417e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_subgroup_size_control[]
1418e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1419e5c31af7Sopenharmony_ci
1420e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[]
1421e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT',desc='Structure describing advanced blending limits that can be supported by an implementation',type='structs']
1422e5c31af7Sopenharmony_ci--
1423e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT structure is
1424e5c31af7Sopenharmony_cidefined as:
1425e5c31af7Sopenharmony_ci
1426e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.adoc[]
1427e5c31af7Sopenharmony_ci
1428e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1429e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1430e5c31af7Sopenharmony_ci    structure.
1431e5c31af7Sopenharmony_ci  * [[limits-advancedBlendMaxColorAttachments]]
1432e5c31af7Sopenharmony_ci    pname:advancedBlendMaxColorAttachments is one greater than the highest
1433e5c31af7Sopenharmony_ci    color attachment index that can: be used in a subpass, for a pipeline
1434e5c31af7Sopenharmony_ci    that uses an <<framebuffer-blend-advanced,advanced blend operation>>.
1435e5c31af7Sopenharmony_ci  * [[limits-advancedBlendIndependentBlend]]
1436e5c31af7Sopenharmony_ci    pname:advancedBlendIndependentBlend specifies whether advanced blend
1437e5c31af7Sopenharmony_ci    operations can: vary per-attachment.
1438e5c31af7Sopenharmony_ci  * [[limits-advancedBlendNonPremultipliedSrcColor]]
1439e5c31af7Sopenharmony_ci    pname:advancedBlendNonPremultipliedSrcColor specifies whether the source
1440e5c31af7Sopenharmony_ci    color can: be treated as non-premultiplied.
1441e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then
1442e5c31af7Sopenharmony_ci    slink:VkPipelineColorBlendAdvancedStateCreateInfoEXT::pname:srcPremultiplied
1443e5c31af7Sopenharmony_ci    must: be ename:VK_TRUE.
1444e5c31af7Sopenharmony_ci  * [[limits-advancedBlendNonPremultipliedDstColor]]
1445e5c31af7Sopenharmony_ci    pname:advancedBlendNonPremultipliedDstColor specifies whether the
1446e5c31af7Sopenharmony_ci    destination color can: be treated as non-premultiplied.
1447e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then
1448e5c31af7Sopenharmony_ci    slink:VkPipelineColorBlendAdvancedStateCreateInfoEXT::pname:dstPremultiplied
1449e5c31af7Sopenharmony_ci    must: be ename:VK_TRUE.
1450e5c31af7Sopenharmony_ci  * [[limits-advancedBlendCorrelatedOverlap]]
1451e5c31af7Sopenharmony_ci    pname:advancedBlendCorrelatedOverlap specifies whether the overlap mode
1452e5c31af7Sopenharmony_ci    can: be treated as correlated.
1453e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then
1454e5c31af7Sopenharmony_ci    slink:VkPipelineColorBlendAdvancedStateCreateInfoEXT::pname:blendOverlap
1455e5c31af7Sopenharmony_ci    must: be ename:VK_BLEND_OVERLAP_UNCORRELATED_EXT.
1456e5c31af7Sopenharmony_ci  * [[limits-advancedBlendAllOperations]] pname:advancedBlendAllOperations
1457e5c31af7Sopenharmony_ci    specifies whether all advanced blend operation enums are supported.
1458e5c31af7Sopenharmony_ci    See the valid usage of slink:VkPipelineColorBlendAttachmentState.
1459e5c31af7Sopenharmony_ci
1460e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
1461e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1462e5c31af7Sopenharmony_ci
1463e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.adoc[]
1464e5c31af7Sopenharmony_ci--
1465e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[]
1466e5c31af7Sopenharmony_ci
1467e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[]
1468e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT',desc='Structure describing max value of vertex attribute divisor that can be supported by an implementation',type='structs']
1469e5c31af7Sopenharmony_ci--
1470e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT structure is
1471e5c31af7Sopenharmony_cidefined as:
1472e5c31af7Sopenharmony_ci
1473e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.adoc[]
1474e5c31af7Sopenharmony_ci
1475e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1476e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1477e5c31af7Sopenharmony_ci    structure.
1478e5c31af7Sopenharmony_ci
1479e5c31af7Sopenharmony_ci// Must have preceding whitespace
1480e5c31af7Sopenharmony_ciifdef::VK_KHR_vertex_attribute_divisor[:anchor-prefix: extension-]
1481e5c31af7Sopenharmony_ciifndef::VK_KHR_vertex_attribute_divisor[:anchor-prefix:]
1482e5c31af7Sopenharmony_ci// tag::VK_KHR_vertex_attribute_divisor-properties[]
1483e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxVertexAttribDivisor]]
1484e5c31af7Sopenharmony_ci    pname:maxVertexAttribDivisor is the maximum value of the number of
1485e5c31af7Sopenharmony_ci    instances that will repeat the value of vertex attribute data when
1486e5c31af7Sopenharmony_ci    instanced rendering is enabled.
1487e5c31af7Sopenharmony_ci
1488e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
1489e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1490e5c31af7Sopenharmony_ci
1491e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.adoc[]
1492e5c31af7Sopenharmony_ci--
1493e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[]
1494e5c31af7Sopenharmony_ci
1495e5c31af7Sopenharmony_ciifdef::VK_KHR_vertex_attribute_divisor[]
1496e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR',desc='Structure describing max value of vertex attribute divisor that can be supported by an implementation',type='structs']
1497e5c31af7Sopenharmony_ci--
1498e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR structure is
1499e5c31af7Sopenharmony_cidefined as:
1500e5c31af7Sopenharmony_ci
1501e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR.adoc[]
1502e5c31af7Sopenharmony_ci
1503e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1504e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1505e5c31af7Sopenharmony_ci    structure.
1506e5c31af7Sopenharmony_ci  * [[limits-maxVertexAttribDivisor]] pname:maxVertexAttribDivisor is the
1507e5c31af7Sopenharmony_ci    maximum value of the number of instances that will repeat the value of
1508e5c31af7Sopenharmony_ci    vertex attribute data when instanced rendering is enabled.
1509e5c31af7Sopenharmony_ci  * [[limits-supportsNonZeroFirstInstance]]
1510e5c31af7Sopenharmony_ci    pname:supportsNonZeroFirstInstance specifies whether a non-zero value
1511e5c31af7Sopenharmony_ci    for the pname:firstInstance parameter of <<drawing, drawing commands>>
1512e5c31af7Sopenharmony_ci    is supported when
1513e5c31af7Sopenharmony_ci    slink:VkVertexInputBindingDivisorDescriptionKHR::pname:divisor is not
1514e5c31af7Sopenharmony_ci    `1`.
1515e5c31af7Sopenharmony_ci
1516e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR
1517e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1518e5c31af7Sopenharmony_ci
1519e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR.adoc[]
1520e5c31af7Sopenharmony_ci--
1521e5c31af7Sopenharmony_ciendif::VK_KHR_vertex_attribute_divisor[]
1522e5c31af7Sopenharmony_ci
1523e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[]
1524e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSamplerFilterMinmaxProperties',desc='Structure describing sampler filter minmax limits that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT']
1525e5c31af7Sopenharmony_ci--
1526e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSamplerFilterMinmaxProperties structure is defined
1527e5c31af7Sopenharmony_cias:
1528e5c31af7Sopenharmony_ci
1529e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerFilterMinmaxProperties.adoc[]
1530e5c31af7Sopenharmony_ci
1531e5c31af7Sopenharmony_ciifdef::VK_EXT_sampler_filter_minmax[]
1532e5c31af7Sopenharmony_cior the equivalent
1533e5c31af7Sopenharmony_ci
1534e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.adoc[]
1535e5c31af7Sopenharmony_ciendif::VK_EXT_sampler_filter_minmax[]
1536e5c31af7Sopenharmony_ci
1537e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1538e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1539e5c31af7Sopenharmony_ci    structure.
1540e5c31af7Sopenharmony_ci
1541e5c31af7Sopenharmony_ci// Must have preceding whitespace
1542e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1543e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1544e5c31af7Sopenharmony_ci// tag::VK_EXT_sampler_filter_minmax-properties[]
1545e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-filterMinmaxSingleComponentFormats]]
1546e5c31af7Sopenharmony_ci    pname:filterMinmaxSingleComponentFormats is a boolean value indicating
1547e5c31af7Sopenharmony_ci    whether a minimum set of required formats support min/max filtering.
1548e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-filterMinmaxImageComponentMapping]]
1549e5c31af7Sopenharmony_ci    pname:filterMinmaxImageComponentMapping is a boolean value indicating
1550e5c31af7Sopenharmony_ci    whether the implementation supports non-identity component mapping of
1551e5c31af7Sopenharmony_ci    the image when doing min/max filtering.
1552e5c31af7Sopenharmony_ci// end::VK_EXT_sampler_filter_minmax-properties[]
1553e5c31af7Sopenharmony_ci
1554e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSamplerFilterMinmaxProperties
1555e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1556e5c31af7Sopenharmony_ci
1557e5c31af7Sopenharmony_ci[[limits-filterMinmaxSingleComponentFormats-minimum-requirements]]
1558e5c31af7Sopenharmony_ciIf pname:filterMinmaxSingleComponentFormats is ename:VK_TRUE, the following
1559e5c31af7Sopenharmony_ciformats must: support the
1560e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT feature with
1561e5c31af7Sopenharmony_ciename:VK_IMAGE_TILING_OPTIMAL, if they support
1562e5c31af7Sopenharmony_ciename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT:
1563e5c31af7Sopenharmony_ci
1564e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_R8_UNORM
1565e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_R8_SNORM
1566e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_R16_UNORM
1567e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_R16_SNORM
1568e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_R16_SFLOAT
1569e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_R32_SFLOAT
1570e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_D16_UNORM
1571e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_X8_D24_UNORM_PACK32
1572e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_D32_SFLOAT
1573e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_D16_UNORM_S8_UINT
1574e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_D24_UNORM_S8_UINT
1575e5c31af7Sopenharmony_ci  * ename:VK_FORMAT_D32_SFLOAT_S8_UINT
1576e5c31af7Sopenharmony_ci
1577e5c31af7Sopenharmony_ciIf the format is a depth/stencil format, this bit only specifies that the
1578e5c31af7Sopenharmony_cidepth aspect (not the stencil aspect) of an image of this format supports
1579e5c31af7Sopenharmony_cimin/max filtering, and that min/max filtering of the depth aspect is
1580e5c31af7Sopenharmony_cisupported when depth compare is disabled in the sampler.
1581e5c31af7Sopenharmony_ci
1582e5c31af7Sopenharmony_ciIf pname:filterMinmaxImageComponentMapping is ename:VK_FALSE the component
1583e5c31af7Sopenharmony_cimapping of the image view used with min/max filtering must: have been
1584e5c31af7Sopenharmony_cicreated with the pname:r component set to the
1585e5c31af7Sopenharmony_ci<<resources-image-views-identity-mappings,identity swizzle>>.
1586e5c31af7Sopenharmony_ciOnly the pname:r component of the sampled image value is defined and the
1587e5c31af7Sopenharmony_ciother component values are undefined:.
1588e5c31af7Sopenharmony_ciIf pname:filterMinmaxImageComponentMapping is ename:VK_TRUE this restriction
1589e5c31af7Sopenharmony_cidoes not apply and image component mapping works as normal.
1590e5c31af7Sopenharmony_ci
1591e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSamplerFilterMinmaxProperties.adoc[]
1592e5c31af7Sopenharmony_ci--
1593e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[]
1594e5c31af7Sopenharmony_ci
1595e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1596e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProtectedMemoryProperties',desc='Structure describing protected memory properties that can be supported by an implementation',type='structs']
1597e5c31af7Sopenharmony_ci--
1598e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProtectedMemoryProperties structure is defined as:
1599e5c31af7Sopenharmony_ci
1600e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProtectedMemoryProperties.adoc[]
1601e5c31af7Sopenharmony_ci
1602e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1603e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1604e5c31af7Sopenharmony_ci    structure.
1605e5c31af7Sopenharmony_ci
1606e5c31af7Sopenharmony_ci// Must have preceding whitespace
1607e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1608e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1609e5c31af7Sopenharmony_ci// tag::VK_KHR_protected_memory-properties[]
1610e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-protectedNoFault]] pname:protectedNoFault
1611e5c31af7Sopenharmony_ci    specifies how an implementation behaves when an application attempts to
1612e5c31af7Sopenharmony_ci    write to unprotected memory in a protected queue operation, read from
1613e5c31af7Sopenharmony_ci    protected memory in an unprotected queue operation, or perform a query
1614e5c31af7Sopenharmony_ci    in a protected queue operation.
1615e5c31af7Sopenharmony_ci    If this limit is ename:VK_TRUE, such writes will be discarded or have
1616e5c31af7Sopenharmony_ci    undefined: values written, reads and queries will return undefined:
1617e5c31af7Sopenharmony_ci    values.
1618e5c31af7Sopenharmony_ci    If this limit is ename:VK_FALSE, applications must: not perform these
1619e5c31af7Sopenharmony_ci    operations.
1620e5c31af7Sopenharmony_ci    See <<memory-protected-access-rules>> for more information.
1621e5c31af7Sopenharmony_ci// end::VK_KHR_protected_memory-properties[]
1622e5c31af7Sopenharmony_ci
1623e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProtectedMemoryProperties
1624e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1625e5c31af7Sopenharmony_ci
1626e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProtectedMemoryProperties.adoc[]
1627e5c31af7Sopenharmony_ci--
1628e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1629e5c31af7Sopenharmony_ci
1630e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance3[]
1631e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance3Properties',desc='Structure describing descriptor set properties',type='structs']
1632e5c31af7Sopenharmony_ci--
1633e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance3Properties structure is defined as:
1634e5c31af7Sopenharmony_ci
1635e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance3Properties.adoc[]
1636e5c31af7Sopenharmony_ci
1637e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance3[]
1638e5c31af7Sopenharmony_cior the equivalent
1639e5c31af7Sopenharmony_ci
1640e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance3PropertiesKHR.adoc[]
1641e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance3[]
1642e5c31af7Sopenharmony_ci
1643e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1644e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1645e5c31af7Sopenharmony_ci    structure.
1646e5c31af7Sopenharmony_ci
1647e5c31af7Sopenharmony_ci// Must have preceding whitespace
1648e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
1649e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
1650e5c31af7Sopenharmony_ci// tag::VK_KHR_maintenance3-properties[]
1651e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerSetDescriptors]]
1652e5c31af7Sopenharmony_ci    pname:maxPerSetDescriptors is a maximum number of descriptors (summed
1653e5c31af7Sopenharmony_ci    over all descriptor types) in a single descriptor set that is guaranteed
1654e5c31af7Sopenharmony_ci    to satisfy any implementation-dependent constraints on the size of a
1655e5c31af7Sopenharmony_ci    descriptor set itself.
1656e5c31af7Sopenharmony_ci    Applications can: query whether a descriptor set that goes beyond this
1657e5c31af7Sopenharmony_ci    limit is supported using flink:vkGetDescriptorSetLayoutSupport.
1658e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxMemoryAllocationSize]]
1659e5c31af7Sopenharmony_ci    pname:maxMemoryAllocationSize is the maximum size of a memory allocation
1660e5c31af7Sopenharmony_ci    that can: be created, even if there is more space available in the heap.
1661e5c31af7Sopenharmony_ci// end::VK_KHR_maintenance3-properties[]
1662e5c31af7Sopenharmony_ci
1663e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance3Properties
1664e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1665e5c31af7Sopenharmony_ci
1666e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance3Properties.adoc[]
1667e5c31af7Sopenharmony_ci--
1668e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance3[]
1669e5c31af7Sopenharmony_ci
1670e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[]
1671e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance4Properties',desc='Structure describing various implementation-defined properties introduced with VK_KHR_maintenance4',type='structs',alias='VkPhysicalDeviceMaintenance4PropertiesKHR']
1672e5c31af7Sopenharmony_ci--
1673e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance4Properties structure is defined as:
1674e5c31af7Sopenharmony_ci
1675e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance4Properties.adoc[]
1676e5c31af7Sopenharmony_ci
1677e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[]
1678e5c31af7Sopenharmony_cior the equivalent
1679e5c31af7Sopenharmony_ci
1680e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance4PropertiesKHR.adoc[]
1681e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance4[]
1682e5c31af7Sopenharmony_ci
1683e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1684e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1685e5c31af7Sopenharmony_ci    structure.
1686e5c31af7Sopenharmony_ci
1687e5c31af7Sopenharmony_ci// Must have preceding whitespace
1688e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
1689e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
1690e5c31af7Sopenharmony_ci// tag::VK_KHR_maintenance4-properties[]
1691e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxBufferSize]] pname:maxBufferSize is the
1692e5c31af7Sopenharmony_ci    maximum size sname:VkBuffer that can: be created.
1693e5c31af7Sopenharmony_ci// end::VK_KHR_maintenance4-properties[]
1694e5c31af7Sopenharmony_ci
1695e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance4Properties
1696e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1697e5c31af7Sopenharmony_ci
1698e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance4Properties.adoc[]
1699e5c31af7Sopenharmony_ci--
1700e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_maintenance4[]
1701e5c31af7Sopenharmony_ci
1702e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[]
1703e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance5PropertiesKHR',desc='Structure describing various implementation-defined properties introduced with VK_KHR_maintenance5',type='structs',alias='VkPhysicalDeviceMaintenance5PropertiesKHR']
1704e5c31af7Sopenharmony_ci--
1705e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance5PropertiesKHR structure is defined as:
1706e5c31af7Sopenharmony_ci
1707e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance5PropertiesKHR.adoc[]
1708e5c31af7Sopenharmony_ci
1709e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1710e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1711e5c31af7Sopenharmony_ci    structure.
1712e5c31af7Sopenharmony_ci  * pname:earlyFragmentMultisampleCoverageAfterSampleCounting is a boolean
1713e5c31af7Sopenharmony_ci    value indicating whether the <<fragops-shader,fragment shading>> and
1714e5c31af7Sopenharmony_ci    <<fragops-covg, multisample coverage>> operations are performed after
1715e5c31af7Sopenharmony_ci    <<fragops-samplecount, sample counting>> for <<fragops-shader, fragment
1716e5c31af7Sopenharmony_ci    shaders>> with code:EarlyFragmentTests execution mode.
1717e5c31af7Sopenharmony_ci  * pname:earlyFragmentSampleMaskTestBeforeSampleCounting is a boolean value
1718e5c31af7Sopenharmony_ci    indicating whether the <<fragops-samplemask,sample mask test>> operation
1719e5c31af7Sopenharmony_ci    is performed before <<fragops-samplecount, sample counting>> for
1720e5c31af7Sopenharmony_ci    <<fragops-shader, fragment shaders>> using the code:EarlyFragmentTests
1721e5c31af7Sopenharmony_ci    execution mode.
1722e5c31af7Sopenharmony_ci  * pname:depthStencilSwizzleOneSupport is a boolean indicating that
1723e5c31af7Sopenharmony_ci    depth/stencil texturing operations with ename:VK_COMPONENT_SWIZZLE_ONE
1724e5c31af7Sopenharmony_ci    have defined behavior.
1725e5c31af7Sopenharmony_ci  * pname:polygonModePointSize is a boolean value indicating whether the
1726e5c31af7Sopenharmony_ci    point size of the final rasterization of polygons with
1727e5c31af7Sopenharmony_ci    ename:VK_POLYGON_MODE_POINT is controlled by code:PointSize.
1728e5c31af7Sopenharmony_ci  * pname:nonStrictSinglePixelWideLinesUseParallelogram is a boolean value
1729e5c31af7Sopenharmony_ci    indicating whether non-strict lines with a width of 1.0 are rasterized
1730e5c31af7Sopenharmony_ci    as parallelograms or using Bresenham's algorithm.
1731e5c31af7Sopenharmony_ci  * pname:nonStrictWideLinesUseParallelogram is a boolean value indicating
1732e5c31af7Sopenharmony_ci    whether non-strict lines with a width greater than 1.0 are rasterized as
1733e5c31af7Sopenharmony_ci    parallelograms or using Bresenham's algorithm.
1734e5c31af7Sopenharmony_ci
1735e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance5PropertiesKHR
1736e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1737e5c31af7Sopenharmony_ci
1738e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance5PropertiesKHR.adoc[]
1739e5c31af7Sopenharmony_ci--
1740e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[]
1741e5c31af7Sopenharmony_ci
1742e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance6[]
1743e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance6PropertiesKHR',desc='Structure describing various implementation-defined properties introduced with VK_KHR_maintenance6',type='structs',alias='VkPhysicalDeviceMaintenance6PropertiesKHR']
1744e5c31af7Sopenharmony_ci--
1745e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance6PropertiesKHR structure is defined as:
1746e5c31af7Sopenharmony_ci
1747e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance6PropertiesKHR.adoc[]
1748e5c31af7Sopenharmony_ci
1749e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1750e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1751e5c31af7Sopenharmony_ci    structure.
1752e5c31af7Sopenharmony_ci  * pname:blockTexelViewCompatibleMultipleLayers is a boolean value
1753e5c31af7Sopenharmony_ci     indicating that an implementation supports creating image views with
1754e5c31af7Sopenharmony_ci     ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT where the
1755e5c31af7Sopenharmony_ci     pname:layerCount member of pname:subresourceRange is greater than `1`.
1756e5c31af7Sopenharmony_ci  * pname:maxCombinedImageSamplerDescriptorCount is the maximum number of
1757e5c31af7Sopenharmony_ci    combined image sampler descriptors that the implementation uses to
1758e5c31af7Sopenharmony_ci    access any of the <<formats-requiring-sampler-ycbcr-conversion, formats
1759e5c31af7Sopenharmony_ci    that require a sampler {YCbCr} conversion>> supported by the
1760e5c31af7Sopenharmony_ci    implementation.
1761e5c31af7Sopenharmony_ci  * pname:fragmentShadingRateClampCombinerInputs is a boolean value
1762e5c31af7Sopenharmony_ci    indicating that an implementation clamps the inputs to
1763e5c31af7Sopenharmony_ci    <<primsrast-fragment-shading-rate-combining, combiner operations>>.
1764e5c31af7Sopenharmony_ci
1765e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance6PropertiesKHR
1766e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1767e5c31af7Sopenharmony_ci
1768e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance6PropertiesKHR.adoc[]
1769e5c31af7Sopenharmony_ci--
1770e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance6[]
1771e5c31af7Sopenharmony_ci
1772e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
1773e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMeshShaderPropertiesNV',desc='Structure describing mesh shading properties',type='structs']
1774e5c31af7Sopenharmony_ci--
1775e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMeshShaderPropertiesNV structure is defined as:
1776e5c31af7Sopenharmony_ci
1777e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMeshShaderPropertiesNV.adoc[]
1778e5c31af7Sopenharmony_ci
1779e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1780e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1781e5c31af7Sopenharmony_ci    structure.
1782e5c31af7Sopenharmony_ci  * pname:maxDrawMeshTasksCount is the maximum number of local workgroups
1783e5c31af7Sopenharmony_ci    that can: be launched by a single draw mesh tasks command.
1784e5c31af7Sopenharmony_ci    See <<drawing-mesh-shading>>.
1785e5c31af7Sopenharmony_ci  * pname:maxTaskWorkGroupInvocations is the maximum total number of task
1786e5c31af7Sopenharmony_ci    shader invocations in a single local workgroup.
1787e5c31af7Sopenharmony_ci    The product of the X, Y, and Z sizes, as specified by the code:LocalSize
1788e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[or code:LocalSizeId]
1789e5c31af7Sopenharmony_ci    execution mode in shader modules or by the object decorated by the
1790e5c31af7Sopenharmony_ci    code:WorkgroupSize decoration, must: be less than or equal to this
1791e5c31af7Sopenharmony_ci    limit.
1792e5c31af7Sopenharmony_ci  * pname:maxTaskWorkGroupSize[3] is the maximum size of a local task
1793e5c31af7Sopenharmony_ci    workgroup.
1794e5c31af7Sopenharmony_ci    These three values represent the maximum local workgroup size in the X,
1795e5c31af7Sopenharmony_ci    Y, and Z dimensions, respectively.
1796e5c31af7Sopenharmony_ci    The pname:x, pname:y, and pname:z sizes, as specified by the
1797e5c31af7Sopenharmony_ci    code:LocalSize
1798e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[or code:LocalSizeId]
1799e5c31af7Sopenharmony_ci    execution mode or by the object decorated by the code:WorkgroupSize
1800e5c31af7Sopenharmony_ci    decoration in shader modules, must: be less than or equal to the
1801e5c31af7Sopenharmony_ci    corresponding limit.
1802e5c31af7Sopenharmony_ci  * pname:maxTaskTotalMemorySize is the maximum number of bytes that the
1803e5c31af7Sopenharmony_ci    task shader can use in total for shared and output memory combined.
1804e5c31af7Sopenharmony_ci  * pname:maxTaskOutputCount is the maximum number of output tasks a single
1805e5c31af7Sopenharmony_ci    task shader workgroup can emit.
1806e5c31af7Sopenharmony_ci  * pname:maxMeshWorkGroupInvocations is the maximum total number of mesh
1807e5c31af7Sopenharmony_ci    shader invocations in a single local workgroup.
1808e5c31af7Sopenharmony_ci    The product of the X, Y, and Z sizes, as specified by the code:LocalSize
1809e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[or code:LocalSizeId]
1810e5c31af7Sopenharmony_ci    execution mode in shader modules or by the object decorated by the
1811e5c31af7Sopenharmony_ci    code:WorkgroupSize decoration, must: be less than or equal to this
1812e5c31af7Sopenharmony_ci    limit.
1813e5c31af7Sopenharmony_ci  * pname:maxMeshWorkGroupSize[3] is the maximum size of a local mesh
1814e5c31af7Sopenharmony_ci    workgroup.
1815e5c31af7Sopenharmony_ci    These three values represent the maximum local workgroup size in the X,
1816e5c31af7Sopenharmony_ci    Y, and Z dimensions, respectively.
1817e5c31af7Sopenharmony_ci    The pname:x, pname:y, and pname:z sizes, as specified by the
1818e5c31af7Sopenharmony_ci    code:LocalSize
1819e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[or code:LocalSizeId]
1820e5c31af7Sopenharmony_ci    execution mode or by the object decorated by the code:WorkgroupSize
1821e5c31af7Sopenharmony_ci    decoration in shader modules, must: be less than or equal to the
1822e5c31af7Sopenharmony_ci    corresponding limit.
1823e5c31af7Sopenharmony_ci  * pname:maxMeshTotalMemorySize is the maximum number of bytes that the
1824e5c31af7Sopenharmony_ci    mesh shader can use in total for shared and output memory combined.
1825e5c31af7Sopenharmony_ci  * pname:maxMeshOutputVertices is the maximum number of vertices a mesh
1826e5c31af7Sopenharmony_ci    shader output can store.
1827e5c31af7Sopenharmony_ci  * pname:maxMeshOutputPrimitives is the maximum number of primitives a mesh
1828e5c31af7Sopenharmony_ci    shader output can store.
1829e5c31af7Sopenharmony_ci  * pname:maxMeshMultiviewViewCount is the maximum number of multiview views
1830e5c31af7Sopenharmony_ci    a mesh shader can use.
1831e5c31af7Sopenharmony_ci  * pname:meshOutputPerVertexGranularity is the granularity with which mesh
1832e5c31af7Sopenharmony_ci    vertex outputs are allocated.
1833e5c31af7Sopenharmony_ci    The value can be used to compute the memory size used by the mesh
1834e5c31af7Sopenharmony_ci    shader, which must be less than or equal to
1835e5c31af7Sopenharmony_ci    pname:maxMeshTotalMemorySize.
1836e5c31af7Sopenharmony_ci  * pname:meshOutputPerPrimitiveGranularity is the granularity with which
1837e5c31af7Sopenharmony_ci    mesh outputs qualified as per-primitive are allocated.
1838e5c31af7Sopenharmony_ci    The value can be used to compute the memory size used by the mesh
1839e5c31af7Sopenharmony_ci    shader, which must be less than or equal to
1840e5c31af7Sopenharmony_ci    pname:maxMeshTotalMemorySize.
1841e5c31af7Sopenharmony_ci
1842e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMeshShaderPropertiesNV
1843e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
1844e5c31af7Sopenharmony_ci
1845e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMeshShaderPropertiesNV.adoc[]
1846e5c31af7Sopenharmony_ci--
1847e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
1848e5c31af7Sopenharmony_ci
1849e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
1850e5c31af7Sopenharmony_ci
1851e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMeshShaderPropertiesEXT',desc='Structure describing mesh shading properties',type='structs']
1852e5c31af7Sopenharmony_ci--
1853e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMeshShaderPropertiesEXT structure is defined as:
1854e5c31af7Sopenharmony_ci
1855e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMeshShaderPropertiesEXT.adoc[]
1856e5c31af7Sopenharmony_ci
1857e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceMeshShaderPropertiesEXT structure
1858e5c31af7Sopenharmony_cidescribe the following implementation-dependent limits:
1859e5c31af7Sopenharmony_ci
1860e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
1861e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
1862e5c31af7Sopenharmony_ci    structure.
1863e5c31af7Sopenharmony_ci  * [[limits-maxTaskWorkGroupTotalCount]] pname:maxTaskWorkGroupTotalCount
1864e5c31af7Sopenharmony_ci    is the maximum number of total local workgroups that can: be launched by
1865e5c31af7Sopenharmony_ci    a single mesh tasks drawing command.
1866e5c31af7Sopenharmony_ci    See <<drawing-mesh-shading>>.
1867e5c31af7Sopenharmony_ci  * [[limits-maxTaskWorkGroupCount]] pname:maxTaskWorkGroupCount[3] is the
1868e5c31af7Sopenharmony_ci    maximum number of local workgroups that can: be launched by a single
1869e5c31af7Sopenharmony_ci    mesh tasks drawing command.
1870e5c31af7Sopenharmony_ci    These three values represent the maximum number of local workgroups for
1871e5c31af7Sopenharmony_ci    the X, Y, and Z dimensions, respectively.
1872e5c31af7Sopenharmony_ci    The workgroup count parameters to the drawing commands must: be less
1873e5c31af7Sopenharmony_ci    than or equal to the corresponding limit.
1874e5c31af7Sopenharmony_ci    The product of these dimensions must: be less than or equal to
1875e5c31af7Sopenharmony_ci    pname:maxTaskWorkGroupTotalCount.
1876e5c31af7Sopenharmony_ci  * [[limits-maxTaskWorkGroupInvocations]] pname:maxTaskWorkGroupInvocations
1877e5c31af7Sopenharmony_ci    is the maximum total number of task shader invocations in a single local
1878e5c31af7Sopenharmony_ci    workgroup.
1879e5c31af7Sopenharmony_ci    The product of the X, Y, and Z sizes, as specified by the code:LocalSize
1880e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[or code:LocalSizeId]
1881e5c31af7Sopenharmony_ci    execution mode in shader modules or by the object decorated by the
1882e5c31af7Sopenharmony_ci    code:WorkgroupSize decoration, must: be less than or equal to this
1883e5c31af7Sopenharmony_ci    limit.
1884e5c31af7Sopenharmony_ci  * [[limits-maxTaskWorkGroupSize]] pname:maxTaskWorkGroupSize[3] is the
1885e5c31af7Sopenharmony_ci    maximum size of a local task workgroup, per dimension.
1886e5c31af7Sopenharmony_ci    These three values represent the maximum local workgroup size in the X,
1887e5c31af7Sopenharmony_ci    Y, and Z dimensions, respectively.
1888e5c31af7Sopenharmony_ci    The pname:x, pname:y, and pname:z sizes, as specified by the
1889e5c31af7Sopenharmony_ci    code:LocalSize
1890e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[or code:LocalSizeId]
1891e5c31af7Sopenharmony_ci    execution mode or by the object decorated by the code:WorkgroupSize
1892e5c31af7Sopenharmony_ci    decoration in shader modules, must: be less than or equal to the
1893e5c31af7Sopenharmony_ci    corresponding limit.
1894e5c31af7Sopenharmony_ci  * [[limits-maxTaskPayloadSize]] pname:maxTaskPayloadSize is the maximum
1895e5c31af7Sopenharmony_ci    total storage size, in bytes, available for variables declared with the
1896e5c31af7Sopenharmony_ci    code:TaskPayloadWorkgroupEXT storage class in shader modules in the task
1897e5c31af7Sopenharmony_ci    shader stage.
1898e5c31af7Sopenharmony_ci  * [[limits-maxTaskSharedMemorySize]] pname:maxTaskSharedMemorySize is the
1899e5c31af7Sopenharmony_ci    maximum total storage size, in bytes, available for variables declared
1900e5c31af7Sopenharmony_ci    with the code:Workgroup storage class in shader modules in the task
1901e5c31af7Sopenharmony_ci    shader stage.
1902e5c31af7Sopenharmony_ci  * [[limits-maxTaskPayloadAndSharedMemorySize]]
1903e5c31af7Sopenharmony_ci    pname:maxTaskPayloadAndSharedMemorySize is the maximum total storage
1904e5c31af7Sopenharmony_ci    size, in bytes, available for variables that are declared with the
1905e5c31af7Sopenharmony_ci    code:TaskPayloadWorkgroupEXT or code:Workgroup storage class, in shader
1906e5c31af7Sopenharmony_ci    modules in the task shader stage.
1907e5c31af7Sopenharmony_ci  * [[limits-maxMeshWorkGroupTotalCount]] pname:maxMeshWorkGroupTotalCount
1908e5c31af7Sopenharmony_ci    is the maximum number of local output tasks a single task shader
1909e5c31af7Sopenharmony_ci    workgroup can emit.
1910e5c31af7Sopenharmony_ci  * [[limits-maxMeshWorkGroupCount]] pname:maxMeshWorkGroupCount[3] is the
1911e5c31af7Sopenharmony_ci    maximum number of local output tasks a single task shader workgroup can
1912e5c31af7Sopenharmony_ci    emit, per dimension.
1913e5c31af7Sopenharmony_ci    These three values represent the maximum number of local output tasks
1914e5c31af7Sopenharmony_ci    for the X, Y, and Z dimensions, respectively.
1915e5c31af7Sopenharmony_ci    The workgroup count parameters to the code:OpEmitMeshTasksEXT must: be
1916e5c31af7Sopenharmony_ci    less than or equal to the corresponding limit.
1917e5c31af7Sopenharmony_ci    The product of these dimensions must: be less than or equal to
1918e5c31af7Sopenharmony_ci    pname:maxMeshWorkGroupTotalCount.
1919e5c31af7Sopenharmony_ci  * [[limits-maxMeshWorkGroupInvocations]] pname:maxMeshWorkGroupInvocations
1920e5c31af7Sopenharmony_ci    is the maximum total number of mesh shader invocations in a single local
1921e5c31af7Sopenharmony_ci    workgroup.
1922e5c31af7Sopenharmony_ci    The product of the X, Y, and Z sizes, as specified by the code:LocalSize
1923e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[or code:LocalSizeId]
1924e5c31af7Sopenharmony_ci    execution mode in shader modules or by the object decorated by the
1925e5c31af7Sopenharmony_ci    code:WorkgroupSize decoration, must: be less than or equal to this
1926e5c31af7Sopenharmony_ci    limit.
1927e5c31af7Sopenharmony_ci  * [[limits-maxMeshWorkGroupSize]] pname:maxMeshWorkGroupSize[3] is the
1928e5c31af7Sopenharmony_ci    maximum size of a local mesh workgroup, per dimension.
1929e5c31af7Sopenharmony_ci    These three values represent the maximum local workgroup size in the X,
1930e5c31af7Sopenharmony_ci    Y, and Z dimensions, respectively.
1931e5c31af7Sopenharmony_ci    The pname:x, pname:y, and pname:z sizes, as specified by the
1932e5c31af7Sopenharmony_ci    code:LocalSize
1933e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[or code:LocalSizeId]
1934e5c31af7Sopenharmony_ci    execution mode or by the object decorated by the code:WorkgroupSize
1935e5c31af7Sopenharmony_ci    decoration in shader modules, must: be less than or equal to the
1936e5c31af7Sopenharmony_ci    corresponding limit.
1937e5c31af7Sopenharmony_ci  * [[limits-maxMeshSharedMemorySize]] pname:maxMeshSharedMemorySize is the
1938e5c31af7Sopenharmony_ci    maximum total storage size, in bytes, available for variables declared
1939e5c31af7Sopenharmony_ci    with the code:Workgroup storage class in shader modules in the mesh
1940e5c31af7Sopenharmony_ci    shader stage.
1941e5c31af7Sopenharmony_ci  * [[limits-maxMeshPayloadAndSharedMemorySize]]
1942e5c31af7Sopenharmony_ci    pname:maxMeshPayloadAndSharedMemorySize is the maximum total storage
1943e5c31af7Sopenharmony_ci    size, in bytes, available for variables that are declared with the
1944e5c31af7Sopenharmony_ci    code:TaskPayloadWorkgroupEXT or code:Workgroup storage class in shader
1945e5c31af7Sopenharmony_ci    modules in the mesh shader stage.
1946e5c31af7Sopenharmony_ci  * [[limits-maxMeshOutputMemorySize]] pname:maxMeshOutputMemorySize is the
1947e5c31af7Sopenharmony_ci    maximum total storage size, in bytes, available for output variables in
1948e5c31af7Sopenharmony_ci    shader modules in the mesh shader stage, according to the formula in
1949e5c31af7Sopenharmony_ci    <<mesh-output, Mesh Shader Output>>.
1950e5c31af7Sopenharmony_ci  * [[limits-maxMeshPayloadAndOutputMemorySize]]
1951e5c31af7Sopenharmony_ci    pname:maxMeshPayloadAndOutputMemorySize is the maximum total storage
1952e5c31af7Sopenharmony_ci    size, in bytes, available for variables that are declared with the
1953e5c31af7Sopenharmony_ci    code:TaskPayloadWorkgroupEXT storage class, or output variables in
1954e5c31af7Sopenharmony_ci    shader modules in the mesh shader stage, according to the formula in
1955e5c31af7Sopenharmony_ci    <<mesh-output, Mesh Shader Output>>.
1956e5c31af7Sopenharmony_ci  * [[limits-maxMeshOutputComponents]] pname:maxMeshOutputComponents is the
1957e5c31af7Sopenharmony_ci    maximum number of components of output variables which can: be output
1958e5c31af7Sopenharmony_ci    from the mesh shader stage.
1959e5c31af7Sopenharmony_ci  * [[limits-maxMeshOutputVertices]] pname:maxMeshOutputVertices is the
1960e5c31af7Sopenharmony_ci    maximum number of vertices which can: be emitted by a single mesh shader
1961e5c31af7Sopenharmony_ci    workgroup.
1962e5c31af7Sopenharmony_ci  * [[limits-maxMeshOutputPrimitives]] pname:maxMeshOutputPrimitives is the
1963e5c31af7Sopenharmony_ci    maximum number of primitives which can: be emitted by a single mesh
1964e5c31af7Sopenharmony_ci    shader workgroup.
1965e5c31af7Sopenharmony_ci  * [[limits-maxMeshOutputLayers]] pname:maxMeshOutputLayers is one greater
1966e5c31af7Sopenharmony_ci    than the maximum layer index that can: be output from the mesh shader
1967e5c31af7Sopenharmony_ci    stage.
1968e5c31af7Sopenharmony_ci  * [[limits-maxMeshMultiviewViewCount]] pname:maxMeshMultiviewViewCount is
1969e5c31af7Sopenharmony_ci    one greater than the maximum view index that can: be used by any mesh
1970e5c31af7Sopenharmony_ci    shader.
1971e5c31af7Sopenharmony_ci  * [[limits-meshOutputPerVertexGranularity]]
1972e5c31af7Sopenharmony_ci    pname:meshOutputPerVertexGranularity is the granularity of vertex
1973e5c31af7Sopenharmony_ci    allocation.
1974e5c31af7Sopenharmony_ci    The number of output vertices allocated for the mesh shader stage is
1975e5c31af7Sopenharmony_ci    padded to a multiple of this number.
1976e5c31af7Sopenharmony_ci    The value can be used to calculate the required storage size for output
1977e5c31af7Sopenharmony_ci    variables in shader modules in the mesh shader stage, which must: be
1978e5c31af7Sopenharmony_ci    less than or equal to pname:maxMeshOutputMemorySize.
1979e5c31af7Sopenharmony_ci  * [[limits-meshOutputPerPrimitiveGranularity]]
1980e5c31af7Sopenharmony_ci    pname:meshOutputPerPrimitiveGranularity is the granularity of primitive
1981e5c31af7Sopenharmony_ci    allocation.
1982e5c31af7Sopenharmony_ci    The number of output primitives allocated for the mesh shader stage is
1983e5c31af7Sopenharmony_ci    padded to a multiple of this number.
1984e5c31af7Sopenharmony_ci    The value can be used to calculate the required storage size for output
1985e5c31af7Sopenharmony_ci    variables in shader modules in the mesh shader stage, which must: be
1986e5c31af7Sopenharmony_ci    less than or equal to pname:maxMeshOutputMemorySize.
1987e5c31af7Sopenharmony_ci  * [[limits-maxPreferredTaskWorkGroupInvocations]]
1988e5c31af7Sopenharmony_ci    pname:maxPreferredTaskWorkGroupInvocations is the maximum number of task
1989e5c31af7Sopenharmony_ci    shader invocations in a single workgroup that is preferred by the
1990e5c31af7Sopenharmony_ci    implementation for optimal performance.
1991e5c31af7Sopenharmony_ci    The value is guaranteed to be a multiple of a supported subgroup size
1992e5c31af7Sopenharmony_ci    for the task shader stage.
1993e5c31af7Sopenharmony_ci  * [[limits-maxPreferredMeshWorkGroupInvocations]]
1994e5c31af7Sopenharmony_ci    pname:maxPreferredMeshWorkGroupInvocations is the maximum number of mesh
1995e5c31af7Sopenharmony_ci    shader invocations in a single workgroup that is preferred by the
1996e5c31af7Sopenharmony_ci    implementation for optimal performance.
1997e5c31af7Sopenharmony_ci    The value is guaranteed to be a multiple of a supported subgroup size
1998e5c31af7Sopenharmony_ci    for the mesh shader stage.
1999e5c31af7Sopenharmony_ci  * [[limits-prefersLocalInvocationVertexOutput]]
2000e5c31af7Sopenharmony_ci    pname:prefersLocalInvocationVertexOutput specifies whether writes to the
2001e5c31af7Sopenharmony_ci    vertex output array in a mesh shader yield best performance when the
2002e5c31af7Sopenharmony_ci    array index matches code:LocalInvocationIndex.
2003e5c31af7Sopenharmony_ci  * [[limits-prefersLocalInvocationPrimitiveOutput]]
2004e5c31af7Sopenharmony_ci    pname:prefersLocalInvocationPrimitiveOutput specifies whether writes to
2005e5c31af7Sopenharmony_ci    the primitive output array in a mesh shader yield best performance when
2006e5c31af7Sopenharmony_ci    the array index matches code:LocalInvocationIndex.
2007e5c31af7Sopenharmony_ci  * [[limits-prefersCompactVertexOutput]] pname:prefersCompactVertexOutput
2008e5c31af7Sopenharmony_ci    specifies whether output vertices should be compacted after custom
2009e5c31af7Sopenharmony_ci    culling in the mesh shader for best performance, otherwise keeping the
2010e5c31af7Sopenharmony_ci    vertices at their original location may be better.
2011e5c31af7Sopenharmony_ci  * [[limits-prefersCompactPrimitiveOutput]]
2012e5c31af7Sopenharmony_ci    pname:prefersCompactPrimitiveOutput specifies whether output primitives
2013e5c31af7Sopenharmony_ci    should be compacted after custom culling in the mesh shader for best
2014e5c31af7Sopenharmony_ci    performance, otherwise the use of code:CullPrimitiveEXT may be better.
2015e5c31af7Sopenharmony_ci
2016e5c31af7Sopenharmony_ciIf the sname:VkPhysicalDeviceMeshShaderPropertiesEXT structure is included
2017e5c31af7Sopenharmony_ciin the pname:pNext chain of slink:VkPhysicalDeviceProperties2, it is filled
2018e5c31af7Sopenharmony_ciwith the implementation-dependent limits.
2019e5c31af7Sopenharmony_ci
2020e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMeshShaderPropertiesEXT.adoc[]
2021e5c31af7Sopenharmony_ci--
2022e5c31af7Sopenharmony_ci
2023e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
2024e5c31af7Sopenharmony_ci
2025e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2026e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorIndexingProperties',desc='Structure describing descriptor indexing properties that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceDescriptorIndexingPropertiesEXT']
2027e5c31af7Sopenharmony_ci--
2028e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorIndexingProperties structure is defined
2029e5c31af7Sopenharmony_cias:
2030e5c31af7Sopenharmony_ci
2031e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingProperties.adoc[]
2032e5c31af7Sopenharmony_ci
2033e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[]
2034e5c31af7Sopenharmony_cior the equivalent
2035e5c31af7Sopenharmony_ci
2036e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingPropertiesEXT.adoc[]
2037e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[]
2038e5c31af7Sopenharmony_ci
2039e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2040e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2041e5c31af7Sopenharmony_ci    structure.
2042e5c31af7Sopenharmony_ci
2043e5c31af7Sopenharmony_ci// Must have preceding whitespace
2044e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2045e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2046e5c31af7Sopenharmony_ci// tag::VK_EXT_descriptor_indexing-properties[]
2047e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxUpdateAfterBindDescriptorsInAllPools]]
2048e5c31af7Sopenharmony_ci    pname:maxUpdateAfterBindDescriptorsInAllPools is the maximum number of
2049e5c31af7Sopenharmony_ci    descriptors (summed over all descriptor types) that can: be created
2050e5c31af7Sopenharmony_ci    across all pools that are created with the
2051e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT bit set.
2052e5c31af7Sopenharmony_ci    Pool creation may: fail when this limit is exceeded, or when the space
2053e5c31af7Sopenharmony_ci    this limit represents is unable to satisfy a pool creation due to
2054e5c31af7Sopenharmony_ci    fragmentation.
2055e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderUniformBufferArrayNonUniformIndexingNative]]
2056e5c31af7Sopenharmony_ci    pname:shaderUniformBufferArrayNonUniformIndexingNative is a boolean
2057e5c31af7Sopenharmony_ci    value indicating whether uniform buffer descriptors natively support
2058e5c31af7Sopenharmony_ci    nonuniform indexing.
2059e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then a single dynamic instance of an
2060e5c31af7Sopenharmony_ci    instruction that nonuniformly indexes an array of uniform buffers may:
2061e5c31af7Sopenharmony_ci    execute multiple times in order to access all the descriptors.
2062e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderSampledImageArrayNonUniformIndexingNative]]
2063e5c31af7Sopenharmony_ci    pname:shaderSampledImageArrayNonUniformIndexingNative is a boolean value
2064e5c31af7Sopenharmony_ci    indicating whether sampler and image descriptors natively support
2065e5c31af7Sopenharmony_ci    nonuniform indexing.
2066e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then a single dynamic instance of an
2067e5c31af7Sopenharmony_ci    instruction that nonuniformly indexes an array of samplers or images
2068e5c31af7Sopenharmony_ci    may: execute multiple times in order to access all the descriptors.
2069e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderStorageBufferArrayNonUniformIndexingNative]]
2070e5c31af7Sopenharmony_ci    pname:shaderStorageBufferArrayNonUniformIndexingNative is a boolean
2071e5c31af7Sopenharmony_ci    value indicating whether storage buffer descriptors natively support
2072e5c31af7Sopenharmony_ci    nonuniform indexing.
2073e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then a single dynamic instance of an
2074e5c31af7Sopenharmony_ci    instruction that nonuniformly indexes an array of storage buffers may:
2075e5c31af7Sopenharmony_ci    execute multiple times in order to access all the descriptors.
2076e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderStorageImageArrayNonUniformIndexingNative]]
2077e5c31af7Sopenharmony_ci    pname:shaderStorageImageArrayNonUniformIndexingNative is a boolean value
2078e5c31af7Sopenharmony_ci    indicating whether storage image descriptors natively support nonuniform
2079e5c31af7Sopenharmony_ci    indexing.
2080e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then a single dynamic instance of an
2081e5c31af7Sopenharmony_ci    instruction that nonuniformly indexes an array of storage images may:
2082e5c31af7Sopenharmony_ci    execute multiple times in order to access all the descriptors.
2083e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-shaderInputAttachmentArrayNonUniformIndexingNative]]
2084e5c31af7Sopenharmony_ci    pname:shaderInputAttachmentArrayNonUniformIndexingNative is a boolean
2085e5c31af7Sopenharmony_ci    value indicating whether input attachment descriptors natively support
2086e5c31af7Sopenharmony_ci    nonuniform indexing.
2087e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then a single dynamic instance of an
2088e5c31af7Sopenharmony_ci    instruction that nonuniformly indexes an array of input attachments may:
2089e5c31af7Sopenharmony_ci    execute multiple times in order to access all the descriptors.
2090e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-robustBufferAccessUpdateAfterBind]]
2091e5c31af7Sopenharmony_ci    pname:robustBufferAccessUpdateAfterBind is a boolean value indicating
2092e5c31af7Sopenharmony_ci    whether <<features-robustBufferAccess, pname:robustBufferAccess>> can:
2093e5c31af7Sopenharmony_ci    be enabled on a device simultaneously with
2094e5c31af7Sopenharmony_ci    pname:descriptorBindingUniformBufferUpdateAfterBind,
2095e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageBufferUpdateAfterBind,
2096e5c31af7Sopenharmony_ci    pname:descriptorBindingUniformTexelBufferUpdateAfterBind, and/or
2097e5c31af7Sopenharmony_ci    pname:descriptorBindingStorageTexelBufferUpdateAfterBind.
2098e5c31af7Sopenharmony_ci    If this is ename:VK_FALSE, then either pname:robustBufferAccess must: be
2099e5c31af7Sopenharmony_ci    disabled or all of these update-after-bind features must: be disabled.
2100e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-quadDivergentImplicitLod]]
2101e5c31af7Sopenharmony_ci    pname:quadDivergentImplicitLod is a boolean value indicating whether
2102e5c31af7Sopenharmony_ci    implicit LOD calculations for image operations have well-defined results
2103e5c31af7Sopenharmony_ci    when the image and/or sampler objects used for the instruction are not
2104e5c31af7Sopenharmony_ci    uniform within a quad.
2105e5c31af7Sopenharmony_ci    See <<textures-derivative-image-operations,Derivative Image
2106e5c31af7Sopenharmony_ci    Operations>>.
2107e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageDescriptorUpdateAfterBindSamplers]]
2108e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUpdateAfterBindSamplers is similar to
2109e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorSamplers but counts descriptors from
2110e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2111e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2112e5c31af7Sopenharmony_ci    set.
2113e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageDescriptorUpdateAfterBindUniformBuffers]]
2114e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUpdateAfterBindUniformBuffers is similar to
2115e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUniformBuffers but counts descriptors from
2116e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2117e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2118e5c31af7Sopenharmony_ci    set.
2119e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageDescriptorUpdateAfterBindStorageBuffers]]
2120e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUpdateAfterBindStorageBuffers is similar to
2121e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorStorageBuffers but counts descriptors from
2122e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2123e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2124e5c31af7Sopenharmony_ci    set.
2125e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageDescriptorUpdateAfterBindSampledImages]]
2126e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUpdateAfterBindSampledImages is similar to
2127e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorSampledImages but counts descriptors from
2128e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2129e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2130e5c31af7Sopenharmony_ci    set.
2131e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageDescriptorUpdateAfterBindStorageImages]]
2132e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUpdateAfterBindStorageImages is similar to
2133e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorStorageImages but counts descriptors from
2134e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2135e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2136e5c31af7Sopenharmony_ci    set.
2137e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageDescriptorUpdateAfterBindInputAttachments]]
2138e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUpdateAfterBindInputAttachments is similar to
2139e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorInputAttachments but counts descriptors from
2140e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2141e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2142e5c31af7Sopenharmony_ci    set.
2143e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageUpdateAfterBindResources]]
2144e5c31af7Sopenharmony_ci    pname:maxPerStageUpdateAfterBindResources is similar to
2145e5c31af7Sopenharmony_ci    pname:maxPerStageResources but counts descriptors from descriptor sets
2146e5c31af7Sopenharmony_ci    created with or without the
2147e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2148e5c31af7Sopenharmony_ci    set.
2149e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindSamplers]]
2150e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindSamplers is similar to
2151e5c31af7Sopenharmony_ci    pname:maxDescriptorSetSamplers but counts descriptors from descriptor
2152e5c31af7Sopenharmony_ci    sets created with or without the
2153e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2154e5c31af7Sopenharmony_ci    set.
2155e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindUniformBuffers]]
2156e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindUniformBuffers is similar to
2157e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUniformBuffers but counts descriptors from
2158e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2159e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2160e5c31af7Sopenharmony_ci    set.
2161e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindUniformBuffersDynamic]]
2162e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindUniformBuffersDynamic is similar to
2163e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUniformBuffersDynamic but counts descriptors from
2164e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2165e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2166e5c31af7Sopenharmony_ci    set.
2167e5c31af7Sopenharmony_ci    While an application can: allocate dynamic uniform buffer descriptors
2168e5c31af7Sopenharmony_ci    from a pool created with the
2169e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2170e5c31af7Sopenharmony_ci    bindings for these descriptors must: not be present in any descriptor
2171e5c31af7Sopenharmony_ci    set layout that includes bindings created with
2172e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT.
2173e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindStorageBuffers]]
2174e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindStorageBuffers is similar to
2175e5c31af7Sopenharmony_ci    pname:maxDescriptorSetStorageBuffers but counts descriptors from
2176e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2177e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2178e5c31af7Sopenharmony_ci    set.
2179e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindStorageBuffersDynamic]]
2180e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindStorageBuffersDynamic is similar to
2181e5c31af7Sopenharmony_ci    pname:maxDescriptorSetStorageBuffersDynamic but counts descriptors from
2182e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2183e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2184e5c31af7Sopenharmony_ci    set.
2185e5c31af7Sopenharmony_ci    While an application can: allocate dynamic storage buffer descriptors
2186e5c31af7Sopenharmony_ci    from a pool created with the
2187e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2188e5c31af7Sopenharmony_ci    bindings for these descriptors must: not be present in any descriptor
2189e5c31af7Sopenharmony_ci    set layout that includes bindings created with
2190e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT.
2191e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindSampledImages]]
2192e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindSampledImages is similar to
2193e5c31af7Sopenharmony_ci    pname:maxDescriptorSetSampledImages but counts descriptors from
2194e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2195e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2196e5c31af7Sopenharmony_ci    set.
2197e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindStorageImages]]
2198e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindStorageImages is similar to
2199e5c31af7Sopenharmony_ci    pname:maxDescriptorSetStorageImages but counts descriptors from
2200e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2201e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2202e5c31af7Sopenharmony_ci    set.
2203e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindInputAttachments]]
2204e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindInputAttachments is similar to
2205e5c31af7Sopenharmony_ci    pname:maxDescriptorSetInputAttachments but counts descriptors from
2206e5c31af7Sopenharmony_ci    descriptor sets created with or without the
2207e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2208e5c31af7Sopenharmony_ci    set.
2209e5c31af7Sopenharmony_ci// end::VK_EXT_descriptor_indexing-properties[]
2210e5c31af7Sopenharmony_ci
2211e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorIndexingProperties
2212e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2213e5c31af7Sopenharmony_ci
2214e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorIndexingProperties.adoc[]
2215e5c31af7Sopenharmony_ci--
2216e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2217e5c31af7Sopenharmony_ci
2218e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
2219e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInlineUniformBlockProperties',desc='Structure describing inline uniform block properties that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceInlineUniformBlockPropertiesEXT']
2220e5c31af7Sopenharmony_ci--
2221e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInlineUniformBlockProperties structure is defined
2222e5c31af7Sopenharmony_cias:
2223e5c31af7Sopenharmony_ci
2224e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInlineUniformBlockProperties.adoc[]
2225e5c31af7Sopenharmony_ci
2226e5c31af7Sopenharmony_ciifdef::VK_EXT_inline_uniform_block[]
2227e5c31af7Sopenharmony_cior the equivalent
2228e5c31af7Sopenharmony_ci
2229e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInlineUniformBlockPropertiesEXT.adoc[]
2230e5c31af7Sopenharmony_ciendif::VK_EXT_inline_uniform_block[]
2231e5c31af7Sopenharmony_ci
2232e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2233e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2234e5c31af7Sopenharmony_ci    structure.
2235e5c31af7Sopenharmony_ci
2236e5c31af7Sopenharmony_ci// Must have preceding whitespace
2237e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
2238e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
2239e5c31af7Sopenharmony_ci// tag::VK_EXT_inline_uniform_block-properties[]
2240e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxInlineUniformBlockSize]]
2241e5c31af7Sopenharmony_ci    pname:maxInlineUniformBlockSize is the maximum size in bytes of an
2242e5c31af7Sopenharmony_ci    <<descriptorsets-inlineuniformblock, inline uniform block>> binding.
2243e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageDescriptorInlineUniformBlocks]]
2244e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorInlineUniformBlocks is the maximum number of
2245e5c31af7Sopenharmony_ci    inline uniform block bindings that can: be accessible to a single shader
2246e5c31af7Sopenharmony_ci    stage in a pipeline layout.
2247e5c31af7Sopenharmony_ci    Descriptor bindings with a descriptor type of
2248e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK count against this limit.
2249e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2250e5c31af7Sopenharmony_ci    Only descriptor bindings in descriptor set layouts created without the
2251e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
2252e5c31af7Sopenharmony_ci    count against this limit.
2253e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2254e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks]]
2255e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
2256e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2257e5c31af7Sopenharmony_ci    equals pname:maxPerStageDescriptorInlineUniformBlocks and is reserved
2258e5c31af7Sopenharmony_ci    for future use.
2259e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2260e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2261e5c31af7Sopenharmony_ci    is similar to pname:maxPerStageDescriptorInlineUniformBlocks but counts
2262e5c31af7Sopenharmony_ci    descriptor bindings from descriptor sets created with or without the
2263e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2264e5c31af7Sopenharmony_ci    set.
2265e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2266e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetInlineUniformBlocks]]
2267e5c31af7Sopenharmony_ci    pname:maxDescriptorSetInlineUniformBlocks is the maximum number of
2268e5c31af7Sopenharmony_ci    inline uniform block bindings that can: be included in descriptor
2269e5c31af7Sopenharmony_ci    bindings in a pipeline layout across all pipeline shader stages and
2270e5c31af7Sopenharmony_ci    descriptor set numbers.
2271e5c31af7Sopenharmony_ci    Descriptor bindings with a descriptor type of
2272e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK count against this limit.
2273e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2274e5c31af7Sopenharmony_ci    Only descriptor bindings in descriptor set layouts created without the
2275e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
2276e5c31af7Sopenharmony_ci    count against this limit.
2277e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2278e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxDescriptorSetUpdateAfterBindInlineUniformBlocks]]
2279e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindInlineUniformBlocks
2280e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2281e5c31af7Sopenharmony_ci    equals pname:maxDescriptorSetInlineUniformBlocks and is reserved for
2282e5c31af7Sopenharmony_ci    future use.
2283e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2284e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2285e5c31af7Sopenharmony_ci    is similar to pname:maxDescriptorSetInlineUniformBlocks but counts
2286e5c31af7Sopenharmony_ci    descriptor bindings from descriptor sets created with or without the
2287e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2288e5c31af7Sopenharmony_ci    set.
2289e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
2290e5c31af7Sopenharmony_ci// end::VK_EXT_inline_uniform_block-properties[]
2291e5c31af7Sopenharmony_ci
2292e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInlineUniformBlockProperties
2293e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2294e5c31af7Sopenharmony_ci
2295e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInlineUniformBlockProperties.adoc[]
2296e5c31af7Sopenharmony_ci--
2297e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
2298e5c31af7Sopenharmony_ci
2299e5c31af7Sopenharmony_ciifdef::VK_EXT_conservative_rasterization[]
2300e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceConservativeRasterizationPropertiesEXT',desc='Structure describing conservative raster properties that can be supported by an implementation',type='structs']
2301e5c31af7Sopenharmony_ci--
2302e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceConservativeRasterizationPropertiesEXT structure
2303e5c31af7Sopenharmony_ciis defined as:
2304e5c31af7Sopenharmony_ci
2305e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.adoc[]
2306e5c31af7Sopenharmony_ci
2307e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2308e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2309e5c31af7Sopenharmony_ci    structure.
2310e5c31af7Sopenharmony_ci  * [[limits-primitiveOverestimationSize]] pname:primitiveOverestimationSize
2311e5c31af7Sopenharmony_ci    is the size in pixels the generating primitive is increased at each of
2312e5c31af7Sopenharmony_ci    its edges during conservative rasterization overestimation mode.
2313e5c31af7Sopenharmony_ci    Even with a size of 0.0, conservative rasterization overestimation rules
2314e5c31af7Sopenharmony_ci    still apply and if any part of the pixel rectangle is covered by the
2315e5c31af7Sopenharmony_ci    generating primitive, fragments are generated for the entire pixel.
2316e5c31af7Sopenharmony_ci    However implementations may: make the pixel coverage area even more
2317e5c31af7Sopenharmony_ci    conservative by increasing the size of the generating primitive.
2318e5c31af7Sopenharmony_ci  * [[limits-maxExtraPrimitiveOverestimationSize]]
2319e5c31af7Sopenharmony_ci    pname:maxExtraPrimitiveOverestimationSize is the maximum size in pixels
2320e5c31af7Sopenharmony_ci    of extra overestimation the implementation supports in the pipeline
2321e5c31af7Sopenharmony_ci    state.
2322e5c31af7Sopenharmony_ci    A value of 0.0 means the implementation does not support any additional
2323e5c31af7Sopenharmony_ci    overestimation of the generating primitive during conservative
2324e5c31af7Sopenharmony_ci    rasterization.
2325e5c31af7Sopenharmony_ci    A value above 0.0 allows the application to further increase the size of
2326e5c31af7Sopenharmony_ci    the generating primitive during conservative rasterization
2327e5c31af7Sopenharmony_ci    overestimation.
2328e5c31af7Sopenharmony_ci  * [[limits-extraPrimitiveOverestimationSizeGranularity]]
2329e5c31af7Sopenharmony_ci    pname:extraPrimitiveOverestimationSizeGranularity is the granularity of
2330e5c31af7Sopenharmony_ci    extra overestimation that can be specified in the pipeline state between
2331e5c31af7Sopenharmony_ci    0.0 and pname:maxExtraPrimitiveOverestimationSize inclusive.
2332e5c31af7Sopenharmony_ci    A value of 0.0 means the implementation can use the smallest
2333e5c31af7Sopenharmony_ci    representable non-zero value in the screen space pixel fixed-point grid.
2334e5c31af7Sopenharmony_ci  * [[limits-primitiveUnderestimation]] pname:primitiveUnderestimation is
2335e5c31af7Sopenharmony_ci    ename:VK_TRUE if the implementation supports the
2336e5c31af7Sopenharmony_ci    ename:VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT conservative
2337e5c31af7Sopenharmony_ci    rasterization mode in addition to
2338e5c31af7Sopenharmony_ci    ename:VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT.
2339e5c31af7Sopenharmony_ci    Otherwise the implementation only supports
2340e5c31af7Sopenharmony_ci    ename:VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT.
2341e5c31af7Sopenharmony_ci  * [[limits-conservativePointAndLineRasterization]]
2342e5c31af7Sopenharmony_ci    pname:conservativePointAndLineRasterization is ename:VK_TRUE if the
2343e5c31af7Sopenharmony_ci    implementation supports conservative rasterization of point and line
2344e5c31af7Sopenharmony_ci    primitives as well as triangle primitives.
2345e5c31af7Sopenharmony_ci    Otherwise the implementation only supports triangle primitives.
2346e5c31af7Sopenharmony_ci  * [[limits-degenerateTrianglesRasterized]]
2347e5c31af7Sopenharmony_ci    pname:degenerateTrianglesRasterized is ename:VK_FALSE if the
2348e5c31af7Sopenharmony_ci    implementation culls primitives generated from triangles that become
2349e5c31af7Sopenharmony_ci    zero area after they are quantized to the fixed-point rasterization
2350e5c31af7Sopenharmony_ci    pixel grid.
2351e5c31af7Sopenharmony_ci    pname:degenerateTrianglesRasterized is ename:VK_TRUE if these primitives
2352e5c31af7Sopenharmony_ci    are not culled and the provoking vertex attributes and depth value are
2353e5c31af7Sopenharmony_ci    used for the fragments.
2354e5c31af7Sopenharmony_ci    The primitive area calculation is done on the primitive generated from
2355e5c31af7Sopenharmony_ci    the clipped triangle if applicable.
2356e5c31af7Sopenharmony_ci    Zero area primitives are backfacing and the application can: enable
2357e5c31af7Sopenharmony_ci    backface culling if desired.
2358e5c31af7Sopenharmony_ci  * [[limits-degenerateLinesRasterized]] pname:degenerateLinesRasterized is
2359e5c31af7Sopenharmony_ci    ename:VK_FALSE if the implementation culls lines that become zero length
2360e5c31af7Sopenharmony_ci    after they are quantized to the fixed-point rasterization pixel grid.
2361e5c31af7Sopenharmony_ci    pname:degenerateLinesRasterized is ename:VK_TRUE if zero length lines
2362e5c31af7Sopenharmony_ci    are not culled and the provoking vertex attributes and depth value are
2363e5c31af7Sopenharmony_ci    used for the fragments.
2364e5c31af7Sopenharmony_ci  * [[limits-fullyCoveredFragmentShaderInputVariable]]
2365e5c31af7Sopenharmony_ci    pname:fullyCoveredFragmentShaderInputVariable is ename:VK_TRUE if the
2366e5c31af7Sopenharmony_ci    implementation supports the SPIR-V builtin fragment shader input
2367e5c31af7Sopenharmony_ci    variable code:FullyCoveredEXT specifying that conservative rasterization
2368e5c31af7Sopenharmony_ci    is enabled and the fragment area is fully covered by the generating
2369e5c31af7Sopenharmony_ci    primitive.
2370e5c31af7Sopenharmony_ci  * [[limits-conservativeRasterizationPostDepthCoverage]]
2371e5c31af7Sopenharmony_ciifdef::VK_EXT_post_depth_coverage[]
2372e5c31af7Sopenharmony_ci    pname:conservativeRasterizationPostDepthCoverage is ename:VK_TRUE if the
2373e5c31af7Sopenharmony_ci    implementation supports conservative rasterization with the
2374e5c31af7Sopenharmony_ci    code:PostDepthCoverage execution mode enabled.
2375e5c31af7Sopenharmony_ci    Otherwise the code:PostDepthCoverage execution mode must: not be used
2376e5c31af7Sopenharmony_ci    when conservative rasterization is enabled.
2377e5c31af7Sopenharmony_ciendif::VK_EXT_post_depth_coverage[]
2378e5c31af7Sopenharmony_ciifndef::VK_EXT_post_depth_coverage[]
2379e5c31af7Sopenharmony_ci    pname:conservativeRasterizationPostDepthCoverage must: be
2380e5c31af7Sopenharmony_ci    ename:VK_FALSE.
2381e5c31af7Sopenharmony_ciendif::VK_EXT_post_depth_coverage[]
2382e5c31af7Sopenharmony_ci
2383e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceConservativeRasterizationPropertiesEXT
2384e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2385e5c31af7Sopenharmony_ci
2386e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.adoc[]
2387e5c31af7Sopenharmony_ci--
2388e5c31af7Sopenharmony_ciendif::VK_EXT_conservative_rasterization[]
2389e5c31af7Sopenharmony_ci
2390e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
2391e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMapPropertiesEXT',desc='Structure describing fragment density map properties that can be supported by an implementation',type='structs']
2392e5c31af7Sopenharmony_ci--
2393e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMapPropertiesEXT structure is
2394e5c31af7Sopenharmony_cidefined as:
2395e5c31af7Sopenharmony_ci
2396e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapPropertiesEXT.adoc[]
2397e5c31af7Sopenharmony_ci
2398e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2399e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2400e5c31af7Sopenharmony_ci    structure.
2401e5c31af7Sopenharmony_ci  * [[limits-minFragmentDensityTexelSize]] pname:minFragmentDensityTexelSize
2402e5c31af7Sopenharmony_ci    is the minimum <<glossary-fragment-density-texel-size,fragment density
2403e5c31af7Sopenharmony_ci    texel size>>.
2404e5c31af7Sopenharmony_ci  * [[limits-maxFragmentDensityTexelSize]] pname:maxFragmentDensityTexelSize
2405e5c31af7Sopenharmony_ci    is the maximum fragment density texel size.
2406e5c31af7Sopenharmony_ci  * [[limits-fragmentDensityInvocations]] pname:fragmentDensityInvocations
2407e5c31af7Sopenharmony_ci    specifies whether the implementation may: invoke additional fragment
2408e5c31af7Sopenharmony_ci    shader invocations for each covered sample.
2409e5c31af7Sopenharmony_ci
2410e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMapPropertiesEXT
2411e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2412e5c31af7Sopenharmony_ci
2413e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMapPropertiesEXT.adoc[]
2414e5c31af7Sopenharmony_ci--
2415e5c31af7Sopenharmony_ci
2416e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map2[]
2417e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMap2PropertiesEXT',desc='Structure describing additional fragment density map properties that can be supported by an implementation',type='structs']
2418e5c31af7Sopenharmony_ci--
2419e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMap2PropertiesEXT structure is
2420e5c31af7Sopenharmony_cidefined as:
2421e5c31af7Sopenharmony_ci
2422e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMap2PropertiesEXT.adoc[]
2423e5c31af7Sopenharmony_ci
2424e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2425e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2426e5c31af7Sopenharmony_ci    structure.
2427e5c31af7Sopenharmony_ci  * [[limits-subsampledLoads]] pname:subsampledLoads specifies if performing
2428e5c31af7Sopenharmony_ci    image data read with load operations on subsampled attachments will be
2429e5c31af7Sopenharmony_ci    resampled to the fragment density of the render pass
2430e5c31af7Sopenharmony_ci  * [[limits-subsampledCoarseReconstructionEarlyAccess]]
2431e5c31af7Sopenharmony_ci    pname:subsampledCoarseReconstructionEarlyAccess specifies if performing
2432e5c31af7Sopenharmony_ci    image data read with samplers created with pname:flags containing
2433e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT in
2434e5c31af7Sopenharmony_ci    fragment shader will trigger additional reads during
2435e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
2436e5c31af7Sopenharmony_ci  * [[limits-maxSubsampledArrayLayers]] pname:maxSubsampledArrayLayers is
2437e5c31af7Sopenharmony_ci    the maximum number of slink:VkImageView array layers for usages
2438e5c31af7Sopenharmony_ci    supporting subsampled samplers
2439e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetSubsampledSamplers]]
2440e5c31af7Sopenharmony_ci    pname:maxDescriptorSetSubsampledSamplers is the maximum number of
2441e5c31af7Sopenharmony_ci    subsampled samplers that can: be included in a slink:VkPipelineLayout
2442e5c31af7Sopenharmony_ci
2443e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
2444e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2445e5c31af7Sopenharmony_ci
2446e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMap2PropertiesEXT.adoc[]
2447e5c31af7Sopenharmony_ci--
2448e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map2[]
2449e5c31af7Sopenharmony_ci
2450e5c31af7Sopenharmony_ciifdef::VK_QCOM_fragment_density_map_offset[]
2451e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',desc='Structure describing fragment density map offset properties that can be supported by an implementation',type='structs']
2452e5c31af7Sopenharmony_ci--
2453e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM structure
2454e5c31af7Sopenharmony_ciis defined as:
2455e5c31af7Sopenharmony_ci
2456e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM.adoc[]
2457e5c31af7Sopenharmony_ci
2458e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2459e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2460e5c31af7Sopenharmony_ci    structure.
2461e5c31af7Sopenharmony_ci  * [[limits-fragmentdensityoffsetgranularity]]
2462e5c31af7Sopenharmony_ci    pname:fragmentDensityOffsetGranularity is the granularity for
2463e5c31af7Sopenharmony_ci    <<renderpass-fragmentdensitymapoffsets,fragment density offsets>>.
2464e5c31af7Sopenharmony_ci
2465e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
2466e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2467e5c31af7Sopenharmony_ci
2468e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM.adoc[]
2469e5c31af7Sopenharmony_ci--
2470e5c31af7Sopenharmony_ciendif::VK_QCOM_fragment_density_map_offset[]
2471e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
2472e5c31af7Sopenharmony_ci
2473e5c31af7Sopenharmony_ciifdef::VK_AMD_shader_core_properties[]
2474e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderCorePropertiesAMD',desc='Structure describing shader core properties that can be supported by an implementation',type='structs']
2475e5c31af7Sopenharmony_ci--
2476e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderCorePropertiesAMD structure is defined as:
2477e5c31af7Sopenharmony_ci
2478e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderCorePropertiesAMD.adoc[]
2479e5c31af7Sopenharmony_ci
2480e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2481e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2482e5c31af7Sopenharmony_ci    structure.
2483e5c31af7Sopenharmony_ci  * [[limits-shaderEngineCount]] pname:shaderEngineCount is an unsigned
2484e5c31af7Sopenharmony_ci    integer value indicating the number of shader engines found inside the
2485e5c31af7Sopenharmony_ci    shader core of the physical device.
2486e5c31af7Sopenharmony_ci  * [[limits-shaderArraysPerEngineCount]] pname:shaderArraysPerEngineCount
2487e5c31af7Sopenharmony_ci    is an unsigned integer value indicating the number of shader arrays
2488e5c31af7Sopenharmony_ci    inside a shader engine.
2489e5c31af7Sopenharmony_ci    Each shader array has its own scan converter, set of compute units, and
2490e5c31af7Sopenharmony_ci    a render back end (color and depth attachments).
2491e5c31af7Sopenharmony_ci    Shader arrays within a shader engine share shader processor input (wave
2492e5c31af7Sopenharmony_ci    launcher) and shader export (export buffer) units.
2493e5c31af7Sopenharmony_ci    Currently, a shader engine can have one or two shader arrays.
2494e5c31af7Sopenharmony_ci  * [[limits-computeUnitsPerShaderArray]] pname:computeUnitsPerShaderArray
2495e5c31af7Sopenharmony_ci    is an unsigned integer value indicating the physical number of compute
2496e5c31af7Sopenharmony_ci    units within a shader array.
2497e5c31af7Sopenharmony_ci    The active number of compute units in a shader array may: be lower.
2498e5c31af7Sopenharmony_ci    A compute unit houses a set of SIMDs along with a sequencer module and a
2499e5c31af7Sopenharmony_ci    local data store.
2500e5c31af7Sopenharmony_ci  * [[limits-simdPerComputeUnit]] pname:simdPerComputeUnit is an unsigned
2501e5c31af7Sopenharmony_ci    integer value indicating the number of SIMDs inside a compute unit.
2502e5c31af7Sopenharmony_ci    Each SIMD processes a single instruction at a time.
2503e5c31af7Sopenharmony_ci  * [[limits-wavefrontSize]] pname:wavefrontSize is an unsigned integer
2504e5c31af7Sopenharmony_ci    value indicating the maximum size of a subgroup.
2505e5c31af7Sopenharmony_ci  * [[limits-sgprsPerSimd]] pname:sgprsPerSimd is an unsigned integer value
2506e5c31af7Sopenharmony_ci    indicating the number of physical Scalar General-Purpose Registers
2507e5c31af7Sopenharmony_ci    (SGPRs) per SIMD.
2508e5c31af7Sopenharmony_ci  * [[limits-minSgprAllocation]] pname:minSgprAllocation is an unsigned
2509e5c31af7Sopenharmony_ci    integer value indicating the minimum number of SGPRs allocated for a
2510e5c31af7Sopenharmony_ci    wave.
2511e5c31af7Sopenharmony_ci  * [[limits-maxSgprAllocation]] pname:maxSgprAllocation is an unsigned
2512e5c31af7Sopenharmony_ci    integer value indicating the maximum number of SGPRs allocated for a
2513e5c31af7Sopenharmony_ci    wave.
2514e5c31af7Sopenharmony_ci  * [[limits-sgprAllocationGranularity]] pname:sgprAllocationGranularity is
2515e5c31af7Sopenharmony_ci    an unsigned integer value indicating the granularity of SGPR allocation
2516e5c31af7Sopenharmony_ci    for a wave.
2517e5c31af7Sopenharmony_ci  * [[limits-vgprsPerSimd]] pname:vgprsPerSimd is an unsigned integer value
2518e5c31af7Sopenharmony_ci    indicating the number of physical Vector General-Purpose Registers
2519e5c31af7Sopenharmony_ci    (VGPRs) per SIMD.
2520e5c31af7Sopenharmony_ci  * [[limits-minVgprAllocation]] pname:minVgprAllocation is an unsigned
2521e5c31af7Sopenharmony_ci    integer value indicating the minimum number of VGPRs allocated for a
2522e5c31af7Sopenharmony_ci    wave.
2523e5c31af7Sopenharmony_ci  * [[limits-maxVgprAllocation]] pname:maxVgprAllocation is an unsigned
2524e5c31af7Sopenharmony_ci    integer value indicating the maximum number of VGPRs allocated for a
2525e5c31af7Sopenharmony_ci    wave.
2526e5c31af7Sopenharmony_ci  * [[limits-vgprAllocationGranularity]] pname:vgprAllocationGranularity is
2527e5c31af7Sopenharmony_ci    an unsigned integer value indicating the granularity of VGPR allocation
2528e5c31af7Sopenharmony_ci    for a wave.
2529e5c31af7Sopenharmony_ci
2530e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderCorePropertiesAMD
2531e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2532e5c31af7Sopenharmony_ci
2533e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderCorePropertiesAMD.adoc[]
2534e5c31af7Sopenharmony_ci--
2535e5c31af7Sopenharmony_ciendif::VK_AMD_shader_core_properties[]
2536e5c31af7Sopenharmony_ci
2537e5c31af7Sopenharmony_ciifdef::VK_AMD_shader_core_properties2[]
2538e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderCoreProperties2AMD',desc='Structure describing shader core properties that can be supported by an implementation',type='structs']
2539e5c31af7Sopenharmony_ci--
2540e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderCoreProperties2AMD structure is defined as:
2541e5c31af7Sopenharmony_ci
2542e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderCoreProperties2AMD.adoc[]
2543e5c31af7Sopenharmony_ci
2544e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2545e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2546e5c31af7Sopenharmony_ci    structure.
2547e5c31af7Sopenharmony_ci  * [[features-shaderCoreFeatures]] pname:shaderCoreFeatures is a bitmask of
2548e5c31af7Sopenharmony_ci    elink:VkShaderCorePropertiesFlagBitsAMD indicating the set of features
2549e5c31af7Sopenharmony_ci    supported by the shader core.
2550e5c31af7Sopenharmony_ci  * [[limits-activeComputeUnitCount]] pname:activeComputeUnitCount is an
2551e5c31af7Sopenharmony_ci    unsigned integer value indicating the number of compute units that have
2552e5c31af7Sopenharmony_ci    been enabled.
2553e5c31af7Sopenharmony_ci
2554e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderCoreProperties2AMD
2555e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2556e5c31af7Sopenharmony_ci
2557e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderCoreProperties2AMD.adoc[]
2558e5c31af7Sopenharmony_ci--
2559e5c31af7Sopenharmony_ci
2560e5c31af7Sopenharmony_ci[open,refpage='VkShaderCorePropertiesFlagBitsAMD',desc='Bitmask specifying shader core properties',type='enums',xrefs='VkPhysicalDeviceShaderCoreProperties2AMD VkShaderCorePropertiesFlagsAMD']
2561e5c31af7Sopenharmony_ci--
2562e5c31af7Sopenharmony_ciBits for this type may: be defined by future extensions, or new versions of
2563e5c31af7Sopenharmony_cithe `apiext:VK_AMD_shader_core_properties2` extension.
2564e5c31af7Sopenharmony_ciPossible values of the pname:flags member of
2565e5c31af7Sopenharmony_citlink:VkShaderCorePropertiesFlagsAMD are:
2566e5c31af7Sopenharmony_ci
2567e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkShaderCorePropertiesFlagBitsAMD.adoc[]
2568e5c31af7Sopenharmony_ci--
2569e5c31af7Sopenharmony_ci
2570e5c31af7Sopenharmony_ci[open,refpage='VkShaderCorePropertiesFlagsAMD',desc='Bitmask of VkShaderCorePropertiesFlagBitsAMD',type='flags',xrefs='VkPhysicalDeviceShaderCoreProperties2AMD VkShaderCorePropertiesFlagBitsAMD']
2571e5c31af7Sopenharmony_ci--
2572e5c31af7Sopenharmony_ciinclude::{generated}/api/flags/VkShaderCorePropertiesFlagsAMD.adoc[]
2573e5c31af7Sopenharmony_ci
2574e5c31af7Sopenharmony_citname:VkShaderCorePropertiesFlagsAMD is a bitmask type for providing zero or
2575e5c31af7Sopenharmony_cimore elink:VkShaderCorePropertiesFlagBitsAMD.
2576e5c31af7Sopenharmony_ci--
2577e5c31af7Sopenharmony_ciendif::VK_AMD_shader_core_properties2[]
2578e5c31af7Sopenharmony_ci
2579e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
2580e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthStencilResolveProperties',desc='Structure describing depth/stencil resolve properties that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceDepthStencilResolvePropertiesKHR']
2581e5c31af7Sopenharmony_ci--
2582e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthStencilResolveProperties structure is defined
2583e5c31af7Sopenharmony_cias:
2584e5c31af7Sopenharmony_ci
2585e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthStencilResolveProperties.adoc[]
2586e5c31af7Sopenharmony_ci
2587e5c31af7Sopenharmony_ciifdef::VK_KHR_depth_stencil_resolve[]
2588e5c31af7Sopenharmony_cior the equivalent
2589e5c31af7Sopenharmony_ci
2590e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthStencilResolvePropertiesKHR.adoc[]
2591e5c31af7Sopenharmony_ciendif::VK_KHR_depth_stencil_resolve[]
2592e5c31af7Sopenharmony_ci
2593e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2594e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2595e5c31af7Sopenharmony_ci    structure.
2596e5c31af7Sopenharmony_ci
2597e5c31af7Sopenharmony_ci// Must have preceding whitespace
2598e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
2599e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
2600e5c31af7Sopenharmony_ci// tag::VK_KHR_depth_stencil_resolve-properties[]
2601e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-depthResolveModes]]
2602e5c31af7Sopenharmony_ci    pname:supportedDepthResolveModes is a bitmask of
2603e5c31af7Sopenharmony_ci    elink:VkResolveModeFlagBits indicating the set of supported depth
2604e5c31af7Sopenharmony_ci    resolve modes.
2605e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
2606e5c31af7Sopenharmony_ci    A value of ename:VK_RESOLVE_MODE_NONE indicates that depth resolve
2607e5c31af7Sopenharmony_ci    operations are disallowed <<SCID-8>>.
2608e5c31af7Sopenharmony_ci    If any bits are set then
2609e5c31af7Sopenharmony_ciifdef::hidden[]
2610e5c31af7Sopenharmony_ci// tag::scdeviation[]
2611e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceVulkan12Properties::pname:supportedDepthResolveModes
2612e5c31af7Sopenharmony_ci    may: be only ename:VK_RESOLVE_MODE_NONE <<SCID-8>>.
2613e5c31af7Sopenharmony_ci// end::scdeviation[]
2614e5c31af7Sopenharmony_ciendif::hidden[]
2615e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
2616e5c31af7Sopenharmony_ci    ename:VK_RESOLVE_MODE_SAMPLE_ZERO_BIT must: be included in the set but
2617e5c31af7Sopenharmony_ci    implementations may: support additional modes.
2618e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-stencilResolveModes]]
2619e5c31af7Sopenharmony_ci    pname:supportedStencilResolveModes is a bitmask of
2620e5c31af7Sopenharmony_ci    elink:VkResolveModeFlagBits indicating the set of supported stencil
2621e5c31af7Sopenharmony_ci    resolve modes.
2622e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
2623e5c31af7Sopenharmony_ci    A value of ename:VK_RESOLVE_MODE_NONE indicates that stencil resolve
2624e5c31af7Sopenharmony_ci    operations are disallowed <<SCID-8>>.
2625e5c31af7Sopenharmony_ci    If any bits are set then
2626e5c31af7Sopenharmony_ciifdef::hidden[]
2627e5c31af7Sopenharmony_ci// tag::scdeviation[]
2628e5c31af7Sopenharmony_ci  * slink:VkPhysicalDeviceVulkan12Properties::pname:supportedStencilResolveModes
2629e5c31af7Sopenharmony_ci    may: be only ename:VK_RESOLVE_MODE_NONE <<SCID-8>>.
2630e5c31af7Sopenharmony_ci// end::scdeviation[]
2631e5c31af7Sopenharmony_ciendif::hidden[]
2632e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
2633e5c31af7Sopenharmony_ci    ename:VK_RESOLVE_MODE_SAMPLE_ZERO_BIT must: be included in the set but
2634e5c31af7Sopenharmony_ci    implementations may: support additional modes.
2635e5c31af7Sopenharmony_ci    ename:VK_RESOLVE_MODE_AVERAGE_BIT must: not be included in the set.
2636e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-independentResolveNone]]
2637e5c31af7Sopenharmony_ci    pname:independentResolveNone is ename:VK_TRUE if the implementation
2638e5c31af7Sopenharmony_ci    supports setting the depth and stencil resolve modes to different values
2639e5c31af7Sopenharmony_ci    when one of those modes is ename:VK_RESOLVE_MODE_NONE.
2640e5c31af7Sopenharmony_ci    Otherwise the implementation only supports setting both modes to the
2641e5c31af7Sopenharmony_ci    same value.
2642e5c31af7Sopenharmony_ci  * [[{anchor-prefix}features-independentResolve]] pname:independentResolve
2643e5c31af7Sopenharmony_ci    is ename:VK_TRUE if the implementation supports all combinations of the
2644e5c31af7Sopenharmony_ci    supported depth and stencil resolve modes, including setting either
2645e5c31af7Sopenharmony_ci    depth or stencil resolve mode to ename:VK_RESOLVE_MODE_NONE.
2646e5c31af7Sopenharmony_ci    An implementation that supports pname:independentResolve must: also
2647e5c31af7Sopenharmony_ci    support pname:independentResolveNone.
2648e5c31af7Sopenharmony_ci// end::VK_KHR_depth_stencil_resolve-properties[]
2649e5c31af7Sopenharmony_ci
2650e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthStencilResolveProperties
2651e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2652e5c31af7Sopenharmony_ci
2653e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthStencilResolveProperties.adoc[]
2654e5c31af7Sopenharmony_ci--
2655e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
2656e5c31af7Sopenharmony_ci
2657e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[]
2658e5c31af7Sopenharmony_ciinclude::{chapters}/VK_KHR_performance_query/props.adoc[]
2659e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[]
2660e5c31af7Sopenharmony_ci
2661e5c31af7Sopenharmony_ciifdef::VK_NV_shading_rate_image[]
2662e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShadingRateImagePropertiesNV',desc='Structure describing shading rate image limits that can be supported by an implementation',type='structs']
2663e5c31af7Sopenharmony_ci--
2664e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShadingRateImagePropertiesNV structure is defined
2665e5c31af7Sopenharmony_cias:
2666e5c31af7Sopenharmony_ci
2667e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShadingRateImagePropertiesNV.adoc[]
2668e5c31af7Sopenharmony_ci
2669e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2670e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2671e5c31af7Sopenharmony_ci    structure.
2672e5c31af7Sopenharmony_ci  * [[limits-shadingRateTexelSize]] pname:shadingRateTexelSize indicates the
2673e5c31af7Sopenharmony_ci    width and height of the portion of the framebuffer corresponding to each
2674e5c31af7Sopenharmony_ci    texel in the shading rate image.
2675e5c31af7Sopenharmony_ci  * [[limits-shadingRatePaletteSize]] pname:shadingRatePaletteSize indicates
2676e5c31af7Sopenharmony_ci    the maximum number of palette entries supported for the shading rate
2677e5c31af7Sopenharmony_ci    image.
2678e5c31af7Sopenharmony_ci  * [[limits-shadingRateMaxCoarseSamples]] pname:shadingRateMaxCoarseSamples
2679e5c31af7Sopenharmony_ci    specifies the maximum number of coverage samples supported in a single
2680e5c31af7Sopenharmony_ci    fragment.
2681e5c31af7Sopenharmony_ci    If the product of the fragment size derived from the base shading rate
2682e5c31af7Sopenharmony_ci    and the number of coverage samples per pixel exceeds this limit, the
2683e5c31af7Sopenharmony_ci    final shading rate will be adjusted so that its product does not exceed
2684e5c31af7Sopenharmony_ci    the limit.
2685e5c31af7Sopenharmony_ci
2686e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShadingRateImagePropertiesNV
2687e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2688e5c31af7Sopenharmony_ci
2689e5c31af7Sopenharmony_ciThese properties are related to the <<primsrast-shading-rate-image, shading
2690e5c31af7Sopenharmony_cirate image>> feature.
2691e5c31af7Sopenharmony_ci
2692e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShadingRateImagePropertiesNV.adoc[]
2693e5c31af7Sopenharmony_ci--
2694e5c31af7Sopenharmony_ciendif::VK_NV_shading_rate_image[]
2695e5c31af7Sopenharmony_ci
2696e5c31af7Sopenharmony_ciifdef::VK_NV_memory_decompression[]
2697e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMemoryDecompressionPropertiesNV',desc='Structure describing supported memory decompression methods by an implementation',type='structs']
2698e5c31af7Sopenharmony_ci--
2699e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMemoryDecompressionPropertiesNV structure is
2700e5c31af7Sopenharmony_cidefined as:
2701e5c31af7Sopenharmony_ci
2702e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMemoryDecompressionPropertiesNV.adoc[]
2703e5c31af7Sopenharmony_ci
2704e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2705e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2706e5c31af7Sopenharmony_ci    structure.
2707e5c31af7Sopenharmony_ci  * pname:decompressionMethods is a bitmask of
2708e5c31af7Sopenharmony_ci    elink:VkMemoryDecompressionMethodFlagBitsNV specifying memory
2709e5c31af7Sopenharmony_ci    decompression methods supported by the implementation.
2710e5c31af7Sopenharmony_ci  * pname:maxDecompressionIndirectCount specifies the maximum supported
2711e5c31af7Sopenharmony_ci    count value in the pname:countBuffer of
2712e5c31af7Sopenharmony_ci    flink:vkCmdDecompressMemoryIndirectCountNV
2713e5c31af7Sopenharmony_ci
2714e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMemoryDecompressionPropertiesNV
2715e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2716e5c31af7Sopenharmony_ci
2717e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMemoryDecompressionPropertiesNV.adoc[]
2718e5c31af7Sopenharmony_ci--
2719e5c31af7Sopenharmony_ciendif::VK_NV_memory_decompression[]
2720e5c31af7Sopenharmony_ci
2721e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
2722e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTransformFeedbackPropertiesEXT',desc='Structure describing transform feedback properties that can be supported by an implementation',type='structs']
2723e5c31af7Sopenharmony_ci--
2724e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTransformFeedbackPropertiesEXT structure is
2725e5c31af7Sopenharmony_cidefined as:
2726e5c31af7Sopenharmony_ci
2727e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTransformFeedbackPropertiesEXT.adoc[]
2728e5c31af7Sopenharmony_ci
2729e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2730e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2731e5c31af7Sopenharmony_ci    structure.
2732e5c31af7Sopenharmony_ci  * [[limits-maxTransformFeedbackStreams]] pname:maxTransformFeedbackStreams
2733e5c31af7Sopenharmony_ci    is the maximum number of vertex streams that can be output from geometry
2734e5c31af7Sopenharmony_ci    shaders declared with the code:GeometryStreams capability.
2735e5c31af7Sopenharmony_ci    If the implementation does not support
2736e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceTransformFeedbackFeaturesEXT::pname:geometryStreams
2737e5c31af7Sopenharmony_ci    then pname:maxTransformFeedbackStreams must: be set to `1`.
2738e5c31af7Sopenharmony_ci  * [[limits-maxTransformFeedbackBuffers]] pname:maxTransformFeedbackBuffers
2739e5c31af7Sopenharmony_ci    is the maximum number of transform feedback buffers that can be bound
2740e5c31af7Sopenharmony_ci    for capturing shader outputs from the last
2741e5c31af7Sopenharmony_ci    <<pipelines-graphics-subsets-pre-rasterization,pre-rasterization shader
2742e5c31af7Sopenharmony_ci    stage>>.
2743e5c31af7Sopenharmony_ci  * [[limits-maxTransformFeedbackBufferSize]]
2744e5c31af7Sopenharmony_ci    pname:maxTransformFeedbackBufferSize is the maximum size that can be
2745e5c31af7Sopenharmony_ci    specified when binding a buffer for transform feedback in
2746e5c31af7Sopenharmony_ci    flink:vkCmdBindTransformFeedbackBuffersEXT.
2747e5c31af7Sopenharmony_ci  * [[limits-maxTransformFeedbackStreamDataSize]]
2748e5c31af7Sopenharmony_ci    pname:maxTransformFeedbackStreamDataSize is the maximum amount of data
2749e5c31af7Sopenharmony_ci    in bytes for each vertex that captured to one or more transform feedback
2750e5c31af7Sopenharmony_ci    buffers associated with a specific vertex stream.
2751e5c31af7Sopenharmony_ci  * [[limits-maxTransformFeedbackBufferDataSize]]
2752e5c31af7Sopenharmony_ci    pname:maxTransformFeedbackBufferDataSize is the maximum amount of data
2753e5c31af7Sopenharmony_ci    in bytes for each vertex that can be captured to a specific transform
2754e5c31af7Sopenharmony_ci    feedback buffer.
2755e5c31af7Sopenharmony_ci  * [[limits-maxTransformFeedbackBufferDataStride]]
2756e5c31af7Sopenharmony_ci    pname:maxTransformFeedbackBufferDataStride is the maximum stride between
2757e5c31af7Sopenharmony_ci    each capture of vertex data to the buffer.
2758e5c31af7Sopenharmony_ci  * [[limits-transformFeedbackQueries]] pname:transformFeedbackQueries is
2759e5c31af7Sopenharmony_ci    ename:VK_TRUE if the implementation supports the
2760e5c31af7Sopenharmony_ci    ename:VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT query type.
2761e5c31af7Sopenharmony_ci    pname:transformFeedbackQueries is ename:VK_FALSE if queries of this type
2762e5c31af7Sopenharmony_ci    cannot: be created.
2763e5c31af7Sopenharmony_ci  * [[limits-transformFeedbackStreamsLinesTriangles]]
2764e5c31af7Sopenharmony_ci    pname:transformFeedbackStreamsLinesTriangles is ename:VK_TRUE if the
2765e5c31af7Sopenharmony_ci    implementation supports the geometry shader code:OpExecutionMode of
2766e5c31af7Sopenharmony_ci    code:OutputLineStrip and code:OutputTriangleStrip in addition to
2767e5c31af7Sopenharmony_ci    code:OutputPoints when more than one vertex stream is output.
2768e5c31af7Sopenharmony_ci    If pname:transformFeedbackStreamsLinesTriangles is ename:VK_FALSE the
2769e5c31af7Sopenharmony_ci    implementation only supports an code:OpExecutionMode of
2770e5c31af7Sopenharmony_ci    code:OutputPoints when more than one vertex stream is output from the
2771e5c31af7Sopenharmony_ci    geometry shader.
2772e5c31af7Sopenharmony_ci  * [[limits-transformFeedbackRasterizationStreamSelect]]
2773e5c31af7Sopenharmony_ci    pname:transformFeedbackRasterizationStreamSelect is ename:VK_TRUE if the
2774e5c31af7Sopenharmony_ci    implementation supports the code:GeometryStreams SPIR-V capability and
2775e5c31af7Sopenharmony_ci    the application can use
2776e5c31af7Sopenharmony_ci    slink:VkPipelineRasterizationStateStreamCreateInfoEXT to modify which
2777e5c31af7Sopenharmony_ci    vertex stream output is used for rasterization.
2778e5c31af7Sopenharmony_ci    Otherwise vertex stream `0` must: always be used for rasterization.
2779e5c31af7Sopenharmony_ci  * [[limits-transformFeedbackDraw]] pname:transformFeedbackDraw is
2780e5c31af7Sopenharmony_ci    ename:VK_TRUE if the implementation supports the
2781e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectByteCountEXT function otherwise the function
2782e5c31af7Sopenharmony_ci    must: not be called.
2783e5c31af7Sopenharmony_ci
2784e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTransformFeedbackPropertiesEXT
2785e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2786e5c31af7Sopenharmony_ci
2787e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTransformFeedbackPropertiesEXT.adoc[]
2788e5c31af7Sopenharmony_ci--
2789e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
2790e5c31af7Sopenharmony_ci
2791e5c31af7Sopenharmony_ciifdef::VK_NV_copy_memory_indirect[]
2792e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCopyMemoryIndirectPropertiesNV',desc='Structure describing supported queues for indirect copy',type='structs']
2793e5c31af7Sopenharmony_ci--
2794e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCopyMemoryIndirectPropertiesNV structure is
2795e5c31af7Sopenharmony_cidefined as:
2796e5c31af7Sopenharmony_ci
2797e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCopyMemoryIndirectPropertiesNV.adoc[]
2798e5c31af7Sopenharmony_ci
2799e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2800e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2801e5c31af7Sopenharmony_ci    structure.
2802e5c31af7Sopenharmony_ci  * pname:supportedQueues is a bitmask of elink:VkQueueFlagBits indicating
2803e5c31af7Sopenharmony_ci    the queues on which <<indirect-copies, indirect copy commands>> are
2804e5c31af7Sopenharmony_ci    supported.
2805e5c31af7Sopenharmony_ci
2806e5c31af7Sopenharmony_ciIf the <<features-indirectCopy, pname:indirectCopy>> feature is supported,
2807e5c31af7Sopenharmony_cipname:supportedQueues must: return at least one supported queue.
2808e5c31af7Sopenharmony_ci
2809e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCopyMemoryIndirectPropertiesNV
2810e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2811e5c31af7Sopenharmony_ci
2812e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCopyMemoryIndirectPropertiesNV.adoc[]
2813e5c31af7Sopenharmony_ci--
2814e5c31af7Sopenharmony_ciendif::VK_NV_copy_memory_indirect[]
2815e5c31af7Sopenharmony_ci
2816e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[]
2817e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingPropertiesNV',desc='Properties of the physical device for ray tracing',type='structs']
2818e5c31af7Sopenharmony_ci--
2819e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingPropertiesNV structure is defined as:
2820e5c31af7Sopenharmony_ci
2821e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingPropertiesNV.adoc[]
2822e5c31af7Sopenharmony_ci
2823e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2824e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2825e5c31af7Sopenharmony_ci    structure.
2826e5c31af7Sopenharmony_ci  * pname:shaderGroupHandleSize is the size in bytes of the shader header.
2827e5c31af7Sopenharmony_ci  * [[limits-maxRecursionDepth]] pname:maxRecursionDepth is the maximum
2828e5c31af7Sopenharmony_ci    number of levels of recursion allowed in a trace command.
2829e5c31af7Sopenharmony_ci  * pname:maxShaderGroupStride is the maximum stride in bytes allowed
2830e5c31af7Sopenharmony_ci    between shader groups in the shader binding table.
2831e5c31af7Sopenharmony_ci  * pname:shaderGroupBaseAlignment is the required: alignment in bytes for
2832e5c31af7Sopenharmony_ci    the base of the shader binding table.
2833e5c31af7Sopenharmony_ci  * pname:maxGeometryCount is the maximum number of geometries in the bottom
2834e5c31af7Sopenharmony_ci    level acceleration structure.
2835e5c31af7Sopenharmony_ci  * pname:maxInstanceCount is the maximum number of instances in the top
2836e5c31af7Sopenharmony_ci    level acceleration structure.
2837e5c31af7Sopenharmony_ci  * pname:maxTriangleCount is the maximum number of triangles in all
2838e5c31af7Sopenharmony_ci    geometries in the bottom level acceleration structure.
2839e5c31af7Sopenharmony_ci  * pname:maxDescriptorSetAccelerationStructures is the maximum number of
2840e5c31af7Sopenharmony_ci    acceleration structure descriptors that are allowed in a descriptor set.
2841e5c31af7Sopenharmony_ci
2842e5c31af7Sopenharmony_ciDue to the fact that the geometry, instance, and triangle counts are
2843e5c31af7Sopenharmony_cispecified at acceleration structure creation as 32-bit values,
2844e5c31af7Sopenharmony_cipname:maxGeometryCount, pname:maxInstanceCount, and pname:maxTriangleCount
2845e5c31af7Sopenharmony_cimust: not exceed [eq]#2^32^-1#.
2846e5c31af7Sopenharmony_ci
2847e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingPropertiesNV
2848e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2849e5c31af7Sopenharmony_ci
2850e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
2851e5c31af7Sopenharmony_ciLimits specified by this structure must: match those specified with the same
2852e5c31af7Sopenharmony_ciname in slink:VkPhysicalDeviceAccelerationStructurePropertiesKHR and
2853e5c31af7Sopenharmony_cislink:VkPhysicalDeviceRayTracingPipelinePropertiesKHR.
2854e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
2855e5c31af7Sopenharmony_ci
2856e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingPropertiesNV.adoc[]
2857e5c31af7Sopenharmony_ci--
2858e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing[]
2859e5c31af7Sopenharmony_ci
2860e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
2861e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAccelerationStructurePropertiesKHR',desc='Properties of the physical device for acceleration structure',type='structs']
2862e5c31af7Sopenharmony_ci--
2863e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAccelerationStructurePropertiesKHR structure is
2864e5c31af7Sopenharmony_cidefined as:
2865e5c31af7Sopenharmony_ci
2866e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAccelerationStructurePropertiesKHR.adoc[]
2867e5c31af7Sopenharmony_ci
2868e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2869e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2870e5c31af7Sopenharmony_ci    structure.
2871e5c31af7Sopenharmony_ci  * [[limits-maxGeometryCount]] pname:maxGeometryCount is the maximum number
2872e5c31af7Sopenharmony_ci    of geometries in the bottom level acceleration structure.
2873e5c31af7Sopenharmony_ci  * [[limits-maxInstanceCount]] pname:maxInstanceCount is the maximum number
2874e5c31af7Sopenharmony_ci    of instances in the top level acceleration structure.
2875e5c31af7Sopenharmony_ci  * [[limits-maxPrimitiveCount]] pname:maxPrimitiveCount is the maximum
2876e5c31af7Sopenharmony_ci    number of triangles or AABBs in all geometries in the bottom level
2877e5c31af7Sopenharmony_ci    acceleration structure.
2878e5c31af7Sopenharmony_ci  * [[limits-maxPerStageDescriptorAccelerationStructures]]
2879e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorAccelerationStructures is the maximum number
2880e5c31af7Sopenharmony_ci    of acceleration structure bindings that can: be accessible to a single
2881e5c31af7Sopenharmony_ci    shader stage in a pipeline layout.
2882e5c31af7Sopenharmony_ci    Descriptor bindings with a descriptor type of
2883e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR count against this
2884e5c31af7Sopenharmony_ci    limit.
2885e5c31af7Sopenharmony_ci    Only descriptor bindings in descriptor set layouts created without the
2886e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
2887e5c31af7Sopenharmony_ci    count against this limit.
2888e5c31af7Sopenharmony_ci  * [[limits-maxPerStageDescriptorUpdateAfterBindAccelerationStructures]]
2889e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorUpdateAfterBindAccelerationStructures is
2890e5c31af7Sopenharmony_ci    similar to pname:maxPerStageDescriptorAccelerationStructures but counts
2891e5c31af7Sopenharmony_ci    descriptor bindings from descriptor sets created with or without the
2892e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2893e5c31af7Sopenharmony_ci    set.
2894e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetAccelerationStructures]]
2895e5c31af7Sopenharmony_ci    pname:maxDescriptorSetAccelerationStructures is the maximum number of
2896e5c31af7Sopenharmony_ci    acceleration structure descriptors that can: be included in descriptor
2897e5c31af7Sopenharmony_ci    bindings in a pipeline layout across all pipeline shader stages and
2898e5c31af7Sopenharmony_ci    descriptor set numbers.
2899e5c31af7Sopenharmony_ci    Descriptor bindings with a descriptor type of
2900e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR count against this
2901e5c31af7Sopenharmony_ci    limit.
2902e5c31af7Sopenharmony_ci    Only descriptor bindings in descriptor set layouts created without the
2903e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set
2904e5c31af7Sopenharmony_ci    count against this limit.
2905e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorSetUpdateAfterBindAccelerationStructures]]
2906e5c31af7Sopenharmony_ci    pname:maxDescriptorSetUpdateAfterBindAccelerationStructures is similar
2907e5c31af7Sopenharmony_ci    to pname:maxDescriptorSetAccelerationStructures but counts descriptor
2908e5c31af7Sopenharmony_ci    bindings from descriptor sets created with or without the
2909e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
2910e5c31af7Sopenharmony_ci    set.
2911e5c31af7Sopenharmony_ci  * [[limits-minAccelerationStructureScratchOffsetAlignment]]
2912e5c31af7Sopenharmony_ci    pname:minAccelerationStructureScratchOffsetAlignment is the minimum
2913e5c31af7Sopenharmony_ci    required: alignment, in bytes, for scratch data passed in to an
2914e5c31af7Sopenharmony_ci    acceleration structure build command.
2915e5c31af7Sopenharmony_ci    The value must: be a power of two.
2916e5c31af7Sopenharmony_ci
2917e5c31af7Sopenharmony_ciDue to the fact that the geometry, instance, and primitive counts are
2918e5c31af7Sopenharmony_cispecified at acceleration structure creation as 32-bit values,
2919e5c31af7Sopenharmony_ci<<limits-maxGeometryCount, pname:maxGeometryCount>>,
2920e5c31af7Sopenharmony_ci<<limits-maxInstanceCount, pname:maxInstanceCount>>, and
2921e5c31af7Sopenharmony_ci<<limits-maxPrimitiveCount, pname:maxPrimitiveCount>> must: not exceed
2922e5c31af7Sopenharmony_ci[eq]#2^32^-1#.
2923e5c31af7Sopenharmony_ci
2924e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAccelerationStructurePropertiesKHR
2925e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2926e5c31af7Sopenharmony_ci
2927e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[]
2928e5c31af7Sopenharmony_ciLimits specified by this structure must: match those specified with the same
2929e5c31af7Sopenharmony_ciname in slink:VkPhysicalDeviceRayTracingPropertiesNV.
2930e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing[]
2931e5c31af7Sopenharmony_ci
2932e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAccelerationStructurePropertiesKHR.adoc[]
2933e5c31af7Sopenharmony_ci--
2934e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
2935e5c31af7Sopenharmony_ci
2936e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
2937e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingPipelinePropertiesKHR',desc='Properties of the physical device for ray tracing',type='structs']
2938e5c31af7Sopenharmony_ci--
2939e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingPipelinePropertiesKHR structure is
2940e5c31af7Sopenharmony_cidefined as:
2941e5c31af7Sopenharmony_ci
2942e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingPipelinePropertiesKHR.adoc[]
2943e5c31af7Sopenharmony_ci
2944e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2945e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2946e5c31af7Sopenharmony_ci    structure.
2947e5c31af7Sopenharmony_ci  * pname:shaderGroupHandleSize is the size in bytes of the shader header.
2948e5c31af7Sopenharmony_ci  * [[limits-maxRayRecursionDepth]] pname:maxRayRecursionDepth is the
2949e5c31af7Sopenharmony_ci    maximum number of levels of ray recursion allowed in a trace command.
2950e5c31af7Sopenharmony_ci  * pname:maxShaderGroupStride is the maximum stride in bytes allowed
2951e5c31af7Sopenharmony_ci    between shader groups in the shader binding table.
2952e5c31af7Sopenharmony_ci  * pname:shaderGroupBaseAlignment is the required: alignment in bytes for
2953e5c31af7Sopenharmony_ci    the base of the shader binding table.
2954e5c31af7Sopenharmony_ci  * pname:shaderGroupHandleCaptureReplaySize is the number of bytes for the
2955e5c31af7Sopenharmony_ci    information required to do capture and replay for shader group handles.
2956e5c31af7Sopenharmony_ci  * pname:maxRayDispatchInvocationCount is the maximum number of ray
2957e5c31af7Sopenharmony_ci    generation shader invocations which may: be produced by a single
2958e5c31af7Sopenharmony_ci    flink:vkCmdTraceRaysIndirectKHR or flink:vkCmdTraceRaysKHR command.
2959e5c31af7Sopenharmony_ci  * pname:shaderGroupHandleAlignment is the required: alignment in bytes for
2960e5c31af7Sopenharmony_ci    each shader binding table entry.
2961e5c31af7Sopenharmony_ci    The value must: be a power of two.
2962e5c31af7Sopenharmony_ci  * pname:maxRayHitAttributeSize is the maximum size in bytes for a ray
2963e5c31af7Sopenharmony_ci    attribute structure
2964e5c31af7Sopenharmony_ci
2965e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingPipelinePropertiesKHR
2966e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2967e5c31af7Sopenharmony_ci
2968e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[]
2969e5c31af7Sopenharmony_ciLimits specified by this structure must: match those specified with the same
2970e5c31af7Sopenharmony_ciname in slink:VkPhysicalDeviceRayTracingPropertiesNV.
2971e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing[]
2972e5c31af7Sopenharmony_ci
2973e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingPipelinePropertiesKHR.adoc[]
2974e5c31af7Sopenharmony_ci--
2975e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
2976e5c31af7Sopenharmony_ci
2977e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[]
2978e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCooperativeMatrixPropertiesNV',desc='Structure describing cooperative matrix properties supported by an implementation',type='structs']
2979e5c31af7Sopenharmony_ci--
2980e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCooperativeMatrixPropertiesNV structure is defined
2981e5c31af7Sopenharmony_cias:
2982e5c31af7Sopenharmony_ci
2983e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixPropertiesNV.adoc[]
2984e5c31af7Sopenharmony_ci
2985e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
2986e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
2987e5c31af7Sopenharmony_ci    structure.
2988e5c31af7Sopenharmony_ci  * [[limits-cooperativeMatrixSupportedStages-NV]]
2989e5c31af7Sopenharmony_ci    pname:cooperativeMatrixSupportedStages is a bitfield of
2990e5c31af7Sopenharmony_ci    elink:VkShaderStageFlagBits describing the shader stages that
2991e5c31af7Sopenharmony_ci    cooperative matrix instructions are supported in.
2992e5c31af7Sopenharmony_ci    pname:cooperativeMatrixSupportedStages will have the
2993e5c31af7Sopenharmony_ci    ename:VK_SHADER_STAGE_COMPUTE_BIT bit set if any of the physical
2994e5c31af7Sopenharmony_ci    device's queues support ename:VK_QUEUE_COMPUTE_BIT.
2995e5c31af7Sopenharmony_ci
2996e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCooperativeMatrixPropertiesNV
2997e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
2998e5c31af7Sopenharmony_ci
2999e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCooperativeMatrixPropertiesNV.adoc[]
3000e5c31af7Sopenharmony_ci--
3001e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[]
3002e5c31af7Sopenharmony_ci
3003e5c31af7Sopenharmony_ciifdef::VK_KHR_cooperative_matrix[]
3004e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCooperativeMatrixPropertiesKHR',desc='Structure describing cooperative matrix properties supported by an implementation',type='structs']
3005e5c31af7Sopenharmony_ci--
3006e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCooperativeMatrixPropertiesKHR structure is
3007e5c31af7Sopenharmony_cidefined as:
3008e5c31af7Sopenharmony_ci
3009e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixPropertiesKHR.adoc[]
3010e5c31af7Sopenharmony_ci
3011e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3012e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3013e5c31af7Sopenharmony_ci    structure.
3014e5c31af7Sopenharmony_ci  * [[limits-cooperativeMatrixSupportedStages]]
3015e5c31af7Sopenharmony_ci    pname:cooperativeMatrixSupportedStages is a bitfield of
3016e5c31af7Sopenharmony_ci    elink:VkShaderStageFlagBits describing the shader stages that
3017e5c31af7Sopenharmony_ci    cooperative matrix instructions are supported in.
3018e5c31af7Sopenharmony_ci    pname:cooperativeMatrixSupportedStages will have the
3019e5c31af7Sopenharmony_ci    ename:VK_SHADER_STAGE_COMPUTE_BIT bit set if any of the physical
3020e5c31af7Sopenharmony_ci    device's queues support ename:VK_QUEUE_COMPUTE_BIT.
3021e5c31af7Sopenharmony_ci
3022e5c31af7Sopenharmony_cipname:cooperativeMatrixSupportedStages must: not have any bits other than
3023e5c31af7Sopenharmony_ciename:VK_SHADER_STAGE_COMPUTE_BIT set.
3024e5c31af7Sopenharmony_ci
3025e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCooperativeMatrixPropertiesKHR
3026e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3027e5c31af7Sopenharmony_ci
3028e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCooperativeMatrixPropertiesKHR.adoc[]
3029e5c31af7Sopenharmony_ci--
3030e5c31af7Sopenharmony_ciendif::VK_KHR_cooperative_matrix[]
3031e5c31af7Sopenharmony_ci
3032e5c31af7Sopenharmony_ciifdef::VK_NV_shader_sm_builtins[]
3033e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSMBuiltinsPropertiesNV',desc='Structure describing shader SM Builtins properties supported by an implementation',type='structs']
3034e5c31af7Sopenharmony_ci--
3035e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSMBuiltinsPropertiesNV structure is defined
3036e5c31af7Sopenharmony_cias:
3037e5c31af7Sopenharmony_ci
3038e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSMBuiltinsPropertiesNV.adoc[]
3039e5c31af7Sopenharmony_ci
3040e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3041e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3042e5c31af7Sopenharmony_ci    structure.
3043e5c31af7Sopenharmony_ci  * [[limits-shaderSMCount]] pname:shaderSMCount is the number of SMs on the
3044e5c31af7Sopenharmony_ci    device.
3045e5c31af7Sopenharmony_ci  * [[limits-shaderWarpsPerSM]] pname:shaderWarpsPerSM is the maximum number
3046e5c31af7Sopenharmony_ci    of simultaneously executing warps on an SM.
3047e5c31af7Sopenharmony_ci
3048e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSMBuiltinsPropertiesNV
3049e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3050e5c31af7Sopenharmony_ci
3051e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSMBuiltinsPropertiesNV.adoc[]
3052e5c31af7Sopenharmony_ci--
3053e5c31af7Sopenharmony_ciendif::VK_NV_shader_sm_builtins[]
3054e5c31af7Sopenharmony_ci
3055e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
3056e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTexelBufferAlignmentProperties',desc='Structure describing the texel buffer alignment requirements supported by an implementation',type='structs',alias='VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT']
3057e5c31af7Sopenharmony_ci--
3058e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTexelBufferAlignmentProperties structure is
3059e5c31af7Sopenharmony_cidefined as:
3060e5c31af7Sopenharmony_ci
3061e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTexelBufferAlignmentProperties.adoc[]
3062e5c31af7Sopenharmony_ci
3063e5c31af7Sopenharmony_ciifdef::VK_EXT_texel_buffer_alignment[]
3064e5c31af7Sopenharmony_cior the equivalent
3065e5c31af7Sopenharmony_ci
3066e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT.adoc[]
3067e5c31af7Sopenharmony_ciendif::VK_EXT_texel_buffer_alignment[]
3068e5c31af7Sopenharmony_ci
3069e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3070e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3071e5c31af7Sopenharmony_ci    structure.
3072e5c31af7Sopenharmony_ci
3073e5c31af7Sopenharmony_ci// Must have preceding whitespace
3074e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-]
3075e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:]
3076e5c31af7Sopenharmony_ci// tag::VK_EXT_texel_buffer_alignment-properties[]
3077e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-storageTexelBufferOffsetAlignmentBytes]]
3078e5c31af7Sopenharmony_ci    pname:storageTexelBufferOffsetAlignmentBytes is a byte alignment that is
3079e5c31af7Sopenharmony_ci    sufficient for a storage texel buffer of any format.
3080e5c31af7Sopenharmony_ci    The value must: be a power of two.
3081e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-storageTexelBufferOffsetSingleTexelAlignment]]
3082e5c31af7Sopenharmony_ci    pname:storageTexelBufferOffsetSingleTexelAlignment indicates whether
3083e5c31af7Sopenharmony_ci    single texel alignment is sufficient for a storage texel buffer of any
3084e5c31af7Sopenharmony_ci    format.
3085e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-uniformTexelBufferOffsetAlignmentBytes]]
3086e5c31af7Sopenharmony_ci    pname:uniformTexelBufferOffsetAlignmentBytes is a byte alignment that is
3087e5c31af7Sopenharmony_ci    sufficient for a uniform texel buffer of any format.
3088e5c31af7Sopenharmony_ci    The value must: be a power of two.
3089e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-uniformTexelBufferOffsetSingleTexelAlignment]]
3090e5c31af7Sopenharmony_ci    pname:uniformTexelBufferOffsetSingleTexelAlignment indicates whether
3091e5c31af7Sopenharmony_ci    single texel alignment is sufficient for a uniform texel buffer of any
3092e5c31af7Sopenharmony_ci    format.
3093e5c31af7Sopenharmony_ci// end::VK_EXT_texel_buffer_alignment-properties[]
3094e5c31af7Sopenharmony_ci
3095e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTexelBufferAlignmentProperties
3096e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3097e5c31af7Sopenharmony_ci
3098e5c31af7Sopenharmony_ciIf the single texel alignment property is ename:VK_FALSE, then the buffer
3099e5c31af7Sopenharmony_ciview's offset must: be aligned to the corresponding byte alignment value.
3100e5c31af7Sopenharmony_ciIf the single texel alignment property is ename:VK_TRUE, then the buffer
3101e5c31af7Sopenharmony_ciview's offset must: be aligned to the lesser of the corresponding byte
3102e5c31af7Sopenharmony_cialignment value or the size of a single texel, based on
3103e5c31af7Sopenharmony_cislink:VkBufferViewCreateInfo::pname:format.
3104e5c31af7Sopenharmony_ciIf the size of a single texel is a multiple of three bytes, then the size of
3105e5c31af7Sopenharmony_cia single component of the format is used instead.
3106e5c31af7Sopenharmony_ci
3107e5c31af7Sopenharmony_ciThese limits must: not advertise a larger alignment than the
3108e5c31af7Sopenharmony_ci<<limits-required, required>> maximum minimum value of
3109e5c31af7Sopenharmony_cislink:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment, for any
3110e5c31af7Sopenharmony_ciformat that supports use as a texel buffer.
3111e5c31af7Sopenharmony_ci
3112e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTexelBufferAlignmentProperties.adoc[]
3113e5c31af7Sopenharmony_ci--
3114e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[]
3115e5c31af7Sopenharmony_ci
3116e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
3117e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTimelineSemaphoreProperties',desc='Structure describing timeline semaphore properties that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceTimelineSemaphorePropertiesKHR']
3118e5c31af7Sopenharmony_ci--
3119e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTimelineSemaphoreProperties structure is defined
3120e5c31af7Sopenharmony_cias:
3121e5c31af7Sopenharmony_ci
3122e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreProperties.adoc[]
3123e5c31af7Sopenharmony_ci
3124e5c31af7Sopenharmony_ciifdef::VK_KHR_timeline_semaphore[]
3125e5c31af7Sopenharmony_cior the equivalent
3126e5c31af7Sopenharmony_ci
3127e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphorePropertiesKHR.adoc[]
3128e5c31af7Sopenharmony_ciendif::VK_KHR_timeline_semaphore[]
3129e5c31af7Sopenharmony_ci
3130e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3131e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3132e5c31af7Sopenharmony_ci    structure.
3133e5c31af7Sopenharmony_ci
3134e5c31af7Sopenharmony_ci// Must have preceding whitespace
3135e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-]
3136e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:]
3137e5c31af7Sopenharmony_ci// tag::VK_KHR_timeline_semaphore-properties[]
3138e5c31af7Sopenharmony_ci  * [[{anchor-prefix}limits-maxTimelineSemaphoreValueDifference]]
3139e5c31af7Sopenharmony_ci    pname:maxTimelineSemaphoreValueDifference indicates the maximum
3140e5c31af7Sopenharmony_ci    difference allowed by the implementation between the current value of a
3141e5c31af7Sopenharmony_ci    timeline semaphore and any pending signal or wait operations.
3142e5c31af7Sopenharmony_ci// end::VK_KHR_timeline_semaphore-properties[]
3143e5c31af7Sopenharmony_ci
3144e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTimelineSemaphoreProperties
3145e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3146e5c31af7Sopenharmony_ci
3147e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTimelineSemaphoreProperties.adoc[]
3148e5c31af7Sopenharmony_ci--
3149e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
3150e5c31af7Sopenharmony_ci
3151e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[]
3152e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLineRasterizationPropertiesEXT',desc='Structure describing line rasterization properties supported by an implementation',type='structs']
3153e5c31af7Sopenharmony_ci--
3154e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLineRasterizationPropertiesEXT structure is
3155e5c31af7Sopenharmony_cidefined as:
3156e5c31af7Sopenharmony_ci
3157e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLineRasterizationPropertiesEXT.adoc[]
3158e5c31af7Sopenharmony_ci
3159e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3160e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3161e5c31af7Sopenharmony_ci    structure.
3162e5c31af7Sopenharmony_ci  * [[limits-lineSubPixelPrecisionBits]] pname:lineSubPixelPrecisionBits is
3163e5c31af7Sopenharmony_ci    the number of bits of subpixel precision in framebuffer coordinates
3164e5c31af7Sopenharmony_ci    [eq]#x~f~# and [eq]#y~f~# when rasterizing <<primsrast-lines,line
3165e5c31af7Sopenharmony_ci    segments>>.
3166e5c31af7Sopenharmony_ci
3167e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLineRasterizationPropertiesEXT
3168e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3169e5c31af7Sopenharmony_ci
3170e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLineRasterizationPropertiesEXT.adoc[]
3171e5c31af7Sopenharmony_ci--
3172e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[]
3173e5c31af7Sopenharmony_ci
3174e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
3175e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRobustness2PropertiesEXT',desc='Structure describing robust buffer access properties supported by an implementation',type='structs']
3176e5c31af7Sopenharmony_ci--
3177e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRobustness2PropertiesEXT structure is defined as:
3178e5c31af7Sopenharmony_ci
3179e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRobustness2PropertiesEXT.adoc[]
3180e5c31af7Sopenharmony_ci
3181e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3182e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3183e5c31af7Sopenharmony_ci    structure.
3184e5c31af7Sopenharmony_ci  * [[limits-robustStorageBufferAccessSizeAlignment]]
3185e5c31af7Sopenharmony_ci    pname:robustStorageBufferAccessSizeAlignment is the number of bytes that
3186e5c31af7Sopenharmony_ci    the range of a storage buffer descriptor is rounded up to when used for
3187e5c31af7Sopenharmony_ci    bounds-checking when the <<features-robustBufferAccess2,
3188e5c31af7Sopenharmony_ci    pname:robustBufferAccess2>> feature is enabled.
3189e5c31af7Sopenharmony_ci    This value must: be either 1 or 4.
3190e5c31af7Sopenharmony_ci  * [[limits-robustUniformBufferAccessSizeAlignment]]
3191e5c31af7Sopenharmony_ci    pname:robustUniformBufferAccessSizeAlignment is the number of bytes that
3192e5c31af7Sopenharmony_ci    the range of a uniform buffer descriptor is rounded up to when used for
3193e5c31af7Sopenharmony_ci    bounds-checking when the <<features-robustBufferAccess2,
3194e5c31af7Sopenharmony_ci    pname:robustBufferAccess2>> feature is enabled.
3195e5c31af7Sopenharmony_ci    This value must: be a power of two in the range [1, 256].
3196e5c31af7Sopenharmony_ci
3197e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRobustness2PropertiesEXT
3198e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3199e5c31af7Sopenharmony_ci
3200e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRobustness2PropertiesEXT.adoc[]
3201e5c31af7Sopenharmony_ci--
3202e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
3203e5c31af7Sopenharmony_ci
3204e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands[]
3205e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV',desc='Structure describing push descriptor limits that can be supported by an implementation',type='structs']
3206e5c31af7Sopenharmony_ci--
3207e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV structure is
3208e5c31af7Sopenharmony_cidefined as:
3209e5c31af7Sopenharmony_ci
3210e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV.adoc[]
3211e5c31af7Sopenharmony_ci
3212e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3213e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3214e5c31af7Sopenharmony_ci    structure.
3215e5c31af7Sopenharmony_ci  * pname:maxGraphicsShaderGroupCount is the maximum number of shader groups
3216e5c31af7Sopenharmony_ci    in slink:VkGraphicsPipelineShaderGroupsCreateInfoNV.
3217e5c31af7Sopenharmony_ci  * pname:maxIndirectSequenceCount is the maximum number of sequences in
3218e5c31af7Sopenharmony_ci    slink:VkGeneratedCommandsInfoNV and in
3219e5c31af7Sopenharmony_ci    slink:VkGeneratedCommandsMemoryRequirementsInfoNV.
3220e5c31af7Sopenharmony_ci  * pname:maxIndirectCommandsTokenCount is the maximum number of tokens in
3221e5c31af7Sopenharmony_ci    slink:VkIndirectCommandsLayoutCreateInfoNV.
3222e5c31af7Sopenharmony_ci  * pname:maxIndirectCommandsStreamCount is the maximum number of streams in
3223e5c31af7Sopenharmony_ci    slink:VkIndirectCommandsLayoutCreateInfoNV.
3224e5c31af7Sopenharmony_ci  * pname:maxIndirectCommandsTokenOffset is the maximum offset in
3225e5c31af7Sopenharmony_ci    slink:VkIndirectCommandsLayoutTokenNV.
3226e5c31af7Sopenharmony_ci  * pname:maxIndirectCommandsStreamStride is the maximum stream stride in
3227e5c31af7Sopenharmony_ci    slink:VkIndirectCommandsLayoutCreateInfoNV.
3228e5c31af7Sopenharmony_ci  * pname:minSequencesCountBufferOffsetAlignment is the minimum alignment
3229e5c31af7Sopenharmony_ci    for memory addresses which can: be used in
3230e5c31af7Sopenharmony_ci    slink:VkGeneratedCommandsInfoNV.
3231e5c31af7Sopenharmony_ci  * pname:minSequencesIndexBufferOffsetAlignment is the minimum alignment
3232e5c31af7Sopenharmony_ci    for memory addresses which can: be used in
3233e5c31af7Sopenharmony_ci    slink:VkGeneratedCommandsInfoNV.
3234e5c31af7Sopenharmony_ci  * pname:minIndirectCommandsBufferOffsetAlignment is the minimum alignment
3235e5c31af7Sopenharmony_ci    for memory addresses used in slink:VkIndirectCommandsStreamNV, and as
3236e5c31af7Sopenharmony_ci    preprocess buffer in slink:VkGeneratedCommandsInfoNV.
3237e5c31af7Sopenharmony_ci
3238e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV
3239e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3240e5c31af7Sopenharmony_ci
3241e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV.adoc[]
3242e5c31af7Sopenharmony_ci--
3243e5c31af7Sopenharmony_ci
3244e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands[]
3245e5c31af7Sopenharmony_ci
3246e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[]
3247e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePortabilitySubsetPropertiesKHR',desc='Structure describing additional properties supported by a portable implementation',type='structs']
3248e5c31af7Sopenharmony_ci--
3249e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePortabilitySubsetPropertiesKHR structure is
3250e5c31af7Sopenharmony_cidefined as:
3251e5c31af7Sopenharmony_ci
3252e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePortabilitySubsetPropertiesKHR.adoc[]
3253e5c31af7Sopenharmony_ci
3254e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3255e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3256e5c31af7Sopenharmony_ci    structure.
3257e5c31af7Sopenharmony_ci  * [[limits-minVertexInputBindingStrideAlignment]]
3258e5c31af7Sopenharmony_ci    pname:minVertexInputBindingStrideAlignment indicates the minimum
3259e5c31af7Sopenharmony_ci    alignment for vertex input strides.
3260e5c31af7Sopenharmony_ci    slink:VkVertexInputBindingDescription::pname:stride must: be a multiple
3261e5c31af7Sopenharmony_ci    of, and at least as large as, this value.
3262e5c31af7Sopenharmony_ci    The value must: be a power of two.
3263e5c31af7Sopenharmony_ci
3264e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePortabilitySubsetPropertiesKHR
3265e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3266e5c31af7Sopenharmony_ci
3267e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePortabilitySubsetPropertiesKHR.adoc[]
3268e5c31af7Sopenharmony_ci--
3269e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
3270e5c31af7Sopenharmony_ci
3271e5c31af7Sopenharmony_ci
3272e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
3273e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRatePropertiesKHR',desc='Structure describing variable fragment shading rate limits that can be supported by an implementation',type='structs']
3274e5c31af7Sopenharmony_ci--
3275e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRatePropertiesKHR structure is
3276e5c31af7Sopenharmony_cidefined as:
3277e5c31af7Sopenharmony_ci
3278e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRatePropertiesKHR.adoc[]
3279e5c31af7Sopenharmony_ci
3280e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3281e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3282e5c31af7Sopenharmony_ci    structure.
3283e5c31af7Sopenharmony_ci  * [[limits-minFragmentShadingRateAttachmentTexelSize]]
3284e5c31af7Sopenharmony_ci    pname:minFragmentShadingRateAttachmentTexelSize indicates minimum
3285e5c31af7Sopenharmony_ci    supported width and height of the portion of the framebuffer
3286e5c31af7Sopenharmony_ci    corresponding to each texel in a fragment shading rate attachment.
3287e5c31af7Sopenharmony_ci    Each value must: be less than or equal to the values in
3288e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateAttachmentTexelSize.
3289e5c31af7Sopenharmony_ci    Each value must: be a power-of-two.
3290e5c31af7Sopenharmony_ci    It must: be [eq]#(0,0)# if the <<features-attachmentFragmentShadingRate,
3291e5c31af7Sopenharmony_ci    pname:attachmentFragmentShadingRate>> feature is not supported.
3292e5c31af7Sopenharmony_ci  * [[limits-maxFragmentShadingRateAttachmentTexelSize]]
3293e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateAttachmentTexelSize indicates maximum
3294e5c31af7Sopenharmony_ci    supported width and height of the portion of the framebuffer
3295e5c31af7Sopenharmony_ci    corresponding to each texel in a fragment shading rate attachment.
3296e5c31af7Sopenharmony_ci    Each value must: be greater than or equal to the values in
3297e5c31af7Sopenharmony_ci    pname:minFragmentShadingRateAttachmentTexelSize.
3298e5c31af7Sopenharmony_ci    Each value must: be a power-of-two.
3299e5c31af7Sopenharmony_ci    It must: be [eq]#(0,0)# if the <<features-attachmentFragmentShadingRate,
3300e5c31af7Sopenharmony_ci    pname:attachmentFragmentShadingRate>> feature is not supported.
3301e5c31af7Sopenharmony_ci  * [[limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio]]
3302e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateAttachmentTexelSizeAspectRatio indicates the
3303e5c31af7Sopenharmony_ci    maximum ratio between the width and height of the portion of the
3304e5c31af7Sopenharmony_ci    framebuffer corresponding to each texel in a fragment shading rate
3305e5c31af7Sopenharmony_ci    attachment.
3306e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateAttachmentTexelSizeAspectRatio must: be a
3307e5c31af7Sopenharmony_ci    power-of-two value, and must: be less than or equal to
3308e5c31af7Sopenharmony_ci    [eq]#max(pname:maxFragmentShadingRateAttachmentTexelSize.width /
3309e5c31af7Sopenharmony_ci    pname:minFragmentShadingRateAttachmentTexelSize.height,
3310e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateAttachmentTexelSize.height /
3311e5c31af7Sopenharmony_ci    pname:minFragmentShadingRateAttachmentTexelSize.width)#.
3312e5c31af7Sopenharmony_ci    It must: be 0 if the <<features-attachmentFragmentShadingRate,
3313e5c31af7Sopenharmony_ci    pname:attachmentFragmentShadingRate>> feature is not supported.
3314e5c31af7Sopenharmony_ci  * [[limits-primitiveFragmentShadingRateWithMultipleViewports]]
3315e5c31af7Sopenharmony_ci    pname:primitiveFragmentShadingRateWithMultipleViewports specifies
3316e5c31af7Sopenharmony_ci    whether the <<primsrast-fragment-shading-rate-primitive,primitive
3317e5c31af7Sopenharmony_ci    fragment shading rate>> can: be used when multiple viewports are used.
3318e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, only a single viewport must: be used,
3319e5c31af7Sopenharmony_ci    and applications must: not write to the
3320e5c31af7Sopenharmony_ciifdef::VK_NV_viewport_array2[]
3321e5c31af7Sopenharmony_ci    code:ViewportMaskNV or
3322e5c31af7Sopenharmony_ciendif::VK_NV_viewport_array2[]
3323e5c31af7Sopenharmony_ci    code:ViewportIndex built-in when setting code:PrimitiveShadingRateKHR.
3324e5c31af7Sopenharmony_ci    It must: be ename:VK_FALSE if
3325e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
3326e5c31af7Sopenharmony_ci    the <<features-shaderOutputViewportIndex,
3327e5c31af7Sopenharmony_ci    pname:shaderOutputViewportIndex>> feature,
3328e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
3329e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_viewport_index_layer[]
3330e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_shader_viewport_index_layer` extension,
3331e5c31af7Sopenharmony_ciendif::VK_EXT_shader_viewport_index_layer[]
3332e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_shader_viewport_index_layer[or]
3333e5c31af7Sopenharmony_ci    the <<features-geometryShader, pname:geometryShader>> feature is not
3334e5c31af7Sopenharmony_ci    supported, or if the <<features-primitiveFragmentShadingRate,
3335e5c31af7Sopenharmony_ci    pname:primitiveFragmentShadingRate>> feature is not supported.
3336e5c31af7Sopenharmony_ci  * [[limits-layeredShadingRateAttachments]]
3337e5c31af7Sopenharmony_ci    pname:layeredShadingRateAttachments specifies whether a shading rate
3338e5c31af7Sopenharmony_ci    attachment image view can: be created with multiple layers.
3339e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, when creating an image view with a
3340e5c31af7Sopenharmony_ci    pname:usage that includes
3341e5c31af7Sopenharmony_ci    ename:VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3342e5c31af7Sopenharmony_ci    pname:layerCount must: be `1`.
3343e5c31af7Sopenharmony_ci    It must: be ename:VK_FALSE if
3344e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[]
3345e5c31af7Sopenharmony_ci    the <<features-multiview, pname:multiview>> feature,
3346e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[]
3347e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
3348e5c31af7Sopenharmony_ci    the <<features-shaderOutputViewportIndex,
3349e5c31af7Sopenharmony_ci    pname:shaderOutputViewportIndex>> feature,
3350e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
3351e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_viewport_index_layer[]
3352e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_shader_viewport_index_layer` extension,
3353e5c31af7Sopenharmony_ciendif::VK_EXT_shader_viewport_index_layer[]
3354e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview,VK_VERSION_1_2,VK_EXT_shader_viewport_index_layer[or]
3355e5c31af7Sopenharmony_ci    the <<features-geometryShader, pname:geometryShader>> feature is not
3356e5c31af7Sopenharmony_ci    supported, or if the <<features-attachmentFragmentShadingRate,
3357e5c31af7Sopenharmony_ci    pname:attachmentFragmentShadingRate>> feature is not supported.
3358e5c31af7Sopenharmony_ci  * [[limits-fragmentShadingRateNonTrivialCombinerOps]]
3359e5c31af7Sopenharmony_ci    pname:fragmentShadingRateNonTrivialCombinerOps specifies whether
3360e5c31af7Sopenharmony_ci    elink:VkFragmentShadingRateCombinerOpKHR enums other than
3361e5c31af7Sopenharmony_ci    ename:VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or
3362e5c31af7Sopenharmony_ci    ename:VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR can: be used.
3363e5c31af7Sopenharmony_ci    It must: be ename:VK_FALSE unless either the
3364e5c31af7Sopenharmony_ci    <<features-primitiveFragmentShadingRate,
3365e5c31af7Sopenharmony_ci    pname:primitiveFragmentShadingRate>> or
3366e5c31af7Sopenharmony_ci    <<features-attachmentFragmentShadingRate,
3367e5c31af7Sopenharmony_ci    pname:attachmentFragmentShadingRate>> feature is supported.
3368e5c31af7Sopenharmony_ci  * [[limits-maxFragmentSize]] pname:maxFragmentSize indicates the maximum
3369e5c31af7Sopenharmony_ci    supported width and height of a fragment.
3370e5c31af7Sopenharmony_ci    Its pname:width and pname:height members must: both be power-of-two
3371e5c31af7Sopenharmony_ci    values.
3372e5c31af7Sopenharmony_ci    This limit is purely informational, and is not validated.
3373e5c31af7Sopenharmony_ci  * [[limits-maxFragmentSizeAspectRatio]] pname:maxFragmentSizeAspectRatio
3374e5c31af7Sopenharmony_ci    indicates the maximum ratio between the width and height of a fragment.
3375e5c31af7Sopenharmony_ci    pname:maxFragmentSizeAspectRatio must: be a power-of-two value, and
3376e5c31af7Sopenharmony_ci    must: be less than or equal to the maximum of the pname:width and
3377e5c31af7Sopenharmony_ci    pname:height members of pname:maxFragmentSize.
3378e5c31af7Sopenharmony_ci    This limit is purely informational, and is not validated.
3379e5c31af7Sopenharmony_ci  * [[limits-maxFragmentShadingRateCoverageSamples]]
3380e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateCoverageSamples specifies the maximum number
3381e5c31af7Sopenharmony_ci    of coverage samples supported in a single fragment.
3382e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateCoverageSamples must: be less than or equal
3383e5c31af7Sopenharmony_ci    to the product of the pname:width and pname:height members of
3384e5c31af7Sopenharmony_ci    pname:maxFragmentSize, and the sample count reported by
3385e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateRasterizationSamples.
3386e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateCoverageSamples must: be less than or equal
3387e5c31af7Sopenharmony_ci    to [eq]#pname:maxSampleMaskWords {times} 32# if
3388e5c31af7Sopenharmony_ci    pname:fragmentShadingRateWithShaderSampleMask is supported.
3389e5c31af7Sopenharmony_ci    This limit is purely informational, and is not validated.
3390e5c31af7Sopenharmony_ci  * [[limits-maxFragmentShadingRateRasterizationSamples]]
3391e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateRasterizationSamples is a
3392e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits value specifying the maximum sample rate
3393e5c31af7Sopenharmony_ci    supported when a fragment covers multiple pixels.
3394e5c31af7Sopenharmony_ci    This limit is purely informational, and is not validated.
3395e5c31af7Sopenharmony_ci  * [[limits-fragmentShadingRateWithShaderDepthStencilWrites]]
3396e5c31af7Sopenharmony_ci    pname:fragmentShadingRateWithShaderDepthStencilWrites specifies whether
3397e5c31af7Sopenharmony_ci    the implementation supports writing code:FragDepth
3398e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_stencil_export[]
3399e5c31af7Sopenharmony_ci    or code:FragStencilRefEXT
3400e5c31af7Sopenharmony_ciendif::VK_EXT_shader_stencil_export[]
3401e5c31af7Sopenharmony_ci    from a fragment shader for multi-pixel fragments.
3402e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, writing to those built-ins will clamp
3403e5c31af7Sopenharmony_ci    the fragment shading rate to [eq]#(1,1)#.
3404e5c31af7Sopenharmony_ci  * [[limits-fragmentShadingRateWithSampleMask]]
3405e5c31af7Sopenharmony_ci    pname:fragmentShadingRateWithSampleMask specifies whether the
3406e5c31af7Sopenharmony_ci    implementation supports setting valid bits of
3407e5c31af7Sopenharmony_ci    slink:VkPipelineMultisampleStateCreateInfo::pname:pSampleMask to `0` for
3408e5c31af7Sopenharmony_ci    multi-pixel fragments.
3409e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, zeroing valid bits in the sample mask
3410e5c31af7Sopenharmony_ci    will clamp the fragment shading rate to [eq]#(1,1)#.
3411e5c31af7Sopenharmony_ci  * [[limits-fragmentShadingRateWithShaderSampleMask]]
3412e5c31af7Sopenharmony_ci    pname:fragmentShadingRateWithShaderSampleMask specifies whether the
3413e5c31af7Sopenharmony_ci    implementation supports reading or writing code:SampleMask for
3414e5c31af7Sopenharmony_ci    multi-pixel fragments.
3415e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, using that built-in will clamp the
3416e5c31af7Sopenharmony_ci    fragment shading rate to [eq]#(1,1)#.
3417e5c31af7Sopenharmony_ci  * [[limits-fragmentShadingRateWithConservativeRasterization]]
3418e5c31af7Sopenharmony_ci    pname:fragmentShadingRateWithConservativeRasterization
3419e5c31af7Sopenharmony_ciifndef::VK_EXT_conservative_rasterization[]
3420e5c31af7Sopenharmony_ci    is reserved for future use.
3421e5c31af7Sopenharmony_ciendif::VK_EXT_conservative_rasterization[]
3422e5c31af7Sopenharmony_ciifdef::VK_EXT_conservative_rasterization[]
3423e5c31af7Sopenharmony_ci    specifies whether <<primsrast-conservativeraster, conservative
3424e5c31af7Sopenharmony_ci    rasterization>> is supported for multi-pixel fragments.
3425e5c31af7Sopenharmony_ci    It must: be ename:VK_FALSE if `apiext:VK_EXT_conservative_rasterization`
3426e5c31af7Sopenharmony_ci    is not supported.
3427e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, using <<primsrast-conservativeraster,
3428e5c31af7Sopenharmony_ci    conservative rasterization>> will clamp the fragment shading rate to
3429e5c31af7Sopenharmony_ci    [eq]#(1,1)#.
3430e5c31af7Sopenharmony_ciendif::VK_EXT_conservative_rasterization[]
3431e5c31af7Sopenharmony_ci  * [[limits-fragmentShadingRateWithFragmentShaderInterlock]]
3432e5c31af7Sopenharmony_ci    pname:fragmentShadingRateWithFragmentShaderInterlock
3433e5c31af7Sopenharmony_ciifndef::VK_EXT_fragment_shader_interlock[]
3434e5c31af7Sopenharmony_ci    is reserved for future use.
3435e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[]
3436e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[]
3437e5c31af7Sopenharmony_ci    specifies whether <<fragops-shader-interlock, fragment shader
3438e5c31af7Sopenharmony_ci    interlock>> is supported for multi-pixel fragments.
3439e5c31af7Sopenharmony_ci    It must: be ename:VK_FALSE if `apiext:VK_EXT_fragment_shader_interlock`
3440e5c31af7Sopenharmony_ci    is not supported.
3441e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, using <<fragops-shader-interlock,
3442e5c31af7Sopenharmony_ci    fragment shader interlock>> will clamp the fragment shading rate to
3443e5c31af7Sopenharmony_ci    [eq]#(1,1)#.
3444e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[]
3445e5c31af7Sopenharmony_ci  * [[limits-fragmentShadingRateWithCustomSampleLocations]]
3446e5c31af7Sopenharmony_ci    pname:fragmentShadingRateWithCustomSampleLocations
3447e5c31af7Sopenharmony_ciifndef::VK_EXT_sample_locations[]
3448e5c31af7Sopenharmony_ci    is reserved for future use.
3449e5c31af7Sopenharmony_ciendif::VK_EXT_sample_locations[]
3450e5c31af7Sopenharmony_ciifdef::VK_EXT_sample_locations[]
3451e5c31af7Sopenharmony_ci    specifies whether <<primsrast-samplelocations, custom sample locations>>
3452e5c31af7Sopenharmony_ci    are supported for multi-pixel fragments.
3453e5c31af7Sopenharmony_ci    It must: be ename:VK_FALSE if `apiext:VK_EXT_sample_locations` is not
3454e5c31af7Sopenharmony_ci    supported.
3455e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, using <<primsrast-samplelocations,
3456e5c31af7Sopenharmony_ci    custom sample locations>> will clamp the fragment shading rate to
3457e5c31af7Sopenharmony_ci    [eq]#(1,1)#.
3458e5c31af7Sopenharmony_ciendif::VK_EXT_sample_locations[]
3459e5c31af7Sopenharmony_ci  * [[limits-fragmentShadingRateStrictMultiplyCombiner]]
3460e5c31af7Sopenharmony_ci    pname:fragmentShadingRateStrictMultiplyCombiner specifies whether
3461e5c31af7Sopenharmony_ci    ename:VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR accurately performs a
3462e5c31af7Sopenharmony_ci    multiplication or not.
3463e5c31af7Sopenharmony_ci    Implementations where this value is ename:VK_FALSE will instead combine
3464e5c31af7Sopenharmony_ci    rates with an addition.
3465e5c31af7Sopenharmony_ci    If pname:fragmentShadingRateNonTrivialCombinerOps is ename:VK_FALSE,
3466e5c31af7Sopenharmony_ci    implementations must: report this as ename:VK_FALSE.
3467e5c31af7Sopenharmony_ci    If pname:fragmentShadingRateNonTrivialCombinerOps is ename:VK_TRUE,
3468e5c31af7Sopenharmony_ci    implementations should: report this as ename:VK_TRUE.
3469e5c31af7Sopenharmony_ci
3470e5c31af7Sopenharmony_ci[NOTE]
3471e5c31af7Sopenharmony_ci.Note
3472e5c31af7Sopenharmony_ci====
3473e5c31af7Sopenharmony_ciMultiplication of the combiner rates using the fragment width/height in
3474e5c31af7Sopenharmony_cilinear space is equivalent to an addition of those values in log2 space.
3475e5c31af7Sopenharmony_ciSome implementations inadvertently implemented an addition in linear space
3476e5c31af7Sopenharmony_cidue to unclear requirements originating outside of this specification.
3477e5c31af7Sopenharmony_ciThis resulted in <<limits-fragmentShadingRateStrictMultiplyCombiner,
3478e5c31af7Sopenharmony_cipname:fragmentShadingRateStrictMultiplyCombiner>> being added.
3479e5c31af7Sopenharmony_ciFortunately, this only affects situations where a rate of 1 in either
3480e5c31af7Sopenharmony_cidimension is combined with another rate of 1.
3481e5c31af7Sopenharmony_ciAll other combinations result in the exact same result as if multiplication
3482e5c31af7Sopenharmony_ciwas performed in linear space due to the clamping logic, and the fact that
3483e5c31af7Sopenharmony_ciboth the sum and product of 2 and 2 are equal.
3484e5c31af7Sopenharmony_ciIn many cases, this limit will not affect the correct operation of
3485e5c31af7Sopenharmony_ciapplications.
3486e5c31af7Sopenharmony_ci====
3487e5c31af7Sopenharmony_ci
3488e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRatePropertiesKHR
3489e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3490e5c31af7Sopenharmony_ci
3491e5c31af7Sopenharmony_ciThese properties are related to <<primsrast-fragment-shading-rate, fragment
3492e5c31af7Sopenharmony_cishading rates>>.
3493e5c31af7Sopenharmony_ci
3494e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRatePropertiesKHR.adoc[]
3495e5c31af7Sopenharmony_ci--
3496e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
3497e5c31af7Sopenharmony_ci
3498e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shading_rate_enums[]
3499e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV',desc='Structure describing fragment shading rate limits that can be supported by an implementation',type='structs']
3500e5c31af7Sopenharmony_ci--
3501e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV structure is
3502e5c31af7Sopenharmony_cidefined as:
3503e5c31af7Sopenharmony_ci
3504e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV.adoc[]
3505e5c31af7Sopenharmony_ci
3506e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3507e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3508e5c31af7Sopenharmony_ci    structure.
3509e5c31af7Sopenharmony_ci  * [[limits-maxFragmentShadingRateInvocationCount]]
3510e5c31af7Sopenharmony_ci    pname:maxFragmentShadingRateInvocationCount is a
3511e5c31af7Sopenharmony_ci    elink:VkSampleCountFlagBits value indicating the maximum number of
3512e5c31af7Sopenharmony_ci    fragment shader invocations per fragment supported in pipeline,
3513e5c31af7Sopenharmony_ci    primitive, and attachment fragment shading rates.
3514e5c31af7Sopenharmony_ci
3515e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV
3516e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3517e5c31af7Sopenharmony_ci
3518e5c31af7Sopenharmony_ciThese properties are related to <<primsrast-fragment-shading-rate, fragment
3519e5c31af7Sopenharmony_cishading rates>>.
3520e5c31af7Sopenharmony_ci
3521e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV.adoc[]
3522e5c31af7Sopenharmony_ci--
3523e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shading_rate_enums[]
3524e5c31af7Sopenharmony_ci
3525e5c31af7Sopenharmony_ciifdef::VK_EXT_custom_border_color[]
3526e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCustomBorderColorPropertiesEXT',desc='Structure describing whether custom border colors can be supported by an implementation',type='structs']
3527e5c31af7Sopenharmony_ci--
3528e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCustomBorderColorPropertiesEXT structure is
3529e5c31af7Sopenharmony_cidefined as:
3530e5c31af7Sopenharmony_ci
3531e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCustomBorderColorPropertiesEXT.adoc[]
3532e5c31af7Sopenharmony_ci
3533e5c31af7Sopenharmony_ci  * [[limits-maxCustomBorderColorSamplers]]
3534e5c31af7Sopenharmony_ci    pname:maxCustomBorderColorSamplers indicates the maximum number of
3535e5c31af7Sopenharmony_ci    samplers with custom border colors which can: simultaneously exist on a
3536e5c31af7Sopenharmony_ci    device.
3537e5c31af7Sopenharmony_ci
3538e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCustomBorderColorPropertiesEXT
3539e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3540e5c31af7Sopenharmony_ci
3541e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCustomBorderColorPropertiesEXT.adoc[]
3542e5c31af7Sopenharmony_ci--
3543e5c31af7Sopenharmony_ciendif::VK_EXT_custom_border_color[]
3544e5c31af7Sopenharmony_ci
3545e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[]
3546e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProvokingVertexPropertiesEXT',desc='Structure describing provoking vertex properties supported by an implementation',type='structs']
3547e5c31af7Sopenharmony_ci--
3548e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProvokingVertexPropertiesEXT structure is defined
3549e5c31af7Sopenharmony_cias:
3550e5c31af7Sopenharmony_ci
3551e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProvokingVertexPropertiesEXT.adoc[]
3552e5c31af7Sopenharmony_ci
3553e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3554e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3555e5c31af7Sopenharmony_ci    structure.
3556e5c31af7Sopenharmony_ci  * [[limits-provokingVertexModePerPipeline]]
3557e5c31af7Sopenharmony_ci    pname:provokingVertexModePerPipeline indicates whether the
3558e5c31af7Sopenharmony_ci    implementation supports graphics pipelines with different provoking
3559e5c31af7Sopenharmony_ci    vertex modes within the same render pass instance.
3560e5c31af7Sopenharmony_ci  * [[limits-transformFeedbackPreservesTriangleFanProvokingVertex]]
3561e5c31af7Sopenharmony_ci    pname:transformFeedbackPreservesTriangleFanProvokingVertex indicates
3562e5c31af7Sopenharmony_ci    whether the implementation can preserve the provoking vertex order when
3563e5c31af7Sopenharmony_ci    writing triangle fan vertices to transform feedback.
3564e5c31af7Sopenharmony_ci
3565e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProvokingVertexPropertiesEXT
3566e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3567e5c31af7Sopenharmony_ci
3568e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProvokingVertexPropertiesEXT.adoc[]
3569e5c31af7Sopenharmony_ci--
3570e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[]
3571e5c31af7Sopenharmony_ci
3572e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_buffer[]
3573e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorBufferPropertiesEXT',desc='Structure describing descriptor buffer properties supported by an implementation',type='structs']
3574e5c31af7Sopenharmony_ci--
3575e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorBufferPropertiesEXT structure is defined
3576e5c31af7Sopenharmony_cias:
3577e5c31af7Sopenharmony_ci
3578e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorBufferPropertiesEXT.adoc[]
3579e5c31af7Sopenharmony_ci
3580e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3581e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3582e5c31af7Sopenharmony_ci    structure.
3583e5c31af7Sopenharmony_ci  * [[limits-combinedImageSamplerDescriptorSingleArray]]
3584e5c31af7Sopenharmony_ci    pname:combinedImageSamplerDescriptorSingleArray indicates that the
3585e5c31af7Sopenharmony_ci    implementation does not require an array of
3586e5c31af7Sopenharmony_ci    `VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER` descriptors to be written
3587e5c31af7Sopenharmony_ci    into a descriptor buffer as an array of image descriptors, immediately
3588e5c31af7Sopenharmony_ci    followed by an array of sampler descriptors.
3589e5c31af7Sopenharmony_ci  * [[limits-bufferlessPushDescriptors]] pname:bufferlessPushDescriptors
3590e5c31af7Sopenharmony_ci    indicates that the implementation does not require a buffer created with
3591e5c31af7Sopenharmony_ci    `VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT` to be bound
3592e5c31af7Sopenharmony_ci    when using push descriptors.
3593e5c31af7Sopenharmony_ci  * [[limits-allowSamplerImageViewPostSubmitCreation]]
3594e5c31af7Sopenharmony_ci    pname:allowSamplerImageViewPostSubmitCreation indicates that the
3595e5c31af7Sopenharmony_ci    implementation does not restrict when the slink:VkSampler or
3596e5c31af7Sopenharmony_ci    slink:VkImageView objects used to retrieve descriptor data can: be
3597e5c31af7Sopenharmony_ci    created in relation to command buffer submission.
3598e5c31af7Sopenharmony_ci    If this value is ename:VK_FALSE, then the application must: create any
3599e5c31af7Sopenharmony_ci    slink:VkSampler or slink:VkImageView objects whose descriptor data is
3600e5c31af7Sopenharmony_ci    accessed during the execution of a command buffer, before the
3601e5c31af7Sopenharmony_ci    flink:vkQueueSubmit
3602e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_synchronization2[]
3603e5c31af7Sopenharmony_ci    , or flink:vkQueueSubmit2,
3604e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_synchronization2[]
3605e5c31af7Sopenharmony_ci    call that submits that command buffer.
3606e5c31af7Sopenharmony_ci  * [[limits-descriptorBufferOffsetAlignment]]
3607e5c31af7Sopenharmony_ci    pname:descriptorBufferOffsetAlignment indicates the required: alignment
3608e5c31af7Sopenharmony_ci    in bytes when setting offsets into the descriptor buffer.
3609e5c31af7Sopenharmony_ci  * [[limits-maxDescriptorBufferBindings]] pname:maxDescriptorBufferBindings
3610e5c31af7Sopenharmony_ci    indicates the maximum sum total number of descriptor buffers and
3611e5c31af7Sopenharmony_ci    embedded immutable sampler sets that can: be bound.
3612e5c31af7Sopenharmony_ci  * [[limits-maxResourceDescriptorBufferBindings]]
3613e5c31af7Sopenharmony_ci    pname:maxResourceDescriptorBufferBindings indicates the maximum number
3614e5c31af7Sopenharmony_ci    of resource descriptor buffers that can: be bound.
3615e5c31af7Sopenharmony_ci  * [[limits-maxSamplerDescriptorBufferBindings]]
3616e5c31af7Sopenharmony_ci    pname:maxSamplerDescriptorBufferBindings indicates the maximum number of
3617e5c31af7Sopenharmony_ci    sampler descriptor buffers that can: be bound.
3618e5c31af7Sopenharmony_ci  * [[limits-maxEmbeddedImmutableSamplerBindings]]
3619e5c31af7Sopenharmony_ci    pname:maxEmbeddedImmutableSamplerBindings indicates the maximum number
3620e5c31af7Sopenharmony_ci    of embedded immutable sampler sets that can: be bound.
3621e5c31af7Sopenharmony_ci  * [[limits-maxEmbeddedImmutableSamplers]]
3622e5c31af7Sopenharmony_ci    pname:maxEmbeddedImmutableSamplers indicates the maximum number of
3623e5c31af7Sopenharmony_ci    unique immutable samplers in descriptor set layouts created with
3624e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT,
3625e5c31af7Sopenharmony_ci    and pipeline layouts created from them, which can: simultaneously exist
3626e5c31af7Sopenharmony_ci    on a device.
3627e5c31af7Sopenharmony_ci  * [[limits-bufferCaptureReplayDescriptorDataSize]]
3628e5c31af7Sopenharmony_ci    pname:bufferCaptureReplayDescriptorDataSize indicates the maximum size
3629e5c31af7Sopenharmony_ci    in bytes of the opaque data used for capture and replay with buffers.
3630e5c31af7Sopenharmony_ci  * [[limits-imageCaptureReplayDescriptorDataSize]]
3631e5c31af7Sopenharmony_ci    pname:imageCaptureReplayDescriptorDataSize indicates the maximum size in
3632e5c31af7Sopenharmony_ci    bytes of the opaque data used for capture and replay with images.
3633e5c31af7Sopenharmony_ci  * [[limits-imageViewCaptureReplayDescriptorDataSize]]
3634e5c31af7Sopenharmony_ci    pname:imageViewCaptureReplayDescriptorDataSize indicates the maximum
3635e5c31af7Sopenharmony_ci    size in bytes of the opaque data used for capture and replay with image
3636e5c31af7Sopenharmony_ci    views.
3637e5c31af7Sopenharmony_ci  * [[limits-samplerCaptureReplayDescriptorDataSize]]
3638e5c31af7Sopenharmony_ci    pname:samplerCaptureReplayDescriptorDataSize indicates the maximum size
3639e5c31af7Sopenharmony_ci    in bytes of the opaque data used for capture and replay with samplers.
3640e5c31af7Sopenharmony_ci  * [[limits-accelerationStructureCaptureReplayDescriptorDataSize]]
3641e5c31af7Sopenharmony_ci    pname:accelerationStructureCaptureReplayDescriptorDataSize indicates the
3642e5c31af7Sopenharmony_ci    maximum size in bytes of the opaque data used for capture and replay
3643e5c31af7Sopenharmony_ci    with acceleration structures.
3644e5c31af7Sopenharmony_ci  * [[limits-samplerDescriptorSize]] pname:samplerDescriptorSize indicates
3645e5c31af7Sopenharmony_ci    the size in bytes of a ename:VK_DESCRIPTOR_TYPE_SAMPLER descriptor.
3646e5c31af7Sopenharmony_ci  * [[limits-combinedImageSamplerDescriptorSize]]
3647e5c31af7Sopenharmony_ci    pname:combinedImageSamplerDescriptorSize indicates the size in bytes of
3648e5c31af7Sopenharmony_ci    a ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptor.
3649e5c31af7Sopenharmony_ci  * [[limits-sampledImageDescriptorSize]] pname:sampledImageDescriptorSize
3650e5c31af7Sopenharmony_ci    indicates the size in bytes of a ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
3651e5c31af7Sopenharmony_ci    descriptor.
3652e5c31af7Sopenharmony_ci  * [[limits-storageImageDescriptorSize]] pname:storageImageDescriptorSize
3653e5c31af7Sopenharmony_ci    indicates the size in bytes of a ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
3654e5c31af7Sopenharmony_ci    descriptor.
3655e5c31af7Sopenharmony_ci  * [[limits-uniformTexelBufferDescriptorSize]]
3656e5c31af7Sopenharmony_ci    pname:uniformTexelBufferDescriptorSize indicates the size in bytes of a
3657e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER descriptor if the
3658e5c31af7Sopenharmony_ci    <<features-robustBufferAccess, pname:robustBufferAccess>> feature is not
3659e5c31af7Sopenharmony_ci    enabled.
3660e5c31af7Sopenharmony_ci  * [[limits-robustUniformTexelBufferDescriptorSize]]
3661e5c31af7Sopenharmony_ci    pname:robustUniformTexelBufferDescriptorSize indicates the size in bytes
3662e5c31af7Sopenharmony_ci    of a ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER descriptor if the
3663e5c31af7Sopenharmony_ci    <<features-robustBufferAccess, pname:robustBufferAccess>> feature is
3664e5c31af7Sopenharmony_ci    enabled.
3665e5c31af7Sopenharmony_ci  * [[limits-storageTexelBufferDescriptorSize]]
3666e5c31af7Sopenharmony_ci    pname:storageTexelBufferDescriptorSize indicates the size in bytes of a
3667e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor if the
3668e5c31af7Sopenharmony_ci    <<features-robustBufferAccess, pname:robustBufferAccess>> feature is not
3669e5c31af7Sopenharmony_ci    enabled.
3670e5c31af7Sopenharmony_ci  * [[limits-robustStorageTexelBufferDescriptorSize]]
3671e5c31af7Sopenharmony_ci    pname:robustStorageTexelBufferDescriptorSize indicates the size in bytes
3672e5c31af7Sopenharmony_ci    of a ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor if the
3673e5c31af7Sopenharmony_ci    <<features-robustBufferAccess, pname:robustBufferAccess>> feature is
3674e5c31af7Sopenharmony_ci    enabled.
3675e5c31af7Sopenharmony_ci  * [[limits-uniformBufferDescriptorSize]] pname:uniformBufferDescriptorSize
3676e5c31af7Sopenharmony_ci    indicates the size in bytes of a ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
3677e5c31af7Sopenharmony_ci    descriptor.
3678e5c31af7Sopenharmony_ci  * [[limits-robustUniformBufferDescriptorSize]]
3679e5c31af7Sopenharmony_ci    pname:robustUniformBufferDescriptorSize indicates the size in bytes of a
3680e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER descriptor if the
3681e5c31af7Sopenharmony_ci    <<features-robustBufferAccess, pname:robustBufferAccess>> feature is
3682e5c31af7Sopenharmony_ci    enabled.
3683e5c31af7Sopenharmony_ci  * [[limits-storageBufferDescriptorSize]] pname:storageBufferDescriptorSize
3684e5c31af7Sopenharmony_ci    indicates the size in bytes of a ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
3685e5c31af7Sopenharmony_ci    descriptor.
3686e5c31af7Sopenharmony_ci  * [[limits-robustStorageBufferDescriptorSize]]
3687e5c31af7Sopenharmony_ci    pname:robustStorageBufferDescriptorSize indicates the size in bytes of a
3688e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER descriptor if the
3689e5c31af7Sopenharmony_ci    <<features-robustBufferAccess, pname:robustBufferAccess>> feature is
3690e5c31af7Sopenharmony_ci    enabled.
3691e5c31af7Sopenharmony_ci  * [[limits-inputAttachmentDescriptorSize]]
3692e5c31af7Sopenharmony_ci    pname:inputAttachmentDescriptorSize indicates the size in bytes of a
3693e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT descriptor.
3694e5c31af7Sopenharmony_ci  * [[limits-accelerationStructureDescriptorSize]]
3695e5c31af7Sopenharmony_ci    pname:accelerationStructureDescriptorSize indicates the size in bytes of
3696e5c31af7Sopenharmony_ci    a ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR or
3697e5c31af7Sopenharmony_ci    ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV descriptor.
3698e5c31af7Sopenharmony_ci  * [[limits-maxSamplerDescriptorBufferRange]]
3699e5c31af7Sopenharmony_ci    pname:maxSamplerDescriptorBufferRange indicates the maximum range in
3700e5c31af7Sopenharmony_ci    bytes from the address of a sampler descriptor buffer binding that is
3701e5c31af7Sopenharmony_ci    accessible to a shader.
3702e5c31af7Sopenharmony_ci  * [[limits-maxResourceDescriptorBufferRange]]
3703e5c31af7Sopenharmony_ci    pname:maxResourceDescriptorBufferRange indicates the maximum range in
3704e5c31af7Sopenharmony_ci    bytes from the address of a resource descriptor buffer binding that is
3705e5c31af7Sopenharmony_ci    accessible to a shader.
3706e5c31af7Sopenharmony_ci  * [[limits-samplerDescriptorBufferAddressSpaceSize]]
3707e5c31af7Sopenharmony_ci    pname:samplerDescriptorBufferAddressSpaceSize indicates the total size
3708e5c31af7Sopenharmony_ci    in bytes of the address space available for descriptor buffers created
3709e5c31af7Sopenharmony_ci    with ename:VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT.
3710e5c31af7Sopenharmony_ci  * [[limits-resourceDescriptorBufferAddressSpaceSize]]
3711e5c31af7Sopenharmony_ci    pname:resourceDescriptorBufferAddressSpaceSize indicates the total size
3712e5c31af7Sopenharmony_ci    in bytes of the address space available for descriptor buffers created
3713e5c31af7Sopenharmony_ci    with ename:VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT.
3714e5c31af7Sopenharmony_ci  * [[limits-descriptorBufferAddressSpaceSize]]
3715e5c31af7Sopenharmony_ci    pname:descriptorBufferAddressSpaceSize indicates the total size in bytes
3716e5c31af7Sopenharmony_ci    of the address space available for descriptor buffers created with both
3717e5c31af7Sopenharmony_ci    ename:VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT and
3718e5c31af7Sopenharmony_ci    ename:VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT.
3719e5c31af7Sopenharmony_ci
3720e5c31af7Sopenharmony_ciifdef::VK_VALVE_mutable_descriptor_type[]
3721e5c31af7Sopenharmony_ciA descriptor binding with type ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE has a
3722e5c31af7Sopenharmony_cidescriptor size which is implied by the descriptor types included in the
3723e5c31af7Sopenharmony_cislink:VkMutableDescriptorTypeCreateInfoVALVE::pname:pDescriptorTypes list.
3724e5c31af7Sopenharmony_ciThe descriptor size is equal to the maximum size of any descriptor type
3725e5c31af7Sopenharmony_ciincluded in the pname:pDescriptorTypes list.
3726e5c31af7Sopenharmony_ciendif::VK_VALVE_mutable_descriptor_type[]
3727e5c31af7Sopenharmony_ci
3728e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_robustness[]
3729e5c31af7Sopenharmony_ciAs there is no way to request robust and non-robust descriptors separately,
3730e5c31af7Sopenharmony_cior specify robust/non-robust descriptors in the set layout, if
3731e5c31af7Sopenharmony_ci<<features-robustBufferAccess, pname:robustBufferAccess>> is enabled then
3732e5c31af7Sopenharmony_cirobust descriptors are always used.
3733e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_robustness[]
3734e5c31af7Sopenharmony_ci
3735e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorBufferPropertiesEXT
3736e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3737e5c31af7Sopenharmony_ci
3738e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorBufferPropertiesEXT.adoc[]
3739e5c31af7Sopenharmony_ci--
3740e5c31af7Sopenharmony_ci
3741e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
3742e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT',desc='Structure describing descriptor buffer density map properties supported by an implementation',type='structs']
3743e5c31af7Sopenharmony_ci--
3744e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT structure
3745e5c31af7Sopenharmony_ciis defined as:
3746e5c31af7Sopenharmony_ci
3747e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT.adoc[]
3748e5c31af7Sopenharmony_ci
3749e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3750e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3751e5c31af7Sopenharmony_ci    structure.
3752e5c31af7Sopenharmony_ci  * [[limits-combinedImageSamplerDensityMapDescriptorSize]]
3753e5c31af7Sopenharmony_ci    pname:combinedImageSamplerDensityMapDescriptorSize indicates the size in
3754e5c31af7Sopenharmony_ci    bytes of a ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptor
3755e5c31af7Sopenharmony_ci    when creating the descriptor with
3756e5c31af7Sopenharmony_ci    ename:VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT set.
3757e5c31af7Sopenharmony_ci
3758e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
3759e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3760e5c31af7Sopenharmony_ci
3761e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT.adoc[]
3762e5c31af7Sopenharmony_ci--
3763e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
3764e5c31af7Sopenharmony_ci
3765e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_buffer[]
3766e5c31af7Sopenharmony_ci
3767e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[]
3768e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceHostImageCopyPropertiesEXT',desc='Structure enumerating image layouts supported by an implementation for host memory copies',type='structs']
3769e5c31af7Sopenharmony_ci--
3770e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceHostImageCopyPropertiesEXT structure is defined
3771e5c31af7Sopenharmony_cias:
3772e5c31af7Sopenharmony_ci
3773e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostImageCopyPropertiesEXT.adoc[]
3774e5c31af7Sopenharmony_ci
3775e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3776e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3777e5c31af7Sopenharmony_ci    structure.
3778e5c31af7Sopenharmony_ci  * pname:copySrcLayoutCount is an integer related to the number of image
3779e5c31af7Sopenharmony_ci    layouts for host copies from images available or queried, as described
3780e5c31af7Sopenharmony_ci    below.
3781e5c31af7Sopenharmony_ci  * pname:pCopySrcLayouts is a pointer to an array of elink:VkImageLayout in
3782e5c31af7Sopenharmony_ci    which supported image layouts for use with host copy operations from
3783e5c31af7Sopenharmony_ci    images are returned.
3784e5c31af7Sopenharmony_ci  * pname:copyDstLayoutCount is an integer related to the number of image
3785e5c31af7Sopenharmony_ci    layouts for host copies to images available or queried, as described
3786e5c31af7Sopenharmony_ci    below.
3787e5c31af7Sopenharmony_ci  * pname:pCopyDstLayouts is a pointer to an array of elink:VkImageLayout in
3788e5c31af7Sopenharmony_ci    which supported image layouts for use with host copy operations to
3789e5c31af7Sopenharmony_ci    images are returned.
3790e5c31af7Sopenharmony_ci  * pname:optimalTilingLayoutUUID is an array of ename:VK_UUID_SIZE
3791e5c31af7Sopenharmony_ci    code:uint8_t values representing a universally unique identifier for the
3792e5c31af7Sopenharmony_ci    implementation's swizzling layout of images created with
3793e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TILING_OPTIMAL.
3794e5c31af7Sopenharmony_ci  * pname:identicalMemoryTypeRequirements indicates that specifying the
3795e5c31af7Sopenharmony_ci    ename:VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT flag in
3796e5c31af7Sopenharmony_ci    slink:VkImageCreateInfo::pname:usage does not affect the memory type
3797e5c31af7Sopenharmony_ci    requirements of the image.
3798e5c31af7Sopenharmony_ci
3799e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceHostImageCopyPropertiesEXT
3800e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3801e5c31af7Sopenharmony_ci
3802e5c31af7Sopenharmony_ciIf pname:pCopyDstLayouts is `NULL`, then the number of image layouts that
3803e5c31af7Sopenharmony_ciare supported in slink:VkCopyMemoryToImageInfoEXT::pname:dstImageLayout and
3804e5c31af7Sopenharmony_cislink:VkCopyImageToImageInfoEXT::pname:dstImageLayout is returned in
3805e5c31af7Sopenharmony_cipname:copyDstLayoutCount.
3806e5c31af7Sopenharmony_ciOtherwise, pname:copyDstLayoutCount must: be set by the user to the number
3807e5c31af7Sopenharmony_ciof elements in the pname:pCopyDstLayouts array, and on return the variable
3808e5c31af7Sopenharmony_ciis overwritten with the number of values actually written to
3809e5c31af7Sopenharmony_cipname:pCopyDstLayouts.
3810e5c31af7Sopenharmony_ciIf the value of pname:copyDstLayoutCount is less than the number of image
3811e5c31af7Sopenharmony_cilayouts that are supported, at most pname:copyDstLayoutCount values will be
3812e5c31af7Sopenharmony_ciwritten to pname:pCopyDstLayouts.
3813e5c31af7Sopenharmony_ciThe implementation must: include the ename:VK_IMAGE_LAYOUT_GENERAL image
3814e5c31af7Sopenharmony_cilayout in pname:pCopyDstLayouts.
3815e5c31af7Sopenharmony_ci
3816e5c31af7Sopenharmony_ciIf pname:pCopySrcLayouts is `NULL`, then the number of image layouts that
3817e5c31af7Sopenharmony_ciare supported in slink:VkCopyImageToMemoryInfoEXT::pname:srcImageLayout and
3818e5c31af7Sopenharmony_cislink:VkCopyImageToImageInfoEXT::pname:srcImageLayout is returned in
3819e5c31af7Sopenharmony_cipname:copySrcLayoutCount.
3820e5c31af7Sopenharmony_ciOtherwise, pname:copySrcLayoutCount must: be set by the user to the number
3821e5c31af7Sopenharmony_ciof elements in the pname:pCopySrcLayouts array, and on return the variable
3822e5c31af7Sopenharmony_ciis overwritten with the number of values actually written to
3823e5c31af7Sopenharmony_cipname:pCopySrcLayouts.
3824e5c31af7Sopenharmony_ciIf the value of pname:copySrcLayoutCount is less than the number of image
3825e5c31af7Sopenharmony_cilayouts that are supported, at most pname:copySrcLayoutCount values will be
3826e5c31af7Sopenharmony_ciwritten to pname:pCopySrcLayouts.
3827e5c31af7Sopenharmony_ciThe implementation must: include the ename:VK_IMAGE_LAYOUT_GENERAL image
3828e5c31af7Sopenharmony_cilayout in pname:pCopySrcLayouts.
3829e5c31af7Sopenharmony_ci
3830e5c31af7Sopenharmony_ciThe pname:optimalTilingLayoutUUID value can be used to ensure compatible
3831e5c31af7Sopenharmony_cidata layouts when using the ename:VK_HOST_IMAGE_COPY_MEMCPY_EXT flag in
3832e5c31af7Sopenharmony_ciflink:vkCopyMemoryToImageEXT and flink:vkCopyImageToMemoryEXT.
3833e5c31af7Sopenharmony_ci
3834e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceHostImageCopyPropertiesEXT.adoc[]
3835e5c31af7Sopenharmony_ci--
3836e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[]
3837e5c31af7Sopenharmony_ci
3838e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_subpass_shading[]
3839e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubpassShadingPropertiesHUAWEI',desc='Structure describing subpass shading properties supported by an implementation',type='structs']
3840e5c31af7Sopenharmony_ci--
3841e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubpassShadingPropertiesHUAWEI structure is
3842e5c31af7Sopenharmony_cidefined as:
3843e5c31af7Sopenharmony_ci
3844e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubpassShadingPropertiesHUAWEI.adoc[]
3845e5c31af7Sopenharmony_ci
3846e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
3847e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
3848e5c31af7Sopenharmony_ci    structure.
3849e5c31af7Sopenharmony_ci  * [[limits-maxSubpassShadingWorkgroupSizeAspectRatio]]
3850e5c31af7Sopenharmony_ci    pname:maxSubpassShadingWorkgroupSizeAspectRatio indicates the maximum
3851e5c31af7Sopenharmony_ci    ratio between the width and height of the portion of the subpass shading
3852e5c31af7Sopenharmony_ci    shader workgroup size.
3853e5c31af7Sopenharmony_ci    pname:maxSubpassShadingWorkgroupSizeAspectRatio must: be a power-of-two
3854e5c31af7Sopenharmony_ci    value, and must: be less than or equal to max(code:WorkgroupSize.x /
3855e5c31af7Sopenharmony_ci    code:WorkgroupSize.y, code:WorkgroupSize.y / code:WorkgroupSize.x).
3856e5c31af7Sopenharmony_ci
3857e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubpassShadingPropertiesHUAWEI
3858e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3859e5c31af7Sopenharmony_ci
3860e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubpassShadingPropertiesHUAWEI.adoc[]
3861e5c31af7Sopenharmony_ci--
3862e5c31af7Sopenharmony_ciendif::VK_HUAWEI_subpass_shading[]
3863e5c31af7Sopenharmony_ci
3864e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
3865e5c31af7Sopenharmony_ci
3866e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiDrawPropertiesEXT',desc='Structure describing multidraw limits of an implementation',type='structs']
3867e5c31af7Sopenharmony_ci--
3868e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiDrawPropertiesEXT structure is defined as:
3869e5c31af7Sopenharmony_ci
3870e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiDrawPropertiesEXT.adoc[]
3871e5c31af7Sopenharmony_ci
3872e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceMultiDrawPropertiesEXT structure
3873e5c31af7Sopenharmony_cidescribe the following features:
3874e5c31af7Sopenharmony_ci
3875e5c31af7Sopenharmony_ci  * [[limits-maxMultiDrawCount]] pname:maxMultiDrawCount indicates the
3876e5c31af7Sopenharmony_ci    maximum number of draw calls which can: be batched into a single
3877e5c31af7Sopenharmony_ci    multidraw.
3878e5c31af7Sopenharmony_ci
3879e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiDrawPropertiesEXT
3880e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3881e5c31af7Sopenharmony_ci
3882e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiDrawPropertiesEXT.adoc[]
3883e5c31af7Sopenharmony_ci--
3884e5c31af7Sopenharmony_ci
3885e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
3886e5c31af7Sopenharmony_ci
3887e5c31af7Sopenharmony_ciifdef::VK_EXT_nested_command_buffer[]
3888e5c31af7Sopenharmony_ci
3889e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceNestedCommandBufferPropertiesEXT',desc='Structure describing the nested command buffer limits of an implementation',type='structs']
3890e5c31af7Sopenharmony_ci--
3891e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceNestedCommandBufferPropertiesEXT structure is
3892e5c31af7Sopenharmony_cidefined as:
3893e5c31af7Sopenharmony_ci
3894e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceNestedCommandBufferPropertiesEXT.adoc[]
3895e5c31af7Sopenharmony_ci
3896e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceNestedCommandBufferPropertiesEXT
3897e5c31af7Sopenharmony_cistructure describe the following features:
3898e5c31af7Sopenharmony_ci
3899e5c31af7Sopenharmony_ci  * [[limits-maxCommandBufferNestingLevel]]
3900e5c31af7Sopenharmony_ci    pname:maxCommandBufferNestingLevel indicates the maximum nesting level
3901e5c31af7Sopenharmony_ci    of calls to flink:vkCmdExecuteCommands from <<glossary, Secondary
3902e5c31af7Sopenharmony_ci    Command Buffers>>.
3903e5c31af7Sopenharmony_ci    A pname:maxCommandBufferNestingLevel of code:UINT32_MAX means there is
3904e5c31af7Sopenharmony_ci    no limit to the nesting level.
3905e5c31af7Sopenharmony_ci
3906e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceNestedCommandBufferPropertiesEXT
3907e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3908e5c31af7Sopenharmony_ci
3909e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceNestedCommandBufferPropertiesEXT.adoc[]
3910e5c31af7Sopenharmony_ci--
3911e5c31af7Sopenharmony_ci
3912e5c31af7Sopenharmony_ciendif::VK_EXT_nested_command_buffer[]
3913e5c31af7Sopenharmony_ci
3914e5c31af7Sopenharmony_ciifdef::VK_EXT_graphics_pipeline_library[]
3915e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT',desc='Structure describing additional properties of graphics pipeline libraries',type='structs']
3916e5c31af7Sopenharmony_ci--
3917e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT structure is
3918e5c31af7Sopenharmony_cidefined as:
3919e5c31af7Sopenharmony_ci
3920e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT.adoc[]
3921e5c31af7Sopenharmony_ci
3922e5c31af7Sopenharmony_ci  * [[limits-graphicsPipelineLibraryFastLinking]]
3923e5c31af7Sopenharmony_ci    pname:graphicsPipelineLibraryFastLinking indicates whether fast linking
3924e5c31af7Sopenharmony_ci    of graphics pipelines is supported.
3925e5c31af7Sopenharmony_ci    If it is ename:VK_TRUE, creating a graphics pipeline entirely from
3926e5c31af7Sopenharmony_ci    pipeline libraries without
3927e5c31af7Sopenharmony_ci    ename:VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT is comparable in
3928e5c31af7Sopenharmony_ci    cost to recording a command in a command buffer.
3929e5c31af7Sopenharmony_ci  * [[limits-graphicsPipelineLibraryIndependentInterpolationDecoration]]
3930e5c31af7Sopenharmony_ci    pname:graphicsPipelineLibraryIndependentInterpolationDecoration
3931e5c31af7Sopenharmony_ci    indicates whether code:NoPerspective and code:Flat interpolation
3932e5c31af7Sopenharmony_ci    decorations in the last vertex processing stage and the fragment shader
3933e5c31af7Sopenharmony_ci    are required to match when using graphics pipeline libraries.
3934e5c31af7Sopenharmony_ci    If it is ename:VK_TRUE, the interpolation decorations do not need to
3935e5c31af7Sopenharmony_ci    match.
3936e5c31af7Sopenharmony_ci    If it is ename:VK_FALSE, these decorations must: either be present in
3937e5c31af7Sopenharmony_ci    both stages or neither stage in order for a given interface variable to
3938e5c31af7Sopenharmony_ci    match.
3939e5c31af7Sopenharmony_ci
3940e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
3941e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3942e5c31af7Sopenharmony_ci
3943e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT.adoc[]
3944e5c31af7Sopenharmony_ci--
3945e5c31af7Sopenharmony_ci
3946e5c31af7Sopenharmony_ciendif::VK_EXT_graphics_pipeline_library[]
3947e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shader_barycentric[]
3948e5c31af7Sopenharmony_ci
3949e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR',desc='Structure describing fragment shader barycentric limits of an implementation',type='structs']
3950e5c31af7Sopenharmony_ci--
3951e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR structure
3952e5c31af7Sopenharmony_ciis defined as:
3953e5c31af7Sopenharmony_ci
3954e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR.adoc[]
3955e5c31af7Sopenharmony_ci
3956e5c31af7Sopenharmony_ci  * [[limits-triStripVertexOrderIndependentOfProvokingVertex]] When the
3957e5c31af7Sopenharmony_ci    <<vertexpostproc-flatshading,provoking vertex mode>> is
3958e5c31af7Sopenharmony_ci    ename:VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT, and the primitive order
3959e5c31af7Sopenharmony_ci    is odd in a triangle strip, the ordering of vertices is defined in
3960e5c31af7Sopenharmony_ci    <<primsrast-barycentric-order-table-last-vertex, last vertex table>>.
3961e5c31af7Sopenharmony_ci    pname:triStripVertexOrderIndependentOfProvokingVertex equal to
3962e5c31af7Sopenharmony_ci    ename:VK_TRUE indicates that the implementation ignores this and uses
3963e5c31af7Sopenharmony_ci    the vertex order defined by
3964e5c31af7Sopenharmony_ci    ename:VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT instead.
3965e5c31af7Sopenharmony_ci
3966e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
3967e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
3968e5c31af7Sopenharmony_ci
3969e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR.adoc[]
3970e5c31af7Sopenharmony_ci--
3971e5c31af7Sopenharmony_ci
3972e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shader_barycentric[]
3973e5c31af7Sopenharmony_ci
3974e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_module_identifier[]
3975e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT',desc='Structure describing shader module identifier properties of an implementation',type='structs']
3976e5c31af7Sopenharmony_ci--
3977e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT structure is
3978e5c31af7Sopenharmony_cidefined as:
3979e5c31af7Sopenharmony_ci
3980e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT.adoc[]
3981e5c31af7Sopenharmony_ci
3982e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
3983e5c31af7Sopenharmony_cistructure describe the following:
3984e5c31af7Sopenharmony_ci
3985e5c31af7Sopenharmony_ci  * [[limits-shaderModuleIdentifierAlgorithmUUID]]
3986e5c31af7Sopenharmony_ci    pname:shaderModuleIdentifierAlgorithmUUID is an array of
3987e5c31af7Sopenharmony_ci    ename:VK_UUID_SIZE code:uint8_t values which uniquely represents the
3988e5c31af7Sopenharmony_ci    algorithm used to compute an identifier in
3989e5c31af7Sopenharmony_ci    flink:vkGetShaderModuleIdentifierEXT and
3990e5c31af7Sopenharmony_ci    flink:vkGetShaderModuleCreateInfoIdentifierEXT.
3991e5c31af7Sopenharmony_ci    Implementations should: not change this value in different driver
3992e5c31af7Sopenharmony_ci    versions if the algorithm used to compute an identifier is the same.
3993e5c31af7Sopenharmony_ci
3994e5c31af7Sopenharmony_ci[NOTE]
3995e5c31af7Sopenharmony_ci.Note
3996e5c31af7Sopenharmony_ci====
3997e5c31af7Sopenharmony_ciThe algorithm UUID may be the same in different ICDs if the algorithms are
3998e5c31af7Sopenharmony_ciguaranteed to produce the same results.
3999e5c31af7Sopenharmony_ciThis may happen in driver stacks which support different kinds of hardware
4000e5c31af7Sopenharmony_ciwith shared code.
4001e5c31af7Sopenharmony_ci
4002e5c31af7Sopenharmony_ciKhronos' conformance testing can not guarantee that
4003e5c31af7Sopenharmony_cipname:shaderModuleIdentifierAlgorithmUUID values are actually unique, so
4004e5c31af7Sopenharmony_ciimplementors should make their own best efforts to ensure that their UUID is
4005e5c31af7Sopenharmony_ciunlikely to conflict with other implementations which may use a different
4006e5c31af7Sopenharmony_cialgorithm.
4007e5c31af7Sopenharmony_ciIn particular, hard-coded values which easily conflict, such as all-`0`
4008e5c31af7Sopenharmony_cibits, should: never be used.
4009e5c31af7Sopenharmony_ciHard-coded values are acceptable if best effort is ensured that the value
4010e5c31af7Sopenharmony_ciwill not accidentally conflict.
4011e5c31af7Sopenharmony_ci====
4012e5c31af7Sopenharmony_ci
4013e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
4014e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4015e5c31af7Sopenharmony_ci
4016e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT.adoc[]
4017e5c31af7Sopenharmony_ci--
4018e5c31af7Sopenharmony_ci
4019e5c31af7Sopenharmony_ciendif::VK_EXT_shader_module_identifier[]
4020e5c31af7Sopenharmony_ci
4021e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_robustness[]
4022e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineRobustnessPropertiesEXT',desc='Structure describing the default robustness behavior of a physical device',type='structs']
4023e5c31af7Sopenharmony_ci--
4024e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineRobustnessPropertiesEXT structure is
4025e5c31af7Sopenharmony_cidefined as:
4026e5c31af7Sopenharmony_ci
4027e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineRobustnessPropertiesEXT.adoc[]
4028e5c31af7Sopenharmony_ci
4029e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4030e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4031e5c31af7Sopenharmony_ci    structure.
4032e5c31af7Sopenharmony_ci  * pname:defaultRobustnessStorageBuffers describes the behaviour of out of
4033e5c31af7Sopenharmony_ci    bounds accesses made to storage buffers when no robustness features are
4034e5c31af7Sopenharmony_ci    enabled
4035e5c31af7Sopenharmony_ci  * pname:defaultRobustnessUniformBuffers describes the behaviour of out of
4036e5c31af7Sopenharmony_ci    bounds accesses made to uniform buffers when no robustness features are
4037e5c31af7Sopenharmony_ci    enabled
4038e5c31af7Sopenharmony_ci  * pname:defaultRobustnessVertexInputs describes the behaviour of out of
4039e5c31af7Sopenharmony_ci    bounds accesses made to vertex input attributes when no robustness
4040e5c31af7Sopenharmony_ci    features are enabled
4041e5c31af7Sopenharmony_ci  * pname:defaultRobustnessImages describes the behaviour of out of bounds
4042e5c31af7Sopenharmony_ci    accesses made to images when no robustness features are enabled
4043e5c31af7Sopenharmony_ci
4044e5c31af7Sopenharmony_ciSome implementations of Vulkan may be able to guarantee that certain types
4045e5c31af7Sopenharmony_ciof accesses are always performed with robustness even when the Vulkan API's
4046e5c31af7Sopenharmony_cirobustness features are not explicitly enabled.
4047e5c31af7Sopenharmony_ci
4048e5c31af7Sopenharmony_ciEven when an implementation reports that accesses to a given resource type
4049e5c31af7Sopenharmony_ciare robust by default, it remains invalid to make an out of bounds access
4050e5c31af7Sopenharmony_ciwithout requesting the appropriate robustness feature.
4051e5c31af7Sopenharmony_ci
4052e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineRobustnessPropertiesEXT
4053e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4054e5c31af7Sopenharmony_ci
4055e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineRobustnessPropertiesEXT.adoc[]
4056e5c31af7Sopenharmony_ci--
4057e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_robustness[]
4058e5c31af7Sopenharmony_ci
4059e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state3[]
4060e5c31af7Sopenharmony_ci
4061e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicState3PropertiesEXT',desc='Structure describing capabilities of extended dynamic state',type='structs']
4062e5c31af7Sopenharmony_ci--
4063e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicState3PropertiesEXT structure is
4064e5c31af7Sopenharmony_cidefined as:
4065e5c31af7Sopenharmony_ci
4066e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicState3PropertiesEXT.adoc[]
4067e5c31af7Sopenharmony_ci
4068e5c31af7Sopenharmony_ci  * [[limits-dynamicPrimitiveTopologyUnrestricted]]
4069e5c31af7Sopenharmony_ci    pname:dynamicPrimitiveTopologyUnrestricted indicates that the
4070e5c31af7Sopenharmony_ci    implementation allows fname:vkCmdSetPrimitiveTopology to use a different
4071e5c31af7Sopenharmony_ci    <<drawing-primitive-topology-class, primitive topology class>> to the
4072e5c31af7Sopenharmony_ci    one specified in the active graphics pipeline.
4073e5c31af7Sopenharmony_ci
4074e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicState3PropertiesEXT
4075e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4076e5c31af7Sopenharmony_ci
4077e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicState3PropertiesEXT.adoc[]
4078e5c31af7Sopenharmony_ci--
4079e5c31af7Sopenharmony_ci
4080e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state3[]
4081e5c31af7Sopenharmony_ci
4082e5c31af7Sopenharmony_ciifdef::VK_NV_optical_flow[]
4083e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceOpticalFlowPropertiesNV',desc='Structure describing properties supported by VK_NV_optical_flow',type='structs']
4084e5c31af7Sopenharmony_ci--
4085e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceOpticalFlowPropertiesNV structure is defined as:
4086e5c31af7Sopenharmony_ci
4087e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceOpticalFlowPropertiesNV.adoc[]
4088e5c31af7Sopenharmony_ci
4089e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4090e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4091e5c31af7Sopenharmony_ci    structure.
4092e5c31af7Sopenharmony_ci  * [[limits-supportedOutputGridSizes]] pname:supportedOutputGridSizes are
4093e5c31af7Sopenharmony_ci    the supported tlink:VkOpticalFlowGridSizeFlagsNV which can be specified
4094e5c31af7Sopenharmony_ci    in sname:VkOpticalFlowSessionCreateInfoNV::pname:outputGridSize.
4095e5c31af7Sopenharmony_ci  * [[limits-supportedHintGridSizes]] pname:supportedHintGridSizes are the
4096e5c31af7Sopenharmony_ci    supported tlink:VkOpticalFlowGridSizeFlagsNV which can be specified in
4097e5c31af7Sopenharmony_ci    sname:VkOpticalFlowSessionCreateInfoNV::pname:hintGridSize.
4098e5c31af7Sopenharmony_ci  * [[limits-hintSupported]] pname:hintSupported is a boolean describing
4099e5c31af7Sopenharmony_ci    whether using hint flow vector map is supported in an optical flow
4100e5c31af7Sopenharmony_ci    session.
4101e5c31af7Sopenharmony_ci  * [[limits-costSupported]] pname:costSupported is a boolean describing
4102e5c31af7Sopenharmony_ci    whether cost map generation is supported in an optical flow session.
4103e5c31af7Sopenharmony_ci  * [[limits-bidirectionalFlowSupported]] pname:bidirectionalFlowSupported
4104e5c31af7Sopenharmony_ci    is a boolean describing whether bi-directional flow generation is
4105e5c31af7Sopenharmony_ci    supported in an optical flow session.
4106e5c31af7Sopenharmony_ci  * [[limits-globalFlowSupported]] pname:globalFlowSupported is a boolean
4107e5c31af7Sopenharmony_ci    describing whether global flow vector map generation is supported in an
4108e5c31af7Sopenharmony_ci    optical flow session.
4109e5c31af7Sopenharmony_ci  * [[limits-minWidth]] pname:minWidth is the minimum width in pixels for
4110e5c31af7Sopenharmony_ci    images used in an optical flow session.
4111e5c31af7Sopenharmony_ci  * [[limits-minHeight]] pname:minHeight is the minimum height in pixels for
4112e5c31af7Sopenharmony_ci    images used in an optical flow session.
4113e5c31af7Sopenharmony_ci  * [[limits-maxWidth]] pname:maxWidth is the maximum width in pixels for
4114e5c31af7Sopenharmony_ci    images used in an optical flow session.
4115e5c31af7Sopenharmony_ci  * [[limits-maxHeight]] pname:maxHeight is the maximum height in pixels for
4116e5c31af7Sopenharmony_ci    images used in an optical flow session.
4117e5c31af7Sopenharmony_ci  * [[limits-maxNumRegionsOfInterest]] pname:maxNumRegionsOfInterest is the
4118e5c31af7Sopenharmony_ci    maximum number of regions of interest which can be used in an optical
4119e5c31af7Sopenharmony_ci    flow session.
4120e5c31af7Sopenharmony_ci    If this pname:maxNumRegionsOfInterest is 0, regions of interest are not
4121e5c31af7Sopenharmony_ci    supported in an optical flow session.
4122e5c31af7Sopenharmony_ci
4123e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceOpticalFlowPropertiesNV
4124e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4125e5c31af7Sopenharmony_ci
4126e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceOpticalFlowPropertiesNV.adoc[]
4127e5c31af7Sopenharmony_ci--
4128e5c31af7Sopenharmony_ciendif::VK_NV_optical_flow[]
4129e5c31af7Sopenharmony_ci
4130e5c31af7Sopenharmony_ciifdef::VK_EXT_opacity_micromap[]
4131e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceOpacityMicromapPropertiesEXT',desc='Structure describing the opacity micromap properties of a physical device',type='structs']
4132e5c31af7Sopenharmony_ci--
4133e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceOpacityMicromapPropertiesEXT structure is defined
4134e5c31af7Sopenharmony_cias:
4135e5c31af7Sopenharmony_ci
4136e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceOpacityMicromapPropertiesEXT.adoc[]
4137e5c31af7Sopenharmony_ci
4138e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4139e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4140e5c31af7Sopenharmony_ci    structure.
4141e5c31af7Sopenharmony_ci  * pname:maxOpacity2StateSubdivisionLevel is the maximum allowed
4142e5c31af7Sopenharmony_ci    pname:subdivisionLevel when pname:format is
4143e5c31af7Sopenharmony_ci    ename:VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT
4144e5c31af7Sopenharmony_ci  * pname:maxOpacity4StateSubdivisionLevel is the maximum allowed
4145e5c31af7Sopenharmony_ci    pname:subdivisionLevel when pname:format is
4146e5c31af7Sopenharmony_ci    ename:VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT
4147e5c31af7Sopenharmony_ci
4148e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceOpacityMicromapPropertiesEXT
4149e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4150e5c31af7Sopenharmony_ci
4151e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceOpacityMicromapPropertiesEXT.adoc[]
4152e5c31af7Sopenharmony_ci--
4153e5c31af7Sopenharmony_ciendif::VK_EXT_opacity_micromap[]
4154e5c31af7Sopenharmony_ci
4155e5c31af7Sopenharmony_ciifdef::VK_NV_displacement_micromap[]
4156e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDisplacementMicromapPropertiesNV',desc='Structure describing the displacement micromap properties of a physical device',type='structs']
4157e5c31af7Sopenharmony_ci--
4158e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDisplacementMicromapPropertiesNV structure is
4159e5c31af7Sopenharmony_cidefined as:
4160e5c31af7Sopenharmony_ci
4161e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDisplacementMicromapPropertiesNV.adoc[]
4162e5c31af7Sopenharmony_ci
4163e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4164e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4165e5c31af7Sopenharmony_ci    structure.
4166e5c31af7Sopenharmony_ci  * pname:maxDisplacementMicromapSubdivisionLevel is the maximum allowed
4167e5c31af7Sopenharmony_ci    pname:subdivisionLevel for displacement micromaps.
4168e5c31af7Sopenharmony_ci
4169e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDisplacementMicromapPropertiesNV
4170e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4171e5c31af7Sopenharmony_ci
4172e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDisplacementMicromapPropertiesNV.adoc[]
4173e5c31af7Sopenharmony_ci--
4174e5c31af7Sopenharmony_ciendif::VK_NV_displacement_micromap[]
4175e5c31af7Sopenharmony_ci
4176e5c31af7Sopenharmony_ciifdef::VK_ARM_shader_core_builtins[]
4177e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM',desc='Structure describing shader core builtins properties supported by an implementation',type='structs']
4178e5c31af7Sopenharmony_ci--
4179e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM structure is
4180e5c31af7Sopenharmony_cidefined as:
4181e5c31af7Sopenharmony_ci
4182e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM.adoc[]
4183e5c31af7Sopenharmony_ci
4184e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4185e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4186e5c31af7Sopenharmony_ci    structure.
4187e5c31af7Sopenharmony_ci  * [[limits-shaderCoreMask]] pname:shaderCoreMask is a bitfield where each
4188e5c31af7Sopenharmony_ci    bit set represents the presence of a shader core whose ID is the bit
4189e5c31af7Sopenharmony_ci    position.
4190e5c31af7Sopenharmony_ci    The highest ID for any shader core on the device is the position of the
4191e5c31af7Sopenharmony_ci    most significant bit set.
4192e5c31af7Sopenharmony_ci  * [[limits-shaderCoreCount]] pname:shaderCoreCount is the number of shader
4193e5c31af7Sopenharmony_ci    cores on the device.
4194e5c31af7Sopenharmony_ci  * [[limits-shaderWarpsPerCore]] pname:shaderWarpsPerCore is the maximum
4195e5c31af7Sopenharmony_ci    number of simultaneously executing warps on a shader core.
4196e5c31af7Sopenharmony_ci
4197e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM
4198e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4199e5c31af7Sopenharmony_ci
4200e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM.adoc[]
4201e5c31af7Sopenharmony_ci--
4202e5c31af7Sopenharmony_ciendif::VK_ARM_shader_core_builtins[]
4203e5c31af7Sopenharmony_ci
4204e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_invocation_reorder[]
4205e5c31af7Sopenharmony_ci[open,refpage='VkRayTracingInvocationReorderModeNV',desc='Enum providing a hint on how the application may: reorder',type='enums']
4206e5c31af7Sopenharmony_ci--
4207e5c31af7Sopenharmony_ciValues which may: be returned in the
4208e5c31af7Sopenharmony_cipname:rayTracingInvocationReorderReorderingHint field of
4209e5c31af7Sopenharmony_cisname:VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV are:
4210e5c31af7Sopenharmony_ci
4211e5c31af7Sopenharmony_ciinclude::{generated}/api/enums/VkRayTracingInvocationReorderModeNV.adoc[]
4212e5c31af7Sopenharmony_ci
4213e5c31af7Sopenharmony_ci  * ename:VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV indicates that the
4214e5c31af7Sopenharmony_ci    implementation is likely to not reorder at reorder calls.
4215e5c31af7Sopenharmony_ci  * ename:VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV indicates that
4216e5c31af7Sopenharmony_ci    the implementation is likely to reorder at reorder calls.
4217e5c31af7Sopenharmony_ci--
4218e5c31af7Sopenharmony_ci
4219e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV',desc='Structure describing shader module identifier properties of an implementation',type='structs']
4220e5c31af7Sopenharmony_ci--
4221e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV structure
4222e5c31af7Sopenharmony_ciis defined as:
4223e5c31af7Sopenharmony_ci
4224e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV.adoc[]
4225e5c31af7Sopenharmony_ci
4226e5c31af7Sopenharmony_ci  * pname:rayTracingInvocationReorderReorderingHint is a hint indicating if
4227e5c31af7Sopenharmony_ci    the implementation will actually reorder at the reorder calls.
4228e5c31af7Sopenharmony_ci
4229e5c31af7Sopenharmony_ci[NOTE]
4230e5c31af7Sopenharmony_ci.Note
4231e5c31af7Sopenharmony_ci====
4232e5c31af7Sopenharmony_ciBecause the extension changes how hits are managed there is a compatibility
4233e5c31af7Sopenharmony_cireason to expose the extension even when an implementation does not have
4234e5c31af7Sopenharmony_cisorting active.
4235e5c31af7Sopenharmony_ci====
4236e5c31af7Sopenharmony_ci
4237e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV
4238e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4239e5c31af7Sopenharmony_ci
4240e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV.adoc[]
4241e5c31af7Sopenharmony_ci--
4242e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing_invocation_reorder[]
4243e5c31af7Sopenharmony_ci
4244e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_cluster_culling_shader[]
4245e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI',desc='Structure describing cluster culling shader properties supported by an implementation',type='structs']
4246e5c31af7Sopenharmony_ci--
4247e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI structure is
4248e5c31af7Sopenharmony_cidefined as:
4249e5c31af7Sopenharmony_ci
4250e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI.adoc[]
4251e5c31af7Sopenharmony_ci
4252e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4253e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4254e5c31af7Sopenharmony_ci    structure.
4255e5c31af7Sopenharmony_ci  * pname:maxWorkGroupCount[3] is the maximum number of local workgroups
4256e5c31af7Sopenharmony_ci    that can be launched by a single command.
4257e5c31af7Sopenharmony_ci    These three value represent the maximum local workgroup count in the X,
4258e5c31af7Sopenharmony_ci    Y and Z dimensions, respectively.
4259e5c31af7Sopenharmony_ci    In the current implementation, the values of Y and Z are both implicitly
4260e5c31af7Sopenharmony_ci    set as one.
4261e5c31af7Sopenharmony_ci    groupCountX of DrawCluster command must be less than or equal to
4262e5c31af7Sopenharmony_ci    maxWorkGroupCount[0].
4263e5c31af7Sopenharmony_ci  * pname:maxWorkGroupSize[3] is the maximum size of a local workgroup.
4264e5c31af7Sopenharmony_ci    These three value represent the maximum local workgroup size in the X, Y
4265e5c31af7Sopenharmony_ci    and Z dimensions, respectively.
4266e5c31af7Sopenharmony_ci    The x, y and z sizes, as specified by the code:LocalSize
4267e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[or code:LocalSizeId]
4268e5c31af7Sopenharmony_ci    execution mode or by the object decorated by the WorkgroupSize
4269e5c31af7Sopenharmony_ci    decoration in shader modules, must be less than or equal to the
4270e5c31af7Sopenharmony_ci    corresponding limit.
4271e5c31af7Sopenharmony_ci    In the current implementation, the maximum workgroup size of the X
4272e5c31af7Sopenharmony_ci    dimension is 32, the others are 1.
4273e5c31af7Sopenharmony_ci  * pname:maxOutputClusterCount is the maximum number of output cluster a
4274e5c31af7Sopenharmony_ci    single cluster culling shader workgroup can emit.
4275e5c31af7Sopenharmony_ci  * pname:indirectBufferOffsetAlignment indicates the alignment for cluster
4276e5c31af7Sopenharmony_ci    drawing command buffer stride.
4277e5c31af7Sopenharmony_ci    flink:vkCmdDrawClusterIndirectHUAWEI::pname:offset must be a multiple of
4278e5c31af7Sopenharmony_ci    this value.
4279e5c31af7Sopenharmony_ci
4280e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI
4281e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4282e5c31af7Sopenharmony_ci
4283e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI.adoc[]
4284e5c31af7Sopenharmony_ci--
4285e5c31af7Sopenharmony_ciendif::VK_HUAWEI_cluster_culling_shader[]
4286e5c31af7Sopenharmony_ci
4287e5c31af7Sopenharmony_ciifdef::VK_ARM_shader_core_properties[]
4288e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderCorePropertiesARM',desc='Structure describing shader core properties that can be supported by an implementation',type='structs']
4289e5c31af7Sopenharmony_ci--
4290e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderCorePropertiesARM structure is defined as:
4291e5c31af7Sopenharmony_ci
4292e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderCorePropertiesARM.adoc[]
4293e5c31af7Sopenharmony_ci
4294e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4295e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4296e5c31af7Sopenharmony_ci    structure.
4297e5c31af7Sopenharmony_ci  * pname:pixelRate is an unsigned integer value indicating the maximum
4298e5c31af7Sopenharmony_ci    number of pixels output per clock per shader core.
4299e5c31af7Sopenharmony_ci  * pname:texelRate is an unsigned integer value indicating the maximum
4300e5c31af7Sopenharmony_ci    number of texels per clock per shader core.
4301e5c31af7Sopenharmony_ci  * pname:fmaRate is an unsigned integer value indicating the maximum number
4302e5c31af7Sopenharmony_ci    of single-precision fused multiply-add operations per clock per shader
4303e5c31af7Sopenharmony_ci    core.
4304e5c31af7Sopenharmony_ci
4305e5c31af7Sopenharmony_ciIf a throughput rate cannot be determined on the physical device, the value
4306e5c31af7Sopenharmony_ci`0` will be returned for that rate.
4307e5c31af7Sopenharmony_ci
4308e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderCorePropertiesARM
4309e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4310e5c31af7Sopenharmony_ci
4311e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderCorePropertiesARM.adoc[]
4312e5c31af7Sopenharmony_ci--
4313e5c31af7Sopenharmony_ciendif::VK_ARM_shader_core_properties[]
4314e5c31af7Sopenharmony_ci
4315e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_object[]
4316e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderObjectPropertiesEXT',desc='Structure describing shader object properties supported by an implementation',type='structs']
4317e5c31af7Sopenharmony_ci--
4318e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderObjectPropertiesEXT structure is defined as:
4319e5c31af7Sopenharmony_ci
4320e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderObjectPropertiesEXT.adoc[]
4321e5c31af7Sopenharmony_ci
4322e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4323e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4324e5c31af7Sopenharmony_ci    structure.
4325e5c31af7Sopenharmony_ci  * [[limits-shaderBinaryUUID]] pname:shaderBinaryUUID is an array of
4326e5c31af7Sopenharmony_ci    ename:VK_UUID_SIZE code:uint8_t values representing a universally unique
4327e5c31af7Sopenharmony_ci    identifier for one or more implementations whose shader binaries are
4328e5c31af7Sopenharmony_ci    guaranteed to be compatible with each other.
4329e5c31af7Sopenharmony_ci  * [[limits-shaderBinaryVersion]] pname:shaderBinaryVersion is an unsigned
4330e5c31af7Sopenharmony_ci    integer incremented to represent backwards compatible differences
4331e5c31af7Sopenharmony_ci    between implementations with the same pname:shaderBinaryUUID.
4332e5c31af7Sopenharmony_ci
4333e5c31af7Sopenharmony_ciThe purpose and usage of the values of this structure are described in
4334e5c31af7Sopenharmony_cigreater detail in <<shaders-objects-binary-compatibility, Binary Shader
4335e5c31af7Sopenharmony_ciCompatibility>>.
4336e5c31af7Sopenharmony_ci
4337e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderObjectPropertiesEXT
4338e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4339e5c31af7Sopenharmony_ci
4340e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderObjectPropertiesEXT.adoc[]
4341e5c31af7Sopenharmony_ci--
4342e5c31af7Sopenharmony_ciendif::VK_EXT_shader_object[]
4343e5c31af7Sopenharmony_ci
4344e5c31af7Sopenharmony_ci
4345e5c31af7Sopenharmony_ciifdef::VK_AMDX_shader_enqueue[]
4346e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderEnqueuePropertiesAMDX',desc='Structure describing shader enqueue limits of an implementation',type='structs']
4347e5c31af7Sopenharmony_ci--
4348e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderEnqueuePropertiesAMDX structure is defined
4349e5c31af7Sopenharmony_cias:
4350e5c31af7Sopenharmony_ci
4351e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderEnqueuePropertiesAMDX.adoc[]
4352e5c31af7Sopenharmony_ci
4353e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceShaderEnqueuePropertiesAMDX
4354e5c31af7Sopenharmony_cistructure describe the following limits:
4355e5c31af7Sopenharmony_ci
4356e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4357e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4358e5c31af7Sopenharmony_ci    structure.
4359e5c31af7Sopenharmony_ci  * [[limits-maxExecutionGraphDepth]] pname:maxExecutionGraphDepth defines
4360e5c31af7Sopenharmony_ci    the maximum node chain depth in the graph.
4361e5c31af7Sopenharmony_ci    The dispatched node is at depth 1 and the node enqueued by it is at
4362e5c31af7Sopenharmony_ci    depth 2, and so on.
4363e5c31af7Sopenharmony_ci    If a node enqueues itself, each recursive enqueue increases the depth by
4364e5c31af7Sopenharmony_ci    1 as well.
4365e5c31af7Sopenharmony_ci  * [[limits-maxExecutionGraphShaderOutputNodes]]
4366e5c31af7Sopenharmony_ci    pname:maxExecutionGraphShaderOutputNodes specifies the maximum number of
4367e5c31af7Sopenharmony_ci    unique nodes that can be dispatched from a single shader, and must be at
4368e5c31af7Sopenharmony_ci    least 256.
4369e5c31af7Sopenharmony_ci  * [[limits-maxExecutionGraphShaderPayloadSize]]
4370e5c31af7Sopenharmony_ci    pname:maxExecutionGraphShaderPayloadSize specifies the maximum total
4371e5c31af7Sopenharmony_ci    size of payload declarations in a shader.
4372e5c31af7Sopenharmony_ci    For any payload declarations that share resources, indicated by
4373e5c31af7Sopenharmony_ci    code:NodeSharesPayloadLimitsWithAMDX decorations, the maximum size of
4374e5c31af7Sopenharmony_ci    each set of shared payload declarations is taken.
4375e5c31af7Sopenharmony_ci    The sum of each shared set's maximum size and the size of each unshared
4376e5c31af7Sopenharmony_ci    payload is counted against this limit.
4377e5c31af7Sopenharmony_ci  * [[limits-maxExecutionGraphShaderPayloadCount]]
4378e5c31af7Sopenharmony_ci    pname:maxExecutionGraphShaderPayloadCount specifies the maximum number
4379e5c31af7Sopenharmony_ci    of output payloads that can be initialized in a single workgroup.
4380e5c31af7Sopenharmony_ci  * [[limits-executionGraphDispatchAddressAlignment]]
4381e5c31af7Sopenharmony_ci    pname:executionGraphDispatchAddressAlignment specifies the alignment of
4382e5c31af7Sopenharmony_ci    non-scratch basetype:VkDeviceAddress arguments consumed by graph
4383e5c31af7Sopenharmony_ci    dispatch commands.
4384e5c31af7Sopenharmony_ci
4385e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderEnqueuePropertiesAMDX
4386e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4387e5c31af7Sopenharmony_ci
4388e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderEnqueuePropertiesAMDX.adoc[]
4389e5c31af7Sopenharmony_ci--
4390e5c31af7Sopenharmony_ciendif::VK_AMDX_shader_enqueue[]
4391e5c31af7Sopenharmony_ci
4392e5c31af7Sopenharmony_ciifdef::VK_NV_extended_sparse_address_space[]
4393e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV',desc='Structure describing sparse address space limits of an implementation',type='structs']
4394e5c31af7Sopenharmony_ci--
4395e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV structure
4396e5c31af7Sopenharmony_ciis defined as:
4397e5c31af7Sopenharmony_ci
4398e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV.adoc[]
4399e5c31af7Sopenharmony_ci
4400e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4401e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4402e5c31af7Sopenharmony_ci    structure.
4403e5c31af7Sopenharmony_ci  * [[limits-extendedSparseAddressSpaceSize]]
4404e5c31af7Sopenharmony_ci    pname:extendedSparseAddressSpaceSize is the total amount of address
4405e5c31af7Sopenharmony_ci    space available, in bytes, for sparse memory resources of all usages if
4406e5c31af7Sopenharmony_ci    the <<features-extendedSparseAddressSpace,
4407e5c31af7Sopenharmony_ci    pname:extendedSparseAddressSpace>> feature is enabled.
4408e5c31af7Sopenharmony_ci    This must: be greater than or equal to
4409e5c31af7Sopenharmony_ci    sname:VkPhysicalDeviceLimits::pname:sparseAddressSpaceSize, and the
4410e5c31af7Sopenharmony_ci    difference in space must: only be used with usages allowed below.
4411e5c31af7Sopenharmony_ci    This is an upper bound on the sum of the sizes of all sparse resources,
4412e5c31af7Sopenharmony_ci    regardless of whether any memory is bound to them.
4413e5c31af7Sopenharmony_ci  * [[limits-extendedSparseImageUsageFlags]]
4414e5c31af7Sopenharmony_ci    pname:extendedSparseImageUsageFlags is a bitmask of
4415e5c31af7Sopenharmony_ci    elink:VkImageUsageFlagBits of usages which may: allow an implementation
4416e5c31af7Sopenharmony_ci    to use the full pname:extendedSparseAddressSpaceSize space.
4417e5c31af7Sopenharmony_ci  * [[limits-extendedSparseBufferUsageFlags]]
4418e5c31af7Sopenharmony_ci    pname:extendedSparseBufferUsageFlags is a bitmask of
4419e5c31af7Sopenharmony_ci    elink:VkBufferUsageFlagBits of usages which may: allow an implementation
4420e5c31af7Sopenharmony_ci    to use the full pname:extendedSparseAddressSpaceSize space.
4421e5c31af7Sopenharmony_ci
4422e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV
4423e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4424e5c31af7Sopenharmony_ci
4425e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV.adoc[]
4426e5c31af7Sopenharmony_ci--
4427e5c31af7Sopenharmony_ciendif::VK_NV_extended_sparse_address_space[]
4428e5c31af7Sopenharmony_ci
4429e5c31af7Sopenharmony_ciifdef::VK_NV_cuda_kernel_launch[]
4430e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCudaKernelLaunchPropertiesNV',desc='Structure describing the compute capability version available',type='structs']
4431e5c31af7Sopenharmony_ci--
4432e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCudaKernelLaunchPropertiesNV structure is defined
4433e5c31af7Sopenharmony_cias:
4434e5c31af7Sopenharmony_ci
4435e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCudaKernelLaunchPropertiesNV.adoc[]
4436e5c31af7Sopenharmony_ci
4437e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceCudaKernelLaunchPropertiesNV
4438e5c31af7Sopenharmony_cistructure describe the following features:
4439e5c31af7Sopenharmony_ci
4440e5c31af7Sopenharmony_ci  * [[limits-computeCapabilityMinor]] pname:computeCapabilityMinor indicates
4441e5c31af7Sopenharmony_ci    the minor version number of the compute code.
4442e5c31af7Sopenharmony_ci  * [[limits-computeCapabilityMajor]] pname:computeCapabilityMajor indicates
4443e5c31af7Sopenharmony_ci    the major version number of the compute code.
4444e5c31af7Sopenharmony_ci
4445e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCudaKernelLaunchPropertiesNV
4446e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4447e5c31af7Sopenharmony_ci
4448e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCudaKernelLaunchPropertiesNV.adoc[]
4449e5c31af7Sopenharmony_ci--
4450e5c31af7Sopenharmony_ciendif::VK_NV_cuda_kernel_launch[]
4451e5c31af7Sopenharmony_ci
4452e5c31af7Sopenharmony_ciifdef::VK_ANDROID_external_format_resolve[]
4453e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalFormatResolvePropertiesANDROID',desc='Structure describing external format resolve supported by an implementation',type='structs']
4454e5c31af7Sopenharmony_ci--
4455e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalFormatResolvePropertiesANDROID structure
4456e5c31af7Sopenharmony_ciis defined as:
4457e5c31af7Sopenharmony_ci
4458e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalFormatResolvePropertiesANDROID.adoc[]
4459e5c31af7Sopenharmony_ci
4460e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4461e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4462e5c31af7Sopenharmony_ci    structure.
4463e5c31af7Sopenharmony_ci  * [[limits-nullColorAttachmentWithExternalFormatResolve]]
4464e5c31af7Sopenharmony_ci    pname:nullColorAttachmentWithExternalFormatResolve indicates that there
4465e5c31af7Sopenharmony_ci    must: be no color attachment image when performing external format
4466e5c31af7Sopenharmony_ci    resolves if it is ename:VK_TRUE.
4467e5c31af7Sopenharmony_ci  * [[limits-externalFormatResolveChromaOffsetX]]
4468e5c31af7Sopenharmony_ci    pname:externalFormatResolveChromaOffsetX indicates the
4469e5c31af7Sopenharmony_ci    elink:VkChromaLocation that an implementation uses in the X axis for
4470e5c31af7Sopenharmony_ci    accesses to an external format image as a resolve attachment.
4471e5c31af7Sopenharmony_ci    This must: be consistent between external format resolves and load
4472e5c31af7Sopenharmony_ci    operations from external format resolve attachments to color attachments
4473e5c31af7Sopenharmony_ci    when pname:nullColorAttachmentWithExternalFormatResolve is
4474e5c31af7Sopenharmony_ci    ename:VK_TRUE.
4475e5c31af7Sopenharmony_ci  * [[limits-externalFormatResolveChromaOffsetY]]
4476e5c31af7Sopenharmony_ci    pname:externalFormatResolveChromaOffsetY indicates the
4477e5c31af7Sopenharmony_ci    elink:VkChromaLocation that an implementation uses in the Y axis for
4478e5c31af7Sopenharmony_ci    accesses to an external format image as a resolve attachment.
4479e5c31af7Sopenharmony_ci    This must: be consistent between external format resolves and load
4480e5c31af7Sopenharmony_ci    operations from external format resolve attachments to color attachments
4481e5c31af7Sopenharmony_ci    when pname:nullColorAttachmentWithExternalFormatResolve is
4482e5c31af7Sopenharmony_ci    ename:VK_TRUE.
4483e5c31af7Sopenharmony_ci
4484e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalFormatResolvePropertiesANDROID
4485e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4486e5c31af7Sopenharmony_ci
4487e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalFormatResolvePropertiesANDROID.adoc[]
4488e5c31af7Sopenharmony_ci--
4489e5c31af7Sopenharmony_ciendif::VK_ANDROID_external_format_resolve[]
4490e5c31af7Sopenharmony_ci
4491e5c31af7Sopenharmony_ciifdef::VK_ARM_render_pass_striped[]
4492e5c31af7Sopenharmony_ci
4493e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRenderPassStripedPropertiesARM',desc='Structure describing striped rendering limits of an implementation',type='structs']
4494e5c31af7Sopenharmony_ci--
4495e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRenderPassStripedPropertiesARM structure is
4496e5c31af7Sopenharmony_cidefined as:
4497e5c31af7Sopenharmony_ci
4498e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRenderPassStripedPropertiesARM.adoc[]
4499e5c31af7Sopenharmony_ci
4500e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceRenderPassStripedPropertiesARM
4501e5c31af7Sopenharmony_cistructure describe the following limits:
4502e5c31af7Sopenharmony_ci
4503e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
4504e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
4505e5c31af7Sopenharmony_ci    structure.
4506e5c31af7Sopenharmony_ci  * [[limits-renderPassStripeGranularity]] pname:renderPassStripeGranularity
4507e5c31af7Sopenharmony_ci    indicates the minimum supported granularity of striped render pass
4508e5c31af7Sopenharmony_ci    regions.
4509e5c31af7Sopenharmony_ci  * [[limits-maxRenderPassStripes]] pname:maxRenderPassStripes indicates the
4510e5c31af7Sopenharmony_ci    maximum number of stripes supported in striped rendering.
4511e5c31af7Sopenharmony_ci
4512e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRenderPassStripedPropertiesARM
4513e5c31af7Sopenharmony_ciinclude::{chapters}/limits.adoc[tag=limits_desc]
4514e5c31af7Sopenharmony_ci
4515e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRenderPassStripedPropertiesARM.adoc[]
4516e5c31af7Sopenharmony_ci--
4517e5c31af7Sopenharmony_ci
4518e5c31af7Sopenharmony_ciendif::VK_ARM_render_pass_striped[]
4519e5c31af7Sopenharmony_ci
4520e5c31af7Sopenharmony_ci[[limits-minmax]]
4521e5c31af7Sopenharmony_ci== Limit Requirements
4522e5c31af7Sopenharmony_ci
4523e5c31af7Sopenharmony_ciThe following table specifies the required: minimum/maximum for all Vulkan
4524e5c31af7Sopenharmony_cigraphics implementations.
4525e5c31af7Sopenharmony_ciWhere a limit corresponds to a fine-grained device feature which is
4526e5c31af7Sopenharmony_cioptional:, the feature name is listed with two required: limits, one when
4527e5c31af7Sopenharmony_cithe feature is supported and one when it is not supported.
4528e5c31af7Sopenharmony_ciIf an implementation supports a feature, the limits reported are the same
4529e5c31af7Sopenharmony_ciwhether or not the feature is enabled.
4530e5c31af7Sopenharmony_ci
4531e5c31af7Sopenharmony_ci[[limits-types]]
4532e5c31af7Sopenharmony_ci.Required Limit Types
4533e5c31af7Sopenharmony_ci[width="100%",cols="<20%,<50%,<30%",options="header"]
4534e5c31af7Sopenharmony_ci|====
4535e5c31af7Sopenharmony_ci| Type                     | Limit                                      | Feature
4536e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxImageDimension1D                  | -
4537e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxImageDimension2D                  | -
4538e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxImageDimension3D                  | -
4539e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxImageDimensionCube                | -
4540e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxImageArrayLayers                  | -
4541e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTexelBufferElements               | -
4542e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxUniformBufferRange                | -
4543e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxStorageBufferRange                | -
4544e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPushConstantsSize                 | -
4545e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxMemoryAllocationCount             | -
4546e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxSamplerAllocationCount            | -
4547e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:bufferImageGranularity               | -
4548e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:sparseAddressSpaceSize               | pname:sparseBinding
4549e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxBoundDescriptorSets               | -
4550e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageDescriptorSamplers        | -
4551e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageDescriptorUniformBuffers  | -
4552e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageDescriptorStorageBuffers  | -
4553e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageDescriptorSampledImages   | -
4554e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageDescriptorStorageImages   | -
4555e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageDescriptorInputAttachments| -
4556e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageResources                 | -
4557e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetSamplers             | -
4558e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetUniformBuffers       | -
4559e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetUniformBuffersDynamic| -
4560e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetStorageBuffers       | -
4561e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetStorageBuffersDynamic| -
4562e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetSampledImages        | -
4563e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetStorageImages        | -
4564e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetInputAttachments     | -
4565e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxVertexInputAttributes             | -
4566e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxVertexInputBindings               | -
4567e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxVertexInputAttributeOffset        | -
4568e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxVertexInputBindingStride          | -
4569e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxVertexOutputComponents            | -
4570e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTessellationGenerationLevel       | pname:tessellationShader
4571e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTessellationPatchSize             | pname:tessellationShader
4572e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTessellationControlPerVertexInputComponents  | pname:tessellationShader
4573e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTessellationControlPerVertexOutputComponents | pname:tessellationShader
4574e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTessellationControlPerPatchOutputComponents  | pname:tessellationShader
4575e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTessellationControlTotalOutputComponents     | pname:tessellationShader
4576e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTessellationEvaluationInputComponents        | pname:tessellationShader
4577e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTessellationEvaluationOutputComponents       | pname:tessellationShader
4578e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxGeometryShaderInvocations         | pname:geometryShader
4579e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxGeometryInputComponents           | pname:geometryShader
4580e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxGeometryOutputComponents          | pname:geometryShader
4581e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxGeometryOutputVertices            | pname:geometryShader
4582e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxGeometryTotalOutputComponents     | pname:geometryShader
4583e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxFragmentInputComponents           | -
4584e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxFragmentOutputAttachments         | -
4585e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxFragmentDualSrcAttachments        | pname:dualSrcBlend
4586e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxFragmentCombinedOutputResources   | -
4587e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxComputeSharedMemorySize           | -
4588e5c31af7Sopenharmony_ci| 3 {times} code:uint32_t  | pname:maxComputeWorkGroupCount             | -
4589e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxComputeWorkGroupInvocations       | -
4590e5c31af7Sopenharmony_ci| 3 {times} code:uint32_t  | pname:maxComputeWorkGroupSize              | -
4591e5c31af7Sopenharmony_ci| code:uint32_t            | pname:subPixelPrecisionBits                | -
4592e5c31af7Sopenharmony_ci| code:uint32_t            | pname:subTexelPrecisionBits                | -
4593e5c31af7Sopenharmony_ci| code:uint32_t            | pname:mipmapPrecisionBits                  | -
4594e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDrawIndexedIndexValue             | pname:fullDrawIndexUint32
4595e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDrawIndirectCount                 | pname:multiDrawIndirect
4596e5c31af7Sopenharmony_ci| code:float               | pname:maxSamplerLodBias                    | -
4597e5c31af7Sopenharmony_ci| code:float               | pname:maxSamplerAnisotropy                 | pname:samplerAnisotropy
4598e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxViewports                         | pname:multiViewport
4599e5c31af7Sopenharmony_ci| 2 {times} code:uint32_t  | pname:maxViewportDimensions                | -
4600e5c31af7Sopenharmony_ci| 2 {times} code:float     | pname:viewportBoundsRange                  | -
4601e5c31af7Sopenharmony_ci| code:uint32_t            | pname:viewportSubPixelBits                 | -
4602e5c31af7Sopenharmony_ci| code:size_t              | pname:minMemoryMapAlignment                | -
4603e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:minTexelBufferOffsetAlignment        | -
4604e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:minUniformBufferOffsetAlignment      | -
4605e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:minStorageBufferOffsetAlignment      | -
4606e5c31af7Sopenharmony_ci| code:int32_t             | pname:minTexelOffset                       | -
4607e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTexelOffset                       | -
4608e5c31af7Sopenharmony_ci| code:int32_t             | pname:minTexelGatherOffset                 | pname:shaderImageGatherExtended
4609e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTexelGatherOffset                 | pname:shaderImageGatherExtended
4610e5c31af7Sopenharmony_ci| code:float               | pname:minInterpolationOffset               | pname:sampleRateShading
4611e5c31af7Sopenharmony_ci| code:float               | pname:maxInterpolationOffset               | pname:sampleRateShading
4612e5c31af7Sopenharmony_ci| code:uint32_t            | pname:subPixelInterpolationOffsetBits      | pname:sampleRateShading
4613e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxFramebufferWidth                  | -
4614e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxFramebufferHeight                 | -
4615e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxFramebufferLayers                 |
4616e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[pname:geometryShader, pname:shaderOutputLayer]
4617e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[-]
4618e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:framebufferColorSampleCounts         | -
4619e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
4620e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:framebufferIntegerColorSampleCounts  | -
4621e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
4622e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:framebufferDepthSampleCounts         | -
4623e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:framebufferStencilSampleCounts       | -
4624e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:framebufferNoAttachmentsSampleCounts | -
4625e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxColorAttachments                  | -
4626e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:sampledImageColorSampleCounts        | -
4627e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:sampledImageIntegerSampleCounts      | -
4628e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:sampledImageDepthSampleCounts        | -
4629e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:sampledImageStencilSampleCounts      | -
4630e5c31af7Sopenharmony_ci| tlink:VkSampleCountFlags | pname:storageImageSampleCounts             | pname:shaderStorageImageMultisample
4631e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxSampleMaskWords                   | -
4632e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:timestampComputeAndGraphics          | -
4633e5c31af7Sopenharmony_ci| code:float               | pname:timestampPeriod                      | -
4634e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxClipDistances                     | pname:shaderClipDistance
4635e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxCullDistances                     | pname:shaderCullDistance
4636e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxCombinedClipAndCullDistances      | pname:shaderCullDistance
4637e5c31af7Sopenharmony_ci| code:uint32_t            | pname:discreteQueuePriorities              | -
4638e5c31af7Sopenharmony_ci| 2 {times} code:float     | pname:pointSizeRange                       | pname:largePoints
4639e5c31af7Sopenharmony_ci| 2 {times} code:float     | pname:lineWidthRange                       | pname:wideLines
4640e5c31af7Sopenharmony_ci| code:float               | pname:pointSizeGranularity                 | pname:largePoints
4641e5c31af7Sopenharmony_ci| code:float               | pname:lineWidthGranularity                 | pname:wideLines
4642e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:strictLines                          | -
4643e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:standardSampleLocations              | -
4644e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:optimalBufferCopyOffsetAlignment     | -
4645e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:optimalBufferCopyRowPitchAlignment   | -
4646e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:nonCoherentAtomSize                  | -
4647e5c31af7Sopenharmony_ciifdef::VK_EXT_discard_rectangles[]
4648e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDiscardRectangles                 | `apiext:VK_EXT_discard_rectangles`
4649e5c31af7Sopenharmony_ciendif::VK_EXT_discard_rectangles[]
4650e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[]
4651e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:filterMinmaxSingleComponentFormats   |
4652e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[`<<features-samplerFilterMinmax, pname:samplerFilterMinmax>>` ]
4653e5c31af7Sopenharmony_ciifdef::VK_EXT_sampler_filter_minmax[`apiext:VK_EXT_sampler_filter_minmax`]
4654e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:filterMinmaxImageComponentMapping    |
4655e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[`<<features-samplerFilterMinmax, pname:samplerFilterMinmax>>` ]
4656e5c31af7Sopenharmony_ciifdef::VK_EXT_sampler_filter_minmax[`apiext:VK_EXT_sampler_filter_minmax`]
4657e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[]
4658e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[]
4659e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:maxBufferSize                        | `<<features-maintenance4, pname:maintenance4>>`
4660e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_maintenance4[]
4661e5c31af7Sopenharmony_ciifdef::VK_EXT_conservative_rasterization[]
4662e5c31af7Sopenharmony_ci| code:float           | pname:primitiveOverestimationSize                 | `apiext:VK_EXT_conservative_rasterization`
4663e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:maxExtraPrimitiveOverestimationSize         | `apiext:VK_EXT_conservative_rasterization`
4664e5c31af7Sopenharmony_ci| code:float           | pname:extraPrimitiveOverestimationSizeGranularity | `apiext:VK_EXT_conservative_rasterization`
4665e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:degenerateTriangleRasterized                | `apiext:VK_EXT_conservative_rasterization`
4666e5c31af7Sopenharmony_ci| code:float           | pname:degenerateLinesRasterized                   | `apiext:VK_EXT_conservative_rasterization`
4667e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:fullyCoveredFragmentShaderInputVariable     | `apiext:VK_EXT_conservative_rasterization`
4668e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:conservativeRasterizationPostDepthCoverage  | `apiext:VK_EXT_conservative_rasterization`
4669e5c31af7Sopenharmony_ciendif::VK_EXT_conservative_rasterization[]
4670e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
4671e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxUpdateAfterBindDescriptorsInAllPools             | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4672e5c31af7Sopenharmony_ci| basetype:VkBool32 | pname:shaderUniformBufferArrayNonUniformIndexingNative    | -
4673e5c31af7Sopenharmony_ci| basetype:VkBool32 | pname:shaderSampledImageArrayNonUniformIndexingNative     | -
4674e5c31af7Sopenharmony_ci| basetype:VkBool32 | pname:shaderStorageBufferArrayNonUniformIndexingNative    | -
4675e5c31af7Sopenharmony_ci| basetype:VkBool32 | pname:shaderStorageImageArrayNonUniformIndexingNative     | -
4676e5c31af7Sopenharmony_ci| basetype:VkBool32 | pname:shaderInputAttachmentArrayNonUniformIndexingNative  | -
4677e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageDescriptorUpdateAfterBindSamplers        | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4678e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageDescriptorUpdateAfterBindUniformBuffers  | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4679e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageDescriptorUpdateAfterBindStorageBuffers  | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4680e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageDescriptorUpdateAfterBindSampledImages   | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4681e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageDescriptorUpdateAfterBindStorageImages   | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4682e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageDescriptorUpdateAfterBindInputAttachments| `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4683e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageUpdateAfterBindResources                 | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4684e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindSamplers             | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4685e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindUniformBuffers       | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4686e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindUniformBuffersDynamic| `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4687e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindStorageBuffers       | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4688e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindStorageBuffersDynamic| `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4689e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindSampledImages        | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4690e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindStorageImages        | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4691e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindInputAttachments     | `<<features-descriptorIndexing, pname:descriptorIndexing>>`
4692e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
4693e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
4694e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxInlineUniformBlockSize                               |`<<features-inlineUniformBlock, pname:inlineUniformBlock>>`
4695e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageDescriptorInlineUniformBlocks                |`<<features-inlineUniformBlock, pname:inlineUniformBlock>>`
4696e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks |`<<features-inlineUniformBlock, pname:inlineUniformBlock>>`
4697e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetInlineUniformBlocks                     |`<<features-inlineUniformBlock, pname:inlineUniformBlock>>`
4698e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxDescriptorSetUpdateAfterBindInlineUniformBlocks      |`<<features-inlineUniformBlock, pname:inlineUniformBlock>>`
4699e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
4700e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[]
4701e5c31af7Sopenharmony_ci| code:uint32_t     | pname:maxInlineUniformTotalSize                               |`<<features-inlineUniformBlock, pname:inlineUniformBlock>>`
4702e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[]
4703e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor,VK_KHR_vertex_attribute_divisor[]
4704e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxVertexAttribDivisor               |
4705e5c31af7Sopenharmony_ciifdef::VK_KHR_vertex_attribute_divisor[`apiext:VK_KHR_vertex_attribute_divisor`]
4706e5c31af7Sopenharmony_ciifndef::VK_KHR_vertex_attribute_divisor[`apiext:VK_EXT_vertex_attribute_divisor`]
4707e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor,VK_KHR_vertex_attribute_divisor[]
4708e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
4709e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxDrawMeshTasksCount               | `apiext:VK_NV_mesh_shader`
4710e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxTaskWorkGroupInvocations         | `apiext:VK_NV_mesh_shader`
4711e5c31af7Sopenharmony_ci| 3 {times} code:uint32_t  | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxTaskWorkGroupSize                | `apiext:VK_NV_mesh_shader`
4712e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxTaskTotalMemorySize              | `apiext:VK_NV_mesh_shader`
4713e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxTaskOutputCount                  | `apiext:VK_NV_mesh_shader`
4714e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshWorkGroupInvocations         | `apiext:VK_NV_mesh_shader`
4715e5c31af7Sopenharmony_ci| 3 {times} code:uint32_t  | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshWorkGroupSize                | `apiext:VK_NV_mesh_shader`
4716e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshTotalMemorySize              | `apiext:VK_NV_mesh_shader`
4717e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshOutputVertices               | `apiext:VK_NV_mesh_shader`
4718e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshOutputPrimitives             | `apiext:VK_NV_mesh_shader`
4719e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshMultiviewViewCount           | `apiext:VK_NV_mesh_shader`
4720e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:meshOutputPerVertexGranularity      | `apiext:VK_NV_mesh_shader`
4721e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:meshOutputPerPrimitiveGranularity   | `apiext:VK_NV_mesh_shader`
4722e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
4723e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
4724e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskWorkGroupTotalCount                 | `apiext:VK_EXT_mesh_shader`
4725e5c31af7Sopenharmony_ci| 3 {times} code:uint32_t  | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskWorkGroupCount                      | `apiext:VK_EXT_mesh_shader`
4726e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskWorkGroupInvocations                | `apiext:VK_EXT_mesh_shader`
4727e5c31af7Sopenharmony_ci| 3 {times} code:uint32_t  | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskWorkGroupSize                       | `apiext:VK_EXT_mesh_shader`
4728e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskPayloadSize                         | `apiext:VK_EXT_mesh_shader`
4729e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskSharedMemorySize                    | `apiext:VK_EXT_mesh_shader`
4730e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskPayloadAndSharedMemorySize          | `apiext:VK_EXT_mesh_shader`
4731e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshWorkGroupTotalCount                 | `apiext:VK_EXT_mesh_shader`
4732e5c31af7Sopenharmony_ci| 3 {times} code:uint32_t  | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshWorkGroupCount                      | `apiext:VK_EXT_mesh_shader`
4733e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshWorkGroupInvocations                | `apiext:VK_EXT_mesh_shader`
4734e5c31af7Sopenharmony_ci| 3 {times} code:uint32_t  | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshWorkGroupSize                       | `apiext:VK_EXT_mesh_shader`
4735e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshSharedMemorySize                    | `apiext:VK_EXT_mesh_shader`
4736e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshPayloadAndSharedMemorySize          | `apiext:VK_EXT_mesh_shader`
4737e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputMemorySize                    | `apiext:VK_EXT_mesh_shader`
4738e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshPayloadAndOutputMemorySize          | `apiext:VK_EXT_mesh_shader`
4739e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputComponents                    | `apiext:VK_EXT_mesh_shader`
4740e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputVertices                      | `apiext:VK_EXT_mesh_shader`
4741e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputPrimitives                    | `apiext:VK_EXT_mesh_shader`
4742e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputLayers                        | `apiext:VK_EXT_mesh_shader`
4743e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshMultiviewViewCount                  | `apiext:VK_EXT_mesh_shader`
4744e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:meshOutputPerVertexGranularity             | `apiext:VK_EXT_mesh_shader`
4745e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:meshOutputPerPrimitiveGranularity          | `apiext:VK_EXT_mesh_shader`
4746e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxPreferredTaskWorkGroupInvocations       | `apiext:VK_EXT_mesh_shader`
4747e5c31af7Sopenharmony_ci| code:uint32_t            | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxPreferredMeshWorkGroupInvocations       | `apiext:VK_EXT_mesh_shader`
4748e5c31af7Sopenharmony_ci| basetype:VkBool32        | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:prefersLocalInvocationVertexOutput         | `apiext:VK_EXT_mesh_shader`
4749e5c31af7Sopenharmony_ci| basetype:VkBool32        | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:prefersLocalInvocationPrimitiveOutput      | `apiext:VK_EXT_mesh_shader`
4750e5c31af7Sopenharmony_ci| basetype:VkBool32        | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:prefersCompactVertexOutput                 | `apiext:VK_EXT_mesh_shader`
4751e5c31af7Sopenharmony_ci| basetype:VkBool32        | slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:prefersCompactPrimitiveOutput              | `apiext:VK_EXT_mesh_shader`
4752e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
4753e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
4754e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTransformFeedbackStreams                 | `apiext:VK_EXT_transform_feedback`
4755e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTransformFeedbackBuffers                 | `apiext:VK_EXT_transform_feedback`
4756e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:maxTransformFeedbackBufferSize              | `apiext:VK_EXT_transform_feedback`
4757e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTransformFeedbackStreamDataSize          | `apiext:VK_EXT_transform_feedback`
4758e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTransformFeedbackBufferDataSize          | `apiext:VK_EXT_transform_feedback`
4759e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTransformFeedbackBufferDataStride        | `apiext:VK_EXT_transform_feedback`
4760e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:transformFeedbackQueries                    | `apiext:VK_EXT_transform_feedback`
4761e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:transformFeedbackStreamsLinesTriangles      | `apiext:VK_EXT_transform_feedback`
4762e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:transformFeedbackRasterizationStreamSelect  | `apiext:VK_EXT_transform_feedback`
4763e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:transformFeedbackDraw                       | `apiext:VK_EXT_transform_feedback`
4764e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
4765e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
4766e5c31af7Sopenharmony_ci| slink:VkExtent2D         | pname:minFragmentDensityTexelSize         | `<<features-fragmentDensityMap, pname:fragmentDensityMap>>`
4767e5c31af7Sopenharmony_ci| slink:VkExtent2D         | pname:maxFragmentDensityTexelSize         | `<<features-fragmentDensityMap, pname:fragmentDensityMap>>`
4768e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:fragmentDensityInvocations          | `<<features-fragmentDensityMap, pname:fragmentDensityMap>>`
4769e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map2[]
4770e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:subsampledLoads                           | `apiext:VK_EXT_fragment_density_map2`
4771e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:subsampledCoarseReconstructionEarlyAccess | `apiext:VK_EXT_fragment_density_map2`
4772e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxSubsampledArrayLayers                  | `apiext:VK_EXT_fragment_density_map2`
4773e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetSubsampledSamplers        | `apiext:VK_EXT_fragment_density_map2`
4774e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map2[]
4775e5c31af7Sopenharmony_ciifdef::VK_QCOM_fragment_density_map_offset[]
4776e5c31af7Sopenharmony_ci| slink:VkExtent2D         | pname:fragmentDensityOffsetGranularity    | `<<features-fragmentDensityMapOffsets, pname:fragmentDensityMapOffset>>`
4777e5c31af7Sopenharmony_ciendif::VK_QCOM_fragment_density_map_offset[]
4778e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
4779e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
4780e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxGeometryCount                         | `apiext:VK_NV_ray_tracing`, `apiext:VK_KHR_acceleration_structure`
4781e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxInstanceCount                         | `apiext:VK_NV_ray_tracing`, `apiext:VK_KHR_acceleration_structure`
4782e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
4783e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[]
4784e5c31af7Sopenharmony_ci| code:uint32_t            | pname:shaderGroupHandleSize                    | `apiext:VK_NV_ray_tracing`, `apiext:VK_KHR_ray_tracing_pipeline`
4785e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxShaderGroupStride                     | `apiext:VK_NV_ray_tracing`, `apiext:VK_KHR_ray_tracing_pipeline`
4786e5c31af7Sopenharmony_ci| code:uint32_t            | pname:shaderGroupBaseAlignment                 | `apiext:VK_NV_ray_tracing`, `apiext:VK_KHR_ray_tracing_pipeline`
4787e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[]
4788e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[]
4789e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxRecursionDepth                        | `apiext:VK_NV_ray_tracing`
4790e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxTriangleCount                         | `apiext:VK_NV_ray_tracing`
4791e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing[]
4792e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
4793e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageDescriptorAccelerationStructures
4794e5c31af7Sopenharmony_ci                                                                            | `apiext:VK_KHR_acceleration_structure`
4795e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxPerStageDescriptorUpdateAfterBindAccelerationStructures
4796e5c31af7Sopenharmony_ci                                                                            | `apiext:VK_KHR_acceleration_structure`
4797e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
4798e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
4799e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetAccelerationStructures   | `apiext:VK_NV_ray_tracing`, `apiext:VK_KHR_acceleration_structure`
4800e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
4801e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
4802e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetUpdateAfterBindAccelerationStructures
4803e5c31af7Sopenharmony_ci                                                                            | `apiext:VK_KHR_acceleration_structure`
4804e5c31af7Sopenharmony_ci| code:uint32_t            | pname:minAccelerationStructureScratchOffsetAlignment
4805e5c31af7Sopenharmony_ci                                                                            | `apiext:VK_KHR_acceleration_structure`
4806e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
4807e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
4808e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxRayRecursionDepth                     | `apiext:VK_KHR_ray_tracing_pipeline`
4809e5c31af7Sopenharmony_ci| code:uint32_t            | pname:shaderGroupHandleCaptureReplaySize       | `apiext:VK_KHR_ray_tracing_pipeline`
4810e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxRayDispatchInvocationCount            | `apiext:VK_KHR_ray_tracing_pipeline`
4811e5c31af7Sopenharmony_ci| code:uint32_t            | pname:shaderGroupHandleAlignment               | `apiext:VK_KHR_ray_tracing_pipeline`
4812e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxRayHitAttributeSize                   | `apiext:VK_KHR_ray_tracing_pipeline`
4813e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
4814e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
4815e5c31af7Sopenharmony_ci| code:uint64_t            | pname:maxTimelineSemaphoreValueDifference      | `<<features-timelineSemaphore, pname:timelineSemaphore>>`
4816e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
4817e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[]
4818e5c31af7Sopenharmony_ci| code:uint32_t            | pname:lineSubPixelPrecisionBits                | `apiext:VK_EXT_line_rasterization`
4819e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[]
4820e5c31af7Sopenharmony_ciifdef::VK_EXT_custom_border_color[]
4821e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxCustomBorderColorSamplers             | `apiext:VK_EXT_custom_border_color`
4822e5c31af7Sopenharmony_ciendif::VK_EXT_custom_border_color[]
4823e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
4824e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:robustStorageBufferAccessSizeAlignment   | `apiext:VK_EXT_robustness2`
4825e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:robustUniformBufferAccessSizeAlignment   | `apiext:VK_EXT_robustness2`
4826e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
4827e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
4828e5c31af7Sopenharmony_ci| 2 {times} code:uint32_t       | pname:minFragmentShadingRateAttachmentTexelSize           | `<<features-attachmentFragmentShadingRate, pname:attachmentFragmentShadingRate>>`
4829e5c31af7Sopenharmony_ci| 2 {times} code:uint32_t       | pname:maxFragmentShadingRateAttachmentTexelSize           | `<<features-attachmentFragmentShadingRate, pname:attachmentFragmentShadingRate>>`
4830e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxFragmentShadingRateAttachmentTexelSizeAspectRatio | `<<features-attachmentFragmentShadingRate, pname:attachmentFragmentShadingRate>>`
4831e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:primitiveFragmentShadingRateWithMultipleViewports   | `<<features-primitiveFragmentShadingRate, pname:primitiveFragmentShadingRate>>`
4832e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:layeredShadingRateAttachments                       | `<<features-attachmentFragmentShadingRate, pname:attachmentFragmentShadingRate>>`
4833e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:fragmentShadingRateNonTrivialCombinerOps            | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4834e5c31af7Sopenharmony_ci| 2 {times} code:uint32_t       | pname:maxFragmentSize                                     | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4835e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxFragmentSizeAspectRatio                          | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4836e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxFragmentShadingRateCoverageSamples               | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4837e5c31af7Sopenharmony_ci| elink:VkSampleCountFlagBits   | pname:maxFragmentShadingRateRasterizationSamples          | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4838e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:fragmentShadingRateWithShaderDepthStencilWrites     | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4839e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:fragmentShadingRateWithSampleMask                   | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4840e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:fragmentShadingRateWithShaderSampleMask             | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4841e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:fragmentShadingRateWithConservativeRasterization    | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4842e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:fragmentShadingRateWithFragmentShaderInterlock      | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4843e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:fragmentShadingRateWithCustomSampleLocations        | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4844e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:fragmentShadingRateStrictMultiplyCombiner           | `<<features-pipelineFragmentShadingRate, pname:pipelineFragmentShadingRate>>`
4845e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
4846e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shading_rate_enums[]
4847e5c31af7Sopenharmony_ci| elink:VkSampleCountFlagBits   | pname:maxFragmentShadingRateInvocationCount               | `<<features-supersampleFragmentShadingRates, pname:supersampleFragmentShadingRates>>`
4848e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shading_rate_enums[]
4849e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_buffer[]
4850e5c31af7Sopenharmony_ci| basetype:VkBool32       | pname:combinedImageSamplerDescriptorSingleArray          | `<<VK_EXT_descriptor_buffer>>`
4851e5c31af7Sopenharmony_ci| basetype:VkBool32       | pname:bufferlessPushDescriptors            | `<<VK_EXT_descriptor_buffer>>`
4852e5c31af7Sopenharmony_ci| basetype:VkBool32       | pname:allowSamplerImageViewPostSubmitCreation     | `<<VK_EXT_descriptor_buffer>>`
4853e5c31af7Sopenharmony_ci| basetype:VkDeviceSize   | pname:descriptorBufferOffsetAlignment             | `<<VK_EXT_descriptor_buffer>>`
4854e5c31af7Sopenharmony_ci| code:uint32_t           | pname:maxDescriptorBufferBindings                 | `<<VK_EXT_descriptor_buffer>>`
4855e5c31af7Sopenharmony_ci| code:uint32_t           | pname:maxResourceDescriptorBufferBindings         | `<<VK_EXT_descriptor_buffer>>`
4856e5c31af7Sopenharmony_ci| code:uint32_t           | pname:maxSamplerDescriptorBufferBindings          | `<<VK_EXT_descriptor_buffer>>`
4857e5c31af7Sopenharmony_ci| code:uint32_t           | pname:maxEmbeddedImmutableSamplerBindings         | `<<VK_EXT_descriptor_buffer>>`
4858e5c31af7Sopenharmony_ci| code:uint32_t           | pname:maxEmbeddedImmutableSamplers                | `<<VK_EXT_descriptor_buffer>>`
4859e5c31af7Sopenharmony_ci| code:size_t             | pname:bufferCaptureReplayDescriptorDataSize       | `<<VK_EXT_descriptor_buffer>>`
4860e5c31af7Sopenharmony_ci| code:size_t             | pname:imageCaptureReplayDescriptorDataSize        | `<<VK_EXT_descriptor_buffer>>`
4861e5c31af7Sopenharmony_ci| code:size_t             | pname:imageViewCaptureReplayDescriptorDataSize    | `<<VK_EXT_descriptor_buffer>>`
4862e5c31af7Sopenharmony_ci| code:size_t             | pname:samplerCaptureReplayDescriptorDataSize      | `<<VK_EXT_descriptor_buffer>>`
4863e5c31af7Sopenharmony_ci| code:size_t             | pname:accelerationStructureCaptureReplayDescriptorDataSize      | `<<VK_EXT_descriptor_buffer>>`
4864e5c31af7Sopenharmony_ci| code:size_t             | pname:samplerDescriptorSize                       | `<<VK_EXT_descriptor_buffer>>`
4865e5c31af7Sopenharmony_ci| code:size_t             | pname:combinedImageSamplerDescriptorSize          | `<<VK_EXT_descriptor_buffer>>`
4866e5c31af7Sopenharmony_ci| code:size_t             | pname:sampledImageDescriptorSize                  | `<<VK_EXT_descriptor_buffer>>`
4867e5c31af7Sopenharmony_ci| code:size_t             | pname:storageImageDescriptorSize                  | `<<VK_EXT_descriptor_buffer>>`
4868e5c31af7Sopenharmony_ci| code:size_t             | pname:uniformTexelBufferDescriptorSize            | `<<VK_EXT_descriptor_buffer>>`
4869e5c31af7Sopenharmony_ci| code:size_t             | pname:robustUniformTexelBufferDescriptorSize      | `<<VK_EXT_descriptor_buffer>>`
4870e5c31af7Sopenharmony_ci| code:size_t             | pname:storageTexelBufferDescriptorSize            | `<<VK_EXT_descriptor_buffer>>`
4871e5c31af7Sopenharmony_ci| code:size_t             | pname:robustStorageTexelBufferDescriptorSize      | `<<VK_EXT_descriptor_buffer>>`
4872e5c31af7Sopenharmony_ci| code:size_t             | pname:uniformBufferDescriptorSize                 | `<<VK_EXT_descriptor_buffer>>`
4873e5c31af7Sopenharmony_ci| code:size_t             | pname:robustUniformBufferDescriptorSize           | `<<VK_EXT_descriptor_buffer>>`
4874e5c31af7Sopenharmony_ci| code:size_t             | pname:storageBufferDescriptorSize                 | `<<VK_EXT_descriptor_buffer>>`
4875e5c31af7Sopenharmony_ci| code:size_t             | pname:robustStorageBufferDescriptorSize           | `<<VK_EXT_descriptor_buffer>>`
4876e5c31af7Sopenharmony_ci| code:size_t             | pname:inputAttachmentDescriptorSize               | `<<VK_EXT_descriptor_buffer>>`
4877e5c31af7Sopenharmony_ci| code:size_t             | pname:accelerationStructureDescriptorSize         | `<<VK_EXT_descriptor_buffer>>`
4878e5c31af7Sopenharmony_ci| basetype:VkDeviceSize   | pname:maxSamplerDescriptorBufferRange             | `<<VK_EXT_descriptor_buffer>>`
4879e5c31af7Sopenharmony_ci| basetype:VkDeviceSize   | pname:maxResourceDescriptorBufferRange            | `<<VK_EXT_descriptor_buffer>>`
4880e5c31af7Sopenharmony_ci| basetype:VkDeviceSize   | pname:samplerDescriptorBufferAddressSpaceSize     | `<<VK_EXT_descriptor_buffer>>`
4881e5c31af7Sopenharmony_ci| basetype:VkDeviceSize   | pname:resourceDescriptorBufferAddressSpaceSize    | `<<VK_EXT_descriptor_buffer>>`
4882e5c31af7Sopenharmony_ci| basetype:VkDeviceSize   | pname:descriptorBufferAddressSpaceSize            | `<<VK_EXT_descriptor_buffer>>`
4883e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
4884e5c31af7Sopenharmony_ci| code:size_t             | pname:combinedImageSamplerDensityMapDescriptorSize          | `<<VK_EXT_descriptor_buffer>>`
4885e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
4886e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_buffer[]
4887e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_subpass_shading[]
4888e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxSubpassShadingWorkgroupSizeAspectRatio | `<<features-subpassShading, pname:subpassShading>>`
4889e5c31af7Sopenharmony_ciendif::VK_HUAWEI_subpass_shading[]
4890e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
4891e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:deviceNoDynamicHostAllocations                   | -
4892e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:deviceDestroyFreesMemory                         | -
4893e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:commandPoolMultipleCommandBuffersRecording       | -
4894e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:commandPoolResetCommandBuffer                    | -
4895e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:commandBufferSimultaneousUse                     | -
4896e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:secondaryCommandBufferNullOrImagelessFramebuffer | -
4897e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:recycleDescriptorSetMemory                       | -
4898e5c31af7Sopenharmony_ci| basetype:VkBool32        | pname:recyclePipelineMemory                            | -
4899e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxRenderPassSubpasses                           | -
4900e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxRenderPassDependencies                        | -
4901e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxSubpassInputAttachments                       | -
4902e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxSubpassPreserveAttachments                    | -
4903e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxFramebufferAttachments                        | -
4904e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxDescriptorSetLayoutBindings                   | -
4905e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxQueryFaultCount                               | -
4906e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxCallbackFaultCount                            | -
4907e5c31af7Sopenharmony_ci| code:uint32_t            | pname:maxCommandPoolCommandBuffers                     | -
4908e5c31af7Sopenharmony_ci| basetype:VkDeviceSize    | pname:maxCommandBufferSize                             | -
4909e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
4910e5c31af7Sopenharmony_ciifdef::VK_EXT_graphics_pipeline_library[]
4911e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:graphicsPipelineLibraryFastLinking                  | `<<features-graphicsPipelineLibrary, pname:graphicsPipelineLibrary>>`
4912e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:graphicsPipelineLibraryIndependentInterpolationDecoration | `<<features-graphicsPipelineLibrary, pname:graphicsPipelineLibrary>>`
4913e5c31af7Sopenharmony_ciendif::VK_EXT_graphics_pipeline_library[]
4914e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shader_barycentric[]
4915e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:triStripVertexOrderIndependentOfProvokingVertex     | -
4916e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shader_barycentric[]
4917e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing[]
4918e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxWeightFilterPhases    | `<<features-textureSampleWeighted, pname:textureSampleWeighted>>`
4919e5c31af7Sopenharmony_ci| 2 {times} code:uint32_t       | pname:maxWeightFilterDimension | `<<features-textureSampleWeighted, pname:textureSampleWeighted>>`
4920e5c31af7Sopenharmony_ci| 2 {times} code:uint32_t       | pname:maxBlockMatchRegion      | `<<features-textureBlockMatch, pname:textureBlockMatch>>`
4921e5c31af7Sopenharmony_ci| 2 {times} code:uint32_t       | pname:maxBoxFilterBlockSize    | `<<features-textureBoxFilter, pname:textureBoxFilter>>`
4922e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing[]
4923e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state3[]
4924e5c31af7Sopenharmony_ci| basetype:VkBool32             | pname:dynamicPrimitiveTopologyUnrestricted                | `apiext:VK_EXT_extended_dynamic_state3`
4925e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state3[]
4926e5c31af7Sopenharmony_ciifdef::VK_EXT_opacity_micromap[]
4927e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxOpacity2StateSubdivisionLevel                    | `apiext:VK_EXT_opacity_micromap`
4928e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxOpacity4StateSubdivisionLevel                    | `apiext:VK_EXT_opacity_micromap`
4929e5c31af7Sopenharmony_ciendif::VK_EXT_opacity_micromap[]
4930e5c31af7Sopenharmony_ciifdef::VK_NV_memory_decompression[]
4931e5c31af7Sopenharmony_ci| code:uint64_t                 | pname:maxDecompressionIndirectCount                       | `apiext:VK_NV_memory_decompression`
4932e5c31af7Sopenharmony_ciendif::VK_NV_memory_decompression[]
4933e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_cluster_culling_shader[]
4934e5c31af7Sopenharmony_ci|  3 {times} code:uint32_t                 |
4935e5c31af7Sopenharmony_cipname:maxWorkGroupCount | `apiext:VK_HUAWEI_cluster_culling_shader`
4936e5c31af7Sopenharmony_ci|  3 {times} code:uint32_t                 |
4937e5c31af7Sopenharmony_cipname:maxWorkGroupSize | `apiext:VK_HUAWEI_cluster_culling_shader`
4938e5c31af7Sopenharmony_ci| code:uint32_t                 |
4939e5c31af7Sopenharmony_cipname:maxOutputClusterCount | `apiext:VK_HUAWEI_cluster_culling_shader`
4940e5c31af7Sopenharmony_ci| basetype:VkDeviceSize                 |
4941e5c31af7Sopenharmony_cipname:indirectBufferOffsetAlignment | `apiext:VK_HUAWEI_cluster_culling_shader`
4942e5c31af7Sopenharmony_ciendif::VK_HUAWEI_cluster_culling_shader[]
4943e5c31af7Sopenharmony_ciifdef::VK_AMDX_shader_enqueue[]
4944e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxExecutionGraphDepth                              | `<<features-shaderEnqueue,pname:shaderEnqueue>>`
4945e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxExecutionGraphShaderOutputNodes                  | `<<features-shaderEnqueue,pname:shaderEnqueue>>`
4946e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxExecutionGraphShaderPayloadSize                  | `<<features-shaderEnqueue,pname:shaderEnqueue>>`
4947e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:maxExecutionGraphShaderPayloadCount                 | `<<features-shaderEnqueue,pname:shaderEnqueue>>`
4948e5c31af7Sopenharmony_ci| code:uint32_t                 | pname:executionGraphDispatchAddressAlignment              | `<<features-shaderEnqueue,pname:shaderEnqueue>>`
4949e5c31af7Sopenharmony_ciendif::VK_AMDX_shader_enqueue[]
4950e5c31af7Sopenharmony_ciifdef::VK_NV_extended_sparse_address_space[]
4951e5c31af7Sopenharmony_ci| basetype:VkDeviceSize         | pname:extendedSparseAddressSpaceSize                      | pname:sparseBinding, `<<features-extendedSparseAddressSpace, pname:extendedSparseAddressSpace>>`
4952e5c31af7Sopenharmony_ciendif::VK_NV_extended_sparse_address_space[]
4953e5c31af7Sopenharmony_ci|====
4954e5c31af7Sopenharmony_ci
4955e5c31af7Sopenharmony_ci[[limits-required]]
4956e5c31af7Sopenharmony_ci.Required Limits
4957e5c31af7Sopenharmony_ci[width="100%",cols="<35,<9,<14,<11",options="header"]
4958e5c31af7Sopenharmony_ci|====
4959e5c31af7Sopenharmony_ci| Limit | Unsupported Limit | Supported Limit | Limit Type^1^
4960e5c31af7Sopenharmony_ci| pname:maxImageDimension1D                  | - | 4096    | min
4961e5c31af7Sopenharmony_ci| pname:maxImageDimension2D                  | - | 4096    | min
4962e5c31af7Sopenharmony_ci| pname:maxImageDimension3D                  | - | 256     | min
4963e5c31af7Sopenharmony_ci| pname:maxImageDimensionCube                | - | 4096    | min
4964e5c31af7Sopenharmony_ci| pname:maxImageArrayLayers                  | - | 256     | min
4965e5c31af7Sopenharmony_ci| pname:maxTexelBufferElements               | - | 65536   | min
4966e5c31af7Sopenharmony_ci| pname:maxUniformBufferRange                | - | 16384   | min
4967e5c31af7Sopenharmony_ci| pname:maxStorageBufferRange                | - | 2^27^   | min
4968e5c31af7Sopenharmony_ci| pname:maxPushConstantsSize                 | - | 128     | min
4969e5c31af7Sopenharmony_ci| pname:maxMemoryAllocationCount             | - | 4096    | min
4970e5c31af7Sopenharmony_ci| pname:maxSamplerAllocationCount            | - | 4000    | min
4971e5c31af7Sopenharmony_ci| pname:bufferImageGranularity               | - | 131072  | max
4972e5c31af7Sopenharmony_ci| pname:sparseAddressSpaceSize               | 0 | 2^31^   | min
4973e5c31af7Sopenharmony_ci| pname:maxBoundDescriptorSets               | - | 4       | min
4974e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorSamplers        | - | 16      | min
4975e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUniformBuffers  | - | 12      | min
4976e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorStorageBuffers  | - | 4       | min
4977e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorSampledImages   | - | 16      | min
4978e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorStorageImages   | - | 4       | min
4979e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorInputAttachments| - | 4       | min
4980e5c31af7Sopenharmony_ci| pname:maxPerStageResources                 | - | 128 ^2^ | min
4981e5c31af7Sopenharmony_ci| pname:maxDescriptorSetSamplers             | - | 96 ^8^  | min, _n_ {times} PerStage
4982e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUniformBuffers       | - | 72 ^8^  | min, _n_ {times} PerStage
4983e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUniformBuffersDynamic| - | 8       | min
4984e5c31af7Sopenharmony_ci| pname:maxDescriptorSetStorageBuffers       | - | 24 ^8^  | min, _n_ {times} PerStage
4985e5c31af7Sopenharmony_ci| pname:maxDescriptorSetStorageBuffersDynamic| - | 4       | min
4986e5c31af7Sopenharmony_ci| pname:maxDescriptorSetSampledImages        | - | 96 ^8^  | min, _n_ {times} PerStage
4987e5c31af7Sopenharmony_ci| pname:maxDescriptorSetStorageImages        | - | 24 ^8^  | min, _n_ {times} PerStage
4988e5c31af7Sopenharmony_ci| pname:maxDescriptorSetInputAttachments     | - | 4       | min
4989e5c31af7Sopenharmony_ci| pname:maxVertexInputAttributes             | - | 16      | min
4990e5c31af7Sopenharmony_ciifndef::VK_KHR_portability_subset[]
4991e5c31af7Sopenharmony_ci| pname:maxVertexInputBindings               | - | 16      | min
4992e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
4993e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[]
4994e5c31af7Sopenharmony_ci| pname:maxVertexInputBindings               | - | 16 ^10^ | min
4995e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
4996e5c31af7Sopenharmony_ci| pname:maxVertexInputAttributeOffset        | - | 2047    | min
4997e5c31af7Sopenharmony_ci| pname:maxVertexInputBindingStride          | - | 2048    | min
4998e5c31af7Sopenharmony_ci| pname:maxVertexOutputComponents            | - | 64      | min
4999e5c31af7Sopenharmony_ci| pname:maxTessellationGenerationLevel       | 0 | 64      | min
5000e5c31af7Sopenharmony_ci| pname:maxTessellationPatchSize             | 0 | 32      | min
5001e5c31af7Sopenharmony_ci| pname:maxTessellationControlPerVertexInputComponents  | 0 |64 | min
5002e5c31af7Sopenharmony_ci| pname:maxTessellationControlPerVertexOutputComponents | 0 |64 | min
5003e5c31af7Sopenharmony_ci| pname:maxTessellationControlPerPatchOutputComponents  | 0 |120 | min
5004e5c31af7Sopenharmony_ci| pname:maxTessellationControlTotalOutputComponents     | 0 |2048 | min
5005e5c31af7Sopenharmony_ci| pname:maxTessellationEvaluationInputComponents        | 0 |64 | min
5006e5c31af7Sopenharmony_ci| pname:maxTessellationEvaluationOutputComponents       | 0 |64 | min
5007e5c31af7Sopenharmony_ci| pname:maxGeometryShaderInvocations         | 0 | 32      | min
5008e5c31af7Sopenharmony_ci| pname:maxGeometryInputComponents           | 0 | 64      | min
5009e5c31af7Sopenharmony_ci| pname:maxGeometryOutputComponents          | 0 | 64      | min
5010e5c31af7Sopenharmony_ci| pname:maxGeometryOutputVertices            | 0 | 256     | min
5011e5c31af7Sopenharmony_ci| pname:maxGeometryTotalOutputComponents     | 0 | 1024    | min
5012e5c31af7Sopenharmony_ci| pname:maxFragmentInputComponents           | - | 64      | min
5013e5c31af7Sopenharmony_ci| pname:maxFragmentOutputAttachments         | - | 4       | min
5014e5c31af7Sopenharmony_ci| pname:maxFragmentDualSrcAttachments        | 0 | 1       | min
5015e5c31af7Sopenharmony_ci| pname:maxFragmentCombinedOutputResources   | - | 4       | min
5016e5c31af7Sopenharmony_ci| pname:maxComputeSharedMemorySize           | - | 16384   | min
5017e5c31af7Sopenharmony_ci| pname:maxComputeWorkGroupCount             | - | (65535,65535,65535) | min
5018e5c31af7Sopenharmony_ci| pname:maxComputeWorkGroupInvocations       | - | 128     | min
5019e5c31af7Sopenharmony_ci| pname:maxComputeWorkGroupSize              | - | (128,128,64) | min
5020e5c31af7Sopenharmony_ci| pname:subPixelPrecisionBits                | - | 4       | min
5021e5c31af7Sopenharmony_ci| pname:subTexelPrecisionBits                | - | 4       | min
5022e5c31af7Sopenharmony_ci| pname:mipmapPrecisionBits                  | - | 4       | min
5023e5c31af7Sopenharmony_ci| pname:maxDrawIndexedIndexValue             | 2^24^-1 | 2^32^-1 | min
5024e5c31af7Sopenharmony_ci| pname:maxDrawIndirectCount                 | 1 | 2^16^-1 | min
5025e5c31af7Sopenharmony_ci| pname:maxSamplerLodBias                    | - | 2       | min
5026e5c31af7Sopenharmony_ci| pname:maxSamplerAnisotropy                 | 1 | 16      | min
5027e5c31af7Sopenharmony_ci| pname:maxViewports                         | 1 | 16      | min
5028e5c31af7Sopenharmony_ci| pname:maxViewportDimensions                | - | (4096,4096) ^3^  | min
5029e5c31af7Sopenharmony_ci| pname:viewportBoundsRange                  | - | (-8192,8191) ^4^ | (max,min)
5030e5c31af7Sopenharmony_ci| pname:viewportSubPixelBits                 | - | 0   | min
5031e5c31af7Sopenharmony_ci| pname:minMemoryMapAlignment                | - | 64  | min
5032e5c31af7Sopenharmony_ci| pname:minTexelBufferOffsetAlignment        | - | 256 | max
5033e5c31af7Sopenharmony_ci| pname:minUniformBufferOffsetAlignment      | - | 256 | max
5034e5c31af7Sopenharmony_ci| pname:minStorageBufferOffsetAlignment      | - | 256 | max
5035e5c31af7Sopenharmony_ci| pname:minTexelOffset                       | - | -8  | max
5036e5c31af7Sopenharmony_ci| pname:maxTexelOffset                       | - | 7   | min
5037e5c31af7Sopenharmony_ci| pname:minTexelGatherOffset                 | 0 | -8  | max
5038e5c31af7Sopenharmony_ci| pname:maxTexelGatherOffset                 | 0 | 7   | min
5039e5c31af7Sopenharmony_ci| pname:minInterpolationOffset               |0.0| -0.5 ^5^ | max
5040e5c31af7Sopenharmony_ci| pname:maxInterpolationOffset               |0.0| 0.5 - (1 ULP) ^5^ | min
5041e5c31af7Sopenharmony_ci| pname:subPixelInterpolationOffsetBits      | 0 | 4 ^5^ | min
5042e5c31af7Sopenharmony_ci| pname:maxFramebufferWidth                  | - | 4096  | min
5043e5c31af7Sopenharmony_ci| pname:maxFramebufferHeight                 | - | 4096  | min
5044e5c31af7Sopenharmony_ci| pname:maxFramebufferLayers                 |
5045e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[1]
5046e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[-]
5047e5c31af7Sopenharmony_ci| 256   | min
5048e5c31af7Sopenharmony_ci| pname:framebufferColorSampleCounts         | - | (ename:VK_SAMPLE_COUNT_1_BIT \| ename:VK_SAMPLE_COUNT_4_BIT) | min
5049e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
5050e5c31af7Sopenharmony_ci| pname:framebufferIntegerColorSampleCounts  | - | (ename:VK_SAMPLE_COUNT_1_BIT)                                | min
5051e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
5052e5c31af7Sopenharmony_ci| pname:framebufferDepthSampleCounts         | - | (ename:VK_SAMPLE_COUNT_1_BIT \| ename:VK_SAMPLE_COUNT_4_BIT) | min
5053e5c31af7Sopenharmony_ci| pname:framebufferStencilSampleCounts       | - | (ename:VK_SAMPLE_COUNT_1_BIT \| ename:VK_SAMPLE_COUNT_4_BIT) | min
5054e5c31af7Sopenharmony_ci| pname:framebufferNoAttachmentsSampleCounts | - | (ename:VK_SAMPLE_COUNT_1_BIT \| ename:VK_SAMPLE_COUNT_4_BIT) | min
5055e5c31af7Sopenharmony_ci| pname:maxColorAttachments                  | - | 4     | min
5056e5c31af7Sopenharmony_ci| pname:sampledImageColorSampleCounts        | - | (ename:VK_SAMPLE_COUNT_1_BIT \| ename:VK_SAMPLE_COUNT_4_BIT) | min
5057e5c31af7Sopenharmony_ci| pname:sampledImageIntegerSampleCounts      | - | ename:VK_SAMPLE_COUNT_1_BIT                                  | min
5058e5c31af7Sopenharmony_ci| pname:sampledImageDepthSampleCounts        | - | (ename:VK_SAMPLE_COUNT_1_BIT \| ename:VK_SAMPLE_COUNT_4_BIT) | min
5059e5c31af7Sopenharmony_ci| pname:sampledImageStencilSampleCounts      | - | (ename:VK_SAMPLE_COUNT_1_BIT \| ename:VK_SAMPLE_COUNT_4_BIT) | min
5060e5c31af7Sopenharmony_ci| pname:storageImageSampleCounts             | ename:VK_SAMPLE_COUNT_1_BIT | (ename:VK_SAMPLE_COUNT_1_BIT \| ename:VK_SAMPLE_COUNT_4_BIT) | min
5061e5c31af7Sopenharmony_ci| pname:maxSampleMaskWords                   | - | 1     | min
5062e5c31af7Sopenharmony_ci| pname:timestampComputeAndGraphics          | - | -     |implementation-dependent
5063e5c31af7Sopenharmony_ci| pname:timestampPeriod                      | - | -     |duration
5064e5c31af7Sopenharmony_ci| pname:maxClipDistances                     | 0 | 8     | min
5065e5c31af7Sopenharmony_ci| pname:maxCullDistances                     | 0 | 8     | min
5066e5c31af7Sopenharmony_ci| pname:maxCombinedClipAndCullDistances      | 0 | 8     | min
5067e5c31af7Sopenharmony_ci| pname:discreteQueuePriorities              | - | 2     | min
5068e5c31af7Sopenharmony_ci| pname:pointSizeRange                       | (1.0,1.0) | (1.0,64.0 - ULP)^6^| (max,min)
5069e5c31af7Sopenharmony_ci| pname:lineWidthRange                       | (1.0,1.0) | (1.0,8.0 - ULP)^7^ | (max,min)
5070e5c31af7Sopenharmony_ci| pname:pointSizeGranularity                 |  0.0 | 1.0 ^6^ | max, fixed point increment
5071e5c31af7Sopenharmony_ci| pname:lineWidthGranularity                 |  0.0 | 1.0 ^7^ | max, fixed point increment
5072e5c31af7Sopenharmony_ci| pname:strictLines                          | - | -   | implementation-dependent
5073e5c31af7Sopenharmony_ci| pname:standardSampleLocations              | - | -   | implementation-dependent
5074e5c31af7Sopenharmony_ci| pname:optimalBufferCopyOffsetAlignment     | - | -   | recommendation
5075e5c31af7Sopenharmony_ci| pname:optimalBufferCopyRowPitchAlignment   | - | -   | recommendation
5076e5c31af7Sopenharmony_ci| pname:nonCoherentAtomSize                  | - | 256 | max
5077e5c31af7Sopenharmony_ciifdef::VK_KHR_push_descriptor[]
5078e5c31af7Sopenharmony_ci| pname:maxPushDescriptors                   | - | 32  | min
5079e5c31af7Sopenharmony_ciendif::VK_KHR_push_descriptor[]
5080e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[]
5081e5c31af7Sopenharmony_ci| pname:maxMultiviewViewCount                | - |  6  | min
5082e5c31af7Sopenharmony_ci| pname:maxMultiviewInstanceIndex            | - |  2^27^-1  | min
5083e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[]
5084e5c31af7Sopenharmony_ciifdef::VK_EXT_discard_rectangles[]
5085e5c31af7Sopenharmony_ci| pname:maxDiscardRectangles                 | 0 | 4   | min
5086e5c31af7Sopenharmony_ciendif::VK_EXT_discard_rectangles[]
5087e5c31af7Sopenharmony_ciifdef::VK_EXT_sample_locations[]
5088e5c31af7Sopenharmony_ci| pname:sampleLocationSampleCounts           | - | ename:VK_SAMPLE_COUNT_4_BIT | min
5089e5c31af7Sopenharmony_ci| pname:maxSampleLocationGridSize            | - | (1,1) | min
5090e5c31af7Sopenharmony_ci| pname:sampleLocationCoordinateRange        | - | (0.0, 0.9375) | (max,min)
5091e5c31af7Sopenharmony_ci| pname:sampleLocationSubPixelBits           | - | 4   | min
5092e5c31af7Sopenharmony_ci| pname:variableSampleLocations              | - |false| implementation-dependent
5093e5c31af7Sopenharmony_ciendif::VK_EXT_sample_locations[]
5094e5c31af7Sopenharmony_ciifdef::VK_EXT_external_memory_host[]
5095e5c31af7Sopenharmony_ci| pname:minImportedHostPointerAlignment      | - | 65536 | max
5096e5c31af7Sopenharmony_ciendif::VK_EXT_external_memory_host[]
5097e5c31af7Sopenharmony_ciifdef::VK_NVX_multiview_per_view_attributes[]
5098e5c31af7Sopenharmony_ci| pname:perViewPositionAllComponents         | - | -   | implementation-dependent
5099e5c31af7Sopenharmony_ciendif::VK_NVX_multiview_per_view_attributes[]
5100e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[]
5101e5c31af7Sopenharmony_ci| pname:filterMinmaxSingleComponentFormats   | - | -   | implementation-dependent
5102e5c31af7Sopenharmony_ci| pname:filterMinmaxImageComponentMapping    | - | -   | implementation-dependent
5103e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_sampler_filter_minmax[]
5104e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[]
5105e5c31af7Sopenharmony_ci| pname:advancedBlendMaxColorAttachments        | - | 1   | min
5106e5c31af7Sopenharmony_ci| pname:advancedBlendIndependentBlend           | - |false| implementation-dependent
5107e5c31af7Sopenharmony_ci| pname:advancedBlendNonPremultipliedSrcColor   | - |false| implementation-dependent
5108e5c31af7Sopenharmony_ci| pname:advancedBlendNonPremultipliedDstColor   | - |false| implementation-dependent
5109e5c31af7Sopenharmony_ci| pname:advancedBlendCorrelatedOverlap          | - |false| implementation-dependent
5110e5c31af7Sopenharmony_ci| pname:advancedBlendAllOperations              | - |false| implementation-dependent
5111e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[]
5112e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_maintenance3[]
5113e5c31af7Sopenharmony_ci| pname:maxPerSetDescriptors                                | - |1024 | min
5114e5c31af7Sopenharmony_ci| pname:maxMemoryAllocationSize                             | - | 2^30^ | min
5115e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_maintenance3[]
5116e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[]
5117e5c31af7Sopenharmony_ci| pname:maxBufferSize                                       | - | 2^30^ | min
5118e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_maintenance4[]
5119e5c31af7Sopenharmony_ciifdef::VK_EXT_conservative_rasterization[]
5120e5c31af7Sopenharmony_ci| pname:primitiveOverestimationSize                 | - |0.0   | min
5121e5c31af7Sopenharmony_ci| pname:maxExtraPrimitiveOverestimationSize         | - |0.0   | min
5122e5c31af7Sopenharmony_ci| pname:extraPrimitiveOverestimationSizeGranularity | - |0.0   | min
5123e5c31af7Sopenharmony_ci| pname:primitiveUnderestimation                    | - |false | implementation-dependent
5124e5c31af7Sopenharmony_ci| pname:conservativePointAndLineRasterization       | - |false | implementation-dependent
5125e5c31af7Sopenharmony_ci| pname:degenerateTrianglesRasterized               | - |false | implementation-dependent
5126e5c31af7Sopenharmony_ci| pname:degenerateLinesRasterized                   | - |false | implementation-dependent
5127e5c31af7Sopenharmony_ci| pname:fullyCoveredFragmentShaderInputVariable     | - |false | implementation-dependent
5128e5c31af7Sopenharmony_ci| pname:conservativeRasterizationPostDepthCoverage  | - |false | implementation-dependent
5129e5c31af7Sopenharmony_ciendif::VK_EXT_conservative_rasterization[]
5130e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
5131e5c31af7Sopenharmony_ci| pname:maxUpdateAfterBindDescriptorsInAllPools             | 0 |500000| min
5132e5c31af7Sopenharmony_ci| pname:shaderUniformBufferArrayNonUniformIndexingNative    | - |false| implementation-dependent
5133e5c31af7Sopenharmony_ci| pname:shaderSampledImageArrayNonUniformIndexingNative     | - |false| implementation-dependent
5134e5c31af7Sopenharmony_ci| pname:shaderStorageBufferArrayNonUniformIndexingNative    | - |false| implementation-dependent
5135e5c31af7Sopenharmony_ci| pname:shaderStorageImageArrayNonUniformIndexingNative     | - |false| implementation-dependent
5136e5c31af7Sopenharmony_ci| pname:shaderInputAttachmentArrayNonUniformIndexingNative  | - |false| implementation-dependent
5137e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindSamplers        | 0^9^ |500000 ^9^ | min
5138e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindUniformBuffers  | 0^9^ |12 ^9^ | min
5139e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindStorageBuffers  | 0^9^ |500000 ^9^ | min
5140e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindSampledImages   | 0^9^ |500000 ^9^ | min
5141e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindStorageImages   | 0^9^ |500000 ^9^ | min
5142e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindInputAttachments| 0^9^ |4 ^9^ | min
5143e5c31af7Sopenharmony_ci| pname:maxPerStageUpdateAfterBindResources                 | 0^9^ |500000 ^9^ | min
5144e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindSamplers             | 0^9^ |500000 ^9^ | min
5145e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindUniformBuffers       | 0^9^ |72 ^8^ ^9^ | min, _n_ {times} PerStage
5146e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindUniformBuffersDynamic| 0^9^ |8 ^9^ | min
5147e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindStorageBuffers       | 0^9^ |500000 ^9^ | min
5148e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindStorageBuffersDynamic| 0^9^ |4 ^9^ | min
5149e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindSampledImages        | 0^9^ |500000 ^9^ | min
5150e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindStorageImages        | 0^9^ |500000 ^9^ | min
5151e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindInputAttachments     | 0^9^ |4 ^9^ | min
5152e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
5153e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
5154e5c31af7Sopenharmony_ci| pname:maxInlineUniformBlockSize                               | - | 256   | min
5155e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorInlineUniformBlocks                | - | 4     | min
5156e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks | - | 4     | min
5157e5c31af7Sopenharmony_ci| pname:maxDescriptorSetInlineUniformBlocks                     | - | 4     | min
5158e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindInlineUniformBlocks      | - | 4     | min
5159e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_inline_uniform_block[]
5160e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[]
5161e5c31af7Sopenharmony_ci| pname:maxInlineUniformTotalSize                               | - | 256   | min
5162e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[]
5163e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor,VK_KHR_vertex_attribute_divisor[]
5164e5c31af7Sopenharmony_ci| pname:maxVertexAttribDivisor               | - | 2^16^-1   | min
5165e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor,VK_KHR_vertex_attribute_divisor[]
5166e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
5167e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxDrawMeshTasksCount                | - | 2^16^-1   | min
5168e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxTaskWorkGroupInvocations          | - | 32        | min
5169e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxTaskWorkGroupSize                 | - | (32,1,1)  | min
5170e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxTaskTotalMemorySize               | - | 16384     | min
5171e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxTaskOutputCount                   | - | 2^16^-1   | min
5172e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshWorkGroupInvocations          | - | 32        | min
5173e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshWorkGroupSize                 | - | (32,1,1)  | min
5174e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshTotalMemorySize               | - | 16384     | min
5175e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshOutputVertices                | - | 256       | min
5176e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshOutputPrimitives              | - | 256       | min
5177e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:maxMeshMultiviewViewCount            | - | 1         | min
5178e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:meshOutputPerVertexGranularity       | - | -         | implementation-dependent
5179e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesNV::pname:meshOutputPerPrimitiveGranularity    | - | -         | implementation-dependent
5180e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
5181e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[]
5182e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskWorkGroupTotalCount                 | - | 2^22      | min
5183e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskWorkGroupCount                      | - | (65535,65535,65535) | min
5184e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskWorkGroupInvocations                | - | 128       | min
5185e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskWorkGroupSize                       | - | (128,128,128) | min
5186e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskPayloadSize                         | - | 16384     | min
5187e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskSharedMemorySize                    | - | 32768     | min
5188e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxTaskPayloadAndSharedMemorySize          | - | 32768     | min
5189e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshWorkGroupTotalCount                 | - | 2^22      | min
5190e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshWorkGroupCount                      | - | (65535,65535,65535) | min
5191e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshWorkGroupInvocations                | - | 128       | min
5192e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshWorkGroupSize                       | - | (128,128,128) | min
5193e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshSharedMemorySize                    | - | 28672     | min
5194e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshPayloadAndSharedMemorySize          | - | 28672     | min
5195e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputMemorySize                    | - | 32768     | min
5196e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshPayloadAndOutputMemorySize          | - | 48128     | min
5197e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputComponents                    | - | 128       | min
5198e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputVertices                      | - | 256       | min
5199e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputPrimitives                    | - | 256       | min
5200e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshOutputLayers                        | - | 8         | min
5201e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxMeshMultiviewViewCount                  | - | 1         | min
5202e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:meshOutputPerVertexGranularity             | 0 | 32        | max
5203e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:meshOutputPerPrimitiveGranularity          | 0 | 32        | max
5204e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxPreferredTaskWorkGroupInvocations       | - | -         | implementation-dependent
5205e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:maxPreferredMeshWorkGroupInvocations       | - | -         | implementation-dependent
5206e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:prefersLocalInvocationVertexOutput         | - | -         | implementation-dependent
5207e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:prefersLocalInvocationPrimitiveOutput      | - | -         | implementation-dependent
5208e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:prefersCompactVertexOutput                 | - | -         | implementation-dependent
5209e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceMeshShaderPropertiesEXT::pname:prefersCompactPrimitiveOutput              | - | -         | implementation-dependent
5210e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[]
5211e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
5212e5c31af7Sopenharmony_ci| pname:maxTransformFeedbackStreams                         | - | 1         | min
5213e5c31af7Sopenharmony_ci| pname:maxTransformFeedbackBuffers                         | - | 1         | min
5214e5c31af7Sopenharmony_ci| pname:maxTransformFeedbackBufferSize                      | - | 2^27^     | min
5215e5c31af7Sopenharmony_ci| pname:maxTransformFeedbackStreamDataSize                  | - | 512       | min
5216e5c31af7Sopenharmony_ci| pname:maxTransformFeedbackBufferDataSize                  | - | 512       | min
5217e5c31af7Sopenharmony_ci| pname:maxTransformFeedbackBufferDataStride                | - | 512       | min
5218e5c31af7Sopenharmony_ci| pname:transformFeedbackQueries                            | - | false     | implementation-dependent
5219e5c31af7Sopenharmony_ci| pname:transformFeedbackStreamsLinesTriangles              | - | false     | implementation-dependent
5220e5c31af7Sopenharmony_ci| pname:transformFeedbackRasterizationStreamSelect          | - | false     | implementation-dependent
5221e5c31af7Sopenharmony_ci| pname:transformFeedbackDraw                               | - | false     | implementation-dependent
5222e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
5223e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
5224e5c31af7Sopenharmony_ci| pname:minFragmentDensityTexelSize          | - | (1,1)       | min
5225e5c31af7Sopenharmony_ci| pname:maxFragmentDensityTexelSize          | - | (1,1)       | min
5226e5c31af7Sopenharmony_ci| pname:fragmentDensityInvocations           | - |  -          | implementation-dependent
5227e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map2[]
5228e5c31af7Sopenharmony_ci| pname:subsampledLoads                           | true  | false | implementation-dependent
5229e5c31af7Sopenharmony_ci| pname:subsampledCoarseReconstructionEarlyAccess | false | false | implementation-dependent
5230e5c31af7Sopenharmony_ci| pname:maxSubsampledArrayLayers                  | 2     | 2     | min
5231e5c31af7Sopenharmony_ci| pname:maxDescriptorSetSubsampledSamplers        | 1     | 1     | min
5232e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map2[]
5233e5c31af7Sopenharmony_ciifdef::VK_QCOM_fragment_density_map_offset[]
5234e5c31af7Sopenharmony_ci| pname:fragmentDensityOffsetGranularity     | - | (1024,1024) | max
5235e5c31af7Sopenharmony_ciendif::VK_QCOM_fragment_density_map_offset[]
5236e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
5237e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[]
5238e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[]
5239e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceRayTracingPropertiesNV::pname:shaderGroupHandleSize | - | 16      | min
5240e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceRayTracingPropertiesNV::pname:maxRecursionDepth     | - | 31      | min
5241e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing[]
5242e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
5243e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceRayTracingPipelinePropertiesKHR::pname:shaderGroupHandleSize | - | 32      | exact
5244e5c31af7Sopenharmony_ci| slink:VkPhysicalDeviceRayTracingPipelinePropertiesKHR::pname:maxRayRecursionDepth  | - | 1       | min
5245e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
5246e5c31af7Sopenharmony_ci| pname:maxShaderGroupStride                     | - | 4096    | min
5247e5c31af7Sopenharmony_ci| pname:shaderGroupBaseAlignment                 | - | 64      | max
5248e5c31af7Sopenharmony_ci| pname:maxGeometryCount                         | - | 2^24^-1 | min
5249e5c31af7Sopenharmony_ci| pname:maxInstanceCount                         | - | 2^24^-1 | min
5250e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[]
5251e5c31af7Sopenharmony_ci| pname:maxTriangleCount                         | - | 2^29^-1 | min
5252e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing[]
5253e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
5254e5c31af7Sopenharmony_ci| pname:maxPrimitiveCount                        | - | 2^29^-1 | min
5255e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorAccelerationStructures                 | - | 16         | min
5256e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindAccelerationStructures  | - | 500000 ^9^ | min
5257e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
5258e5c31af7Sopenharmony_ci| pname:maxDescriptorSetAccelerationStructures                      | - | 16         | min
5259e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[]
5260e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
5261e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUpdateAfterBindAccelerationStructures       | - | 500000 ^9^ | min
5262e5c31af7Sopenharmony_ci| pname:minAccelerationStructureScratchOffsetAlignment              | - | 256        | max
5263e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
5264e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[]
5265e5c31af7Sopenharmony_ci| pname:shaderGroupHandleCaptureReplaySize              | - | 64  | max
5266e5c31af7Sopenharmony_ci| pname:maxRayDispatchInvocationCount                   | - | 2^30^ | min
5267e5c31af7Sopenharmony_ci| pname:shaderGroupHandleAlignment                      | - | 32  | max
5268e5c31af7Sopenharmony_ci| pname:maxRayHitAttributeSize                          | - | 32  | min
5269e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[]
5270e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
5271e5c31af7Sopenharmony_ci| pname:maxTimelineSemaphoreValueDifference      | - | 2^31^-1 | min
5272e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
5273e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[]
5274e5c31af7Sopenharmony_ci| pname:lineSubPixelPrecisionBits                | - | 4    | min
5275e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[]
5276e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands[]
5277e5c31af7Sopenharmony_ci| pname:maxGraphicsShaderGroupCount               | - | 2^12^   | min
5278e5c31af7Sopenharmony_ci| pname:maxIndirectSequenceCount                  | - | 2^20^   | min
5279e5c31af7Sopenharmony_ci| pname:maxIndirectCommandsTokenCount             | - | 16     | min
5280e5c31af7Sopenharmony_ci| pname:maxIndirectCommandsStreamCount            | - | 16     | min
5281e5c31af7Sopenharmony_ci| pname:maxIndirectCommandsTokenOffset            | - | 2047   | min
5282e5c31af7Sopenharmony_ci| pname:maxIndirectCommandsStreamStride           | - | 2048   | min
5283e5c31af7Sopenharmony_ci| pname:minSequencesCountBufferOffsetAlignment    | - | 256    | max
5284e5c31af7Sopenharmony_ci| pname:minSequencesIndexBufferOffsetAlignment    | - | 256    | max
5285e5c31af7Sopenharmony_ci| pname:minIndirectCommandsBufferOffsetAlignment  | - | 256    | max
5286e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands[]
5287e5c31af7Sopenharmony_ciifdef::VK_EXT_custom_border_color[]
5288e5c31af7Sopenharmony_ci| pname:maxCustomBorderColorSamplers              | - | 32    | min
5289e5c31af7Sopenharmony_ciendif::VK_EXT_custom_border_color[]
5290e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[]
5291e5c31af7Sopenharmony_ci| pname:robustStorageBufferAccessSizeAlignment   | - | 4    | max
5292e5c31af7Sopenharmony_ci| pname:robustUniformBufferAccessSizeAlignment   | - | 256  | max
5293e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[]
5294e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[]
5295e5c31af7Sopenharmony_ci| pname:minFragmentShadingRateAttachmentTexelSize           | (0,0) | (32,32) | max
5296e5c31af7Sopenharmony_ci| pname:maxFragmentShadingRateAttachmentTexelSize           | (0,0) | (8,8)   | min
5297e5c31af7Sopenharmony_ci| pname:maxFragmentShadingRateAttachmentTexelSizeAspectRatio |  0   |   1     | min
5298e5c31af7Sopenharmony_ci| pname:primitiveFragmentShadingRateWithMultipleViewports   | false | false   | implementation-dependent
5299e5c31af7Sopenharmony_ci| pname:layeredShadingRateAttachments                       | false | false   | implementation-dependent
5300e5c31af7Sopenharmony_ci| pname:fragmentShadingRateNonTrivialCombinerOps            |   -   | false   | implementation-dependent
5301e5c31af7Sopenharmony_ci| pname:maxFragmentSize                                     |   -   | (2,2)   | min
5302e5c31af7Sopenharmony_ci| pname:maxFragmentSizeAspectRatio                          |   -   | 2       | min
5303e5c31af7Sopenharmony_ci| pname:maxFragmentShadingRateCoverageSamples               |   -   | 16      | min
5304e5c31af7Sopenharmony_ci| pname:maxFragmentShadingRateRasterizationSamples          |   -   | ename:VK_SAMPLE_COUNT_4_BIT      | min
5305e5c31af7Sopenharmony_ci| pname:fragmentShadingRateWithShaderDepthStencilWrites     |   -   | false   | implementation-dependent
5306e5c31af7Sopenharmony_ci| pname:fragmentShadingRateWithSampleMask                   |   -   | false   | implementation-dependent
5307e5c31af7Sopenharmony_ci| pname:fragmentShadingRateWithShaderSampleMask             |   -   | false   | implementation-dependent
5308e5c31af7Sopenharmony_ci| pname:fragmentShadingRateWithConservativeRasterization    |   -   | false   | implementation-dependent
5309e5c31af7Sopenharmony_ci| pname:fragmentShadingRateWithFragmentShaderInterlock      |   -   | false   | implementation-dependent
5310e5c31af7Sopenharmony_ci| pname:fragmentShadingRateWithCustomSampleLocations        |   -   | false   | implementation-dependent
5311e5c31af7Sopenharmony_ci| pname:fragmentShadingRateStrictMultiplyCombiner           |   -   | false   | implementation-dependent
5312e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[]
5313e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shading_rate_enums[]
5314e5c31af7Sopenharmony_ci| pname:maxFragmentShadingRateInvocationCount               | - | ename:VK_SAMPLE_COUNT_4_BIT | min
5315e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shading_rate_enums[]
5316e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_buffer[]
5317e5c31af7Sopenharmony_ci| pname:combinedImageSamplerDescriptorSingleArray          | - | false | implementation-dependent
5318e5c31af7Sopenharmony_ci| pname:bufferlessPushDescriptors            | - | false | implementation-dependent
5319e5c31af7Sopenharmony_ci| pname:allowSamplerImageViewPostSubmitCreation     | - | false | implementation-dependent
5320e5c31af7Sopenharmony_ci| pname:descriptorBufferOffsetAlignment             | - | 256 | max
5321e5c31af7Sopenharmony_ci| pname:maxDescriptorBufferBindings                 | - | 3 | min
5322e5c31af7Sopenharmony_ci| pname:maxResourceDescriptorBufferBindings         | - | 1 | min
5323e5c31af7Sopenharmony_ci| pname:maxSamplerDescriptorBufferBindings          | - | 1 | min
5324e5c31af7Sopenharmony_ci| pname:maxEmbeddedImmutableSamplerBindings         | - | 1 | min
5325e5c31af7Sopenharmony_ci| pname:maxEmbeddedImmutableSamplers                | - | 2032 | min
5326e5c31af7Sopenharmony_ci| pname:bufferCaptureReplayDescriptorDataSize       | - | 64 | max
5327e5c31af7Sopenharmony_ci| pname:imageCaptureReplayDescriptorDataSize        | - | 64 | max
5328e5c31af7Sopenharmony_ci| pname:imageViewCaptureReplayDescriptorDataSize    | - | 64 | max
5329e5c31af7Sopenharmony_ci| pname:samplerCaptureReplayDescriptorDataSize      | - | 64 | max
5330e5c31af7Sopenharmony_ci| pname:accelerationStructureCaptureReplayDescriptorDataSize | - | 64 | max
5331e5c31af7Sopenharmony_ci| pname:samplerDescriptorSize                       | - | 256 | max
5332e5c31af7Sopenharmony_ci| pname:combinedImageSamplerDescriptorSize          | - | 256 | max
5333e5c31af7Sopenharmony_ci| pname:sampledImageDescriptorSize                  | - | 256 | max
5334e5c31af7Sopenharmony_ci| pname:storageImageDescriptorSize                  | - | 256 | max
5335e5c31af7Sopenharmony_ci| pname:uniformTexelBufferDescriptorSize            | - | 256 | max
5336e5c31af7Sopenharmony_ci| pname:robustUniformTexelBufferDescriptorSize      | - | 256 | max
5337e5c31af7Sopenharmony_ci| pname:storageTexelBufferDescriptorSize            | - | 256 | max
5338e5c31af7Sopenharmony_ci| pname:robustStorageTexelBufferDescriptorSize      | - | 256 | max
5339e5c31af7Sopenharmony_ci| pname:uniformBufferDescriptorSize                 | - | 256 | max
5340e5c31af7Sopenharmony_ci| pname:robustUniformBufferDescriptorSize           | - | 256 | max
5341e5c31af7Sopenharmony_ci| pname:storageBufferDescriptorSize                 | - | 256 | max
5342e5c31af7Sopenharmony_ci| pname:robustStorageBufferDescriptorSize           | - | 256 | max
5343e5c31af7Sopenharmony_ci| pname:inputAttachmentDescriptorSize               | - | 256 | max
5344e5c31af7Sopenharmony_ci| pname:accelerationStructureDescriptorSize         | - | 256 | max
5345e5c31af7Sopenharmony_ci| pname:maxSamplerDescriptorBufferRange             | - | [eq]#2^11^ {times} pname:samplerDescriptorSize# | min
5346e5c31af7Sopenharmony_ci| pname:maxResourceDescriptorBufferRange            | - | [eq]#(2^20^ - 2^15^) {times} ptext:maxResourceDescriptorSize# ^12^ | min
5347e5c31af7Sopenharmony_ci| pname:samplerDescriptorBufferAddressSpaceSize     | - | 2^27^ | min
5348e5c31af7Sopenharmony_ci| pname:resourceDescriptorBufferAddressSpaceSize    | - | 2^27^ | min
5349e5c31af7Sopenharmony_ci| pname:descriptorBufferAddressSpaceSize            | - | 2^27^ | min
5350e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
5351e5c31af7Sopenharmony_ci| pname:combinedImageSamplerDensityMapDescriptorSize          | - | 256 | max
5352e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
5353e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_buffer[]
5354e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_subpass_shading[]
5355e5c31af7Sopenharmony_ci| pname:maxSubpassShadingWorkgroupSizeAspectRatio |  0   |   1     | min
5356e5c31af7Sopenharmony_ciendif::VK_HUAWEI_subpass_shading[]
5357e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
5358e5c31af7Sopenharmony_ci| pname:maxMultiDrawCount               | - | 1024 | min
5359e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
5360e5c31af7Sopenharmony_ciifdef::VK_EXT_nested_command_buffer[]
5361e5c31af7Sopenharmony_ci| pname:maxCommandBufferNestingLevel                        | - | 1 | min
5362e5c31af7Sopenharmony_ciendif::VK_EXT_nested_command_buffer[]
5363e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
5364e5c31af7Sopenharmony_ci| pname:deviceNoDynamicHostAllocations                      | - | -      | implementation-dependent
5365e5c31af7Sopenharmony_ci| pname:deviceDestroyFreesMemory                            | - | -      | implementation-dependent
5366e5c31af7Sopenharmony_ci| pname:commandPoolMultipleCommandBuffersRecording          | - | -      | implementation-dependent
5367e5c31af7Sopenharmony_ci| pname:commandPoolResetCommandBuffer                       | - | -      | implementation-dependent
5368e5c31af7Sopenharmony_ci| pname:commandBufferSimultaneousUse                        | - | -      | implementation-dependent
5369e5c31af7Sopenharmony_ci| pname:secondaryCommandBufferNullOrImagelessFramebuffer    | - | -      | implementation-dependent
5370e5c31af7Sopenharmony_ci| pname:recycleDescriptorSetMemory                          | - | -      | implementation-dependent
5371e5c31af7Sopenharmony_ci| pname:recyclePipelineMemory                               | - | -      | implementation-dependent
5372e5c31af7Sopenharmony_ci| pname:maxRenderPassSubpasses                              | - | 1      | min
5373e5c31af7Sopenharmony_ci| pname:maxRenderPassDependencies                           | - | 18     | min
5374e5c31af7Sopenharmony_ci| pname:maxSubpassInputAttachments                          | - | 0      | min
5375e5c31af7Sopenharmony_ci| pname:maxSubpassPreserveAttachments                       | - | 0      | min
5376e5c31af7Sopenharmony_ci| pname:maxFramebufferAttachments                           | - | 9 ^11^ | min
5377e5c31af7Sopenharmony_ci| pname:maxDescriptorSetLayoutBindings                      | - | 64     | min
5378e5c31af7Sopenharmony_ci| pname:maxQueryFaultCount                                  | - | 16     | min
5379e5c31af7Sopenharmony_ci| pname:maxCallbackFaultCount                               | - | 1      | min
5380e5c31af7Sopenharmony_ci| pname:maxCommandPoolCommandBuffers                        | - | 256    | min
5381e5c31af7Sopenharmony_ci| pname:maxCommandBufferSize                                | - | 2^20^  | min
5382e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
5383e5c31af7Sopenharmony_ciifdef::VK_EXT_graphics_pipeline_library[]
5384e5c31af7Sopenharmony_ci| pname:graphicsPipelineLibraryFastLinking                  | - | false | implementation-dependent
5385e5c31af7Sopenharmony_ci| pname:graphicsPipelineLibraryIndependentInterpolationDecoration | - | false | implementation-dependent
5386e5c31af7Sopenharmony_ciendif::VK_EXT_graphics_pipeline_library[]
5387e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shader_barycentric[]
5388e5c31af7Sopenharmony_ci| pname:triStripVertexOrderIndependentOfProvokingVertex     |   -   | false   | implementation-dependent
5389e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shader_barycentric[]
5390e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing[]
5391e5c31af7Sopenharmony_ci| pname:maxWeightFilterPhases           | - | 1024    | min
5392e5c31af7Sopenharmony_ci| pname:maxWeightFilterDimension        | - | (64,64) | min
5393e5c31af7Sopenharmony_ci| pname:maxBlockMatchRegion             | - | (64,64) | min
5394e5c31af7Sopenharmony_ci| pname:maxBoxFilterBlockSize           | - | (64,64) | min
5395e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing[]
5396e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state3[]
5397e5c31af7Sopenharmony_ci| pname:dynamicPrimitiveTopologyUnrestricted   | - | -   | implementation-dependent
5398e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state3[]
5399e5c31af7Sopenharmony_ciifdef::VK_EXT_opacity_micromap[]
5400e5c31af7Sopenharmony_ci| pname:maxOpacity2StateSubdivisionLevel | - | 3      | min
5401e5c31af7Sopenharmony_ci| pname:maxOpacity4StateSubdivisionLevel | - | 3      | min
5402e5c31af7Sopenharmony_ciendif::VK_EXT_opacity_micromap[]
5403e5c31af7Sopenharmony_ciifdef::VK_NV_memory_decompression[]
5404e5c31af7Sopenharmony_ci| pname:maxDecompressionIndirectCount    | 1 | 2^16^-1 | min
5405e5c31af7Sopenharmony_ciendif::VK_NV_memory_decompression[]
5406e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_cluster_culling_shader[]
5407e5c31af7Sopenharmony_ci| pname:maxWorkGroupCount | - | (65536,1,1) | min
5408e5c31af7Sopenharmony_ci| pname:maxWorkGroupSize  | - | (32,1,1) | min
5409e5c31af7Sopenharmony_ci| pname:maxOutputClusterCount | - | 1024 | min
5410e5c31af7Sopenharmony_ci| pname:indirectBufferOffsetAlignment | - | - | implementation-dependent
5411e5c31af7Sopenharmony_ciendif::VK_HUAWEI_cluster_culling_shader[]
5412e5c31af7Sopenharmony_ciifdef::VK_AMDX_shader_enqueue[]
5413e5c31af7Sopenharmony_ci| pname:maxExecutionGraphDepth                              |   -   | 32      | min
5414e5c31af7Sopenharmony_ci| pname:maxExecutionGraphShaderOutputNodes                  |   -   | 256     | min
5415e5c31af7Sopenharmony_ci| pname:maxExecutionGraphShaderPayloadSize                  |   -   | 32768   | min
5416e5c31af7Sopenharmony_ci| pname:maxExecutionGraphShaderPayloadCount                 |   -   | 256     | min
5417e5c31af7Sopenharmony_ci| pname:executionGraphDispatchAddressAlignment              |   -   | 4       | max
5418e5c31af7Sopenharmony_ciendif::VK_AMDX_shader_enqueue[]
5419e5c31af7Sopenharmony_ciifdef::VK_NV_extended_sparse_address_space[]
5420e5c31af7Sopenharmony_ci| pname:extendedSparseAddressSpaceSize                      |   0   | pname:sparseAddressSpaceSize | min
5421e5c31af7Sopenharmony_ciendif::VK_NV_extended_sparse_address_space[]
5422e5c31af7Sopenharmony_ciifdef::VK_ARM_render_pass_striped[]
5423e5c31af7Sopenharmony_ci| pname:renderPassStripeGranularity               | - | (64,64) | max
5424e5c31af7Sopenharmony_ci| pname:maxRenderPassStripes                      | - | 32 | min
5425e5c31af7Sopenharmony_ciendif::VK_ARM_render_pass_striped[]
5426e5c31af7Sopenharmony_ci|====
5427e5c31af7Sopenharmony_ci
5428e5c31af7Sopenharmony_ci1::
5429e5c31af7Sopenharmony_ci    The *Limit Type* column specifies the limit is either the minimum limit
5430e5c31af7Sopenharmony_ci    all implementations must: support, the maximum limit all implementations
5431e5c31af7Sopenharmony_ci    must: support, or the exact value all implementations must: support.
5432e5c31af7Sopenharmony_ci    For bitmasks a minimum limit is the least bits all implementations must:
5433e5c31af7Sopenharmony_ci    set, but they may: have additional bits set beyond this minimum.
5434e5c31af7Sopenharmony_ci
5435e5c31af7Sopenharmony_ci2::
5436e5c31af7Sopenharmony_ci    The pname:maxPerStageResources must: be at least the smallest of the
5437e5c31af7Sopenharmony_ci    following:
5438e5c31af7Sopenharmony_ci+
5439e5c31af7Sopenharmony_ci  * the sum of the pname:maxPerStageDescriptorUniformBuffers,
5440e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorStorageBuffers,
5441e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorSampledImages,
5442e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorStorageImages,
5443e5c31af7Sopenharmony_ci    pname:maxPerStageDescriptorInputAttachments, pname:maxColorAttachments
5444e5c31af7Sopenharmony_ci    limits, or
5445e5c31af7Sopenharmony_ci  * 128.
5446e5c31af7Sopenharmony_ci+
5447e5c31af7Sopenharmony_ciIt may: not be possible to reach this limit in every stage.
5448e5c31af7Sopenharmony_ci
5449e5c31af7Sopenharmony_ci3::
5450e5c31af7Sopenharmony_ci    See <<limits-maxViewportDimensions, pname:maxViewportDimensions>> for
5451e5c31af7Sopenharmony_ci    the required: relationship to other limits.
5452e5c31af7Sopenharmony_ci
5453e5c31af7Sopenharmony_ci4::
5454e5c31af7Sopenharmony_ci    See <<limits-viewportboundsrange, pname:viewportBoundsRange>> for the
5455e5c31af7Sopenharmony_ci    required: relationship to other limits.
5456e5c31af7Sopenharmony_ci
5457e5c31af7Sopenharmony_ci5::
5458e5c31af7Sopenharmony_ci    The values pname:minInterpolationOffset and pname:maxInterpolationOffset
5459e5c31af7Sopenharmony_ci    describe the closed interval of supported interpolation offsets:
5460e5c31af7Sopenharmony_ci    [pname:minInterpolationOffset, pname:maxInterpolationOffset].
5461e5c31af7Sopenharmony_ci    The ULP is determined by pname:subPixelInterpolationOffsetBits.
5462e5c31af7Sopenharmony_ci    If pname:subPixelInterpolationOffsetBits is 4, this provides increments
5463e5c31af7Sopenharmony_ci    of (1/2^4^) = 0.0625, and thus the range of supported interpolation
5464e5c31af7Sopenharmony_ci    offsets would be [eq]#[-0.5, 0.4375]#.
5465e5c31af7Sopenharmony_ci
5466e5c31af7Sopenharmony_ci6::
5467e5c31af7Sopenharmony_ci    The point size ULP is determined by pname:pointSizeGranularity.
5468e5c31af7Sopenharmony_ci    If the pname:pointSizeGranularity is 0.125, the range of supported point
5469e5c31af7Sopenharmony_ci    sizes must: be at least [1.0, 63.875].
5470e5c31af7Sopenharmony_ci
5471e5c31af7Sopenharmony_ci7::
5472e5c31af7Sopenharmony_ci    The line width ULP is determined by pname:lineWidthGranularity.
5473e5c31af7Sopenharmony_ci    If the pname:lineWidthGranularity is 0.0625, the range of supported line
5474e5c31af7Sopenharmony_ci    widths must: be at least [1.0, 7.9375].
5475e5c31af7Sopenharmony_ci
5476e5c31af7Sopenharmony_ci8::
5477e5c31af7Sopenharmony_ci    The minimum ptext:maxDescriptorSet* limit is _n_ times the corresponding
5478e5c31af7Sopenharmony_ci    _specification_ minimum ptext:maxPerStageDescriptor* limit, where _n_ is
5479e5c31af7Sopenharmony_ci    the number of shader stages supported by the slink:VkPhysicalDevice.
5480e5c31af7Sopenharmony_ci    If all shader stages are supported, _n_ = 6 (vertex, tessellation
5481e5c31af7Sopenharmony_ci    control, tessellation evaluation, geometry, fragment, compute).
5482e5c31af7Sopenharmony_ci
5483e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
5484e5c31af7Sopenharmony_ci9::
5485e5c31af7Sopenharmony_ci    The ptext:UpdateAfterBind descriptor limits must: each be greater than
5486e5c31af7Sopenharmony_ci    or equal to the corresponding ptext:non-UpdateAfterBind limit.
5487e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[]
5488e5c31af7Sopenharmony_ci
5489e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[]
5490e5c31af7Sopenharmony_ci10::
5491e5c31af7Sopenharmony_ci     If the `apiext:VK_KHR_portability_subset` extension is enabled, the
5492e5c31af7Sopenharmony_ci     required minimum value of pname:maxVertexInputBindings is code:8.
5493e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[]
5494e5c31af7Sopenharmony_ci
5495e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[]
5496e5c31af7Sopenharmony_ci11:: ptext:maxFramebufferAttachments must: be greater than or equal to two
5497e5c31af7Sopenharmony_ci     times pname:maxColorAttachments (for color and resolve attachments)
5498e5c31af7Sopenharmony_ci     plus one (for the depth/stencil attachment), or else must: be equal to
5499e5c31af7Sopenharmony_ci     2^32^-1.
5500e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[]
5501e5c31af7Sopenharmony_ci
5502e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_buffer[]
5503e5c31af7Sopenharmony_ci12::
5504e5c31af7Sopenharmony_ci     ptext:maxResourceDescriptorSize is defined as the maximum value of
5505e5c31af7Sopenharmony_ci     pname:storageImageDescriptorSize, pname:sampledImageDescriptorSize,
5506e5c31af7Sopenharmony_ci     pname:robustUniformTexelBufferDescriptorSize,
5507e5c31af7Sopenharmony_ci     pname:robustStorageTexelBufferDescriptorSize,
5508e5c31af7Sopenharmony_ci     pname:robustUniformBufferDescriptorSize,
5509e5c31af7Sopenharmony_ci     pname:robustStorageBufferDescriptorSize,
5510e5c31af7Sopenharmony_ci     pname:inputAttachmentDescriptorSize, and
5511e5c31af7Sopenharmony_ci     pname:accelerationStructureDescriptorSize.
5512e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_buffer[]
5513e5c31af7Sopenharmony_ci
5514e5c31af7Sopenharmony_ci
5515e5c31af7Sopenharmony_ciifdef::VK_EXT_sample_locations[]
5516e5c31af7Sopenharmony_ci[[limits-multisample]]
5517e5c31af7Sopenharmony_ci== Additional Multisampling Capabilities
5518e5c31af7Sopenharmony_ci
5519e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceMultisamplePropertiesEXT',desc='Report sample count specific multisampling capabilities of a physical device',type='protos']
5520e5c31af7Sopenharmony_ci--
5521e5c31af7Sopenharmony_ciTo query additional multisampling capabilities which may: be supported for a
5522e5c31af7Sopenharmony_cispecific sample count, beyond the minimum capabilities described for
5523e5c31af7Sopenharmony_ci<<limits, Limits>> above, call:
5524e5c31af7Sopenharmony_ci
5525e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceMultisamplePropertiesEXT.adoc[]
5526e5c31af7Sopenharmony_ci
5527e5c31af7Sopenharmony_ci  * pname:physicalDevice is the physical device from which to query the
5528e5c31af7Sopenharmony_ci    additional multisampling capabilities.
5529e5c31af7Sopenharmony_ci  * pname:samples is a elink:VkSampleCountFlagBits value specifying the
5530e5c31af7Sopenharmony_ci    sample count to query capabilities for.
5531e5c31af7Sopenharmony_ci  * pname:pMultisampleProperties is a pointer to a
5532e5c31af7Sopenharmony_ci    slink:VkMultisamplePropertiesEXT structure in which information about
5533e5c31af7Sopenharmony_ci    additional multisampling capabilities specific to the sample count is
5534e5c31af7Sopenharmony_ci    returned.
5535e5c31af7Sopenharmony_ci
5536e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceMultisamplePropertiesEXT.adoc[]
5537e5c31af7Sopenharmony_ci--
5538e5c31af7Sopenharmony_ci
5539e5c31af7Sopenharmony_ci[open,refpage='VkMultisamplePropertiesEXT',desc='Structure returning information about sample count specific additional multisampling capabilities',type='structs']
5540e5c31af7Sopenharmony_ci--
5541e5c31af7Sopenharmony_ciThe sname:VkMultisamplePropertiesEXT structure is defined as
5542e5c31af7Sopenharmony_ci
5543e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkMultisamplePropertiesEXT.adoc[]
5544e5c31af7Sopenharmony_ci
5545e5c31af7Sopenharmony_ci  * pname:sType is a elink:VkStructureType value identifying this structure.
5546e5c31af7Sopenharmony_ci  * pname:pNext is `NULL` or a pointer to a structure extending this
5547e5c31af7Sopenharmony_ci    structure.
5548e5c31af7Sopenharmony_ci  * pname:maxSampleLocationGridSize is the maximum size of the pixel grid in
5549e5c31af7Sopenharmony_ci    which sample locations can: vary.
5550e5c31af7Sopenharmony_ci
5551e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkMultisamplePropertiesEXT.adoc[]
5552e5c31af7Sopenharmony_ci--
5553e5c31af7Sopenharmony_ci
5554e5c31af7Sopenharmony_ciIf the sample count for which additional multisampling capabilities are
5555e5c31af7Sopenharmony_cirequested using fname:vkGetPhysicalDeviceMultisamplePropertiesEXT is set in
5556e5c31af7Sopenharmony_ci<<limits-sampleLocationSampleCounts, pname:sampleLocationSampleCounts>> the
5557e5c31af7Sopenharmony_cipname:width and pname:height members of
5558e5c31af7Sopenharmony_cisname:VkMultisamplePropertiesEXT::pname:maxSampleLocationGridSize must: be
5559e5c31af7Sopenharmony_cigreater than or equal to the corresponding members of
5560e5c31af7Sopenharmony_ci<<limits-maxSampleLocationGridSize, pname:maxSampleLocationGridSize>>,
5561e5c31af7Sopenharmony_cirespectively, otherwise both members must: be `0`.
5562e5c31af7Sopenharmony_ci
5563e5c31af7Sopenharmony_ciendif::VK_EXT_sample_locations[]
5564e5c31af7Sopenharmony_ci
5565e5c31af7Sopenharmony_ci// If you are adding a new features structure, it must be placed at the end
5566e5c31af7Sopenharmony_ci// of the previous section (immediately before <<limits-multisample>>).
5567e5c31af7Sopenharmony_ci
5568e5c31af7Sopenharmony_ci
5569e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[]
5570e5c31af7Sopenharmony_ci[[profile-limits]]
5571e5c31af7Sopenharmony_ci== Profile Limits
5572e5c31af7Sopenharmony_ci
5573e5c31af7Sopenharmony_ci
5574e5c31af7Sopenharmony_ci[[profile-limits-roadmap-2022]]
5575e5c31af7Sopenharmony_ci=== Roadmap 2022
5576e5c31af7Sopenharmony_ci
5577e5c31af7Sopenharmony_ciImplementations that claim support for the <<roadmap-2022, Roadmap 2022>>
5578e5c31af7Sopenharmony_ciprofile must: satisfy the following additional limit requirements:
5579e5c31af7Sopenharmony_ci
5580e5c31af7Sopenharmony_ci[width="100%",cols="<35,<14,<11",options="header"]
5581e5c31af7Sopenharmony_ci|====
5582e5c31af7Sopenharmony_ci| Limit                                    | Supported Limit  | Limit Type^1^
5583e5c31af7Sopenharmony_ci| pname:maxImageDimension1D                   | 8192          | min
5584e5c31af7Sopenharmony_ci| pname:maxImageDimension2D                   | 8192          | min
5585e5c31af7Sopenharmony_ci| pname:maxImageDimensionCube                 | 8192          | min
5586e5c31af7Sopenharmony_ci| pname:maxImageArrayLayers                   | 2048          | min
5587e5c31af7Sopenharmony_ci| pname:maxUniformBufferRange                 | 65536         | min
5588e5c31af7Sopenharmony_ci| pname:bufferImageGranularity                | 4096          | max
5589e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorSamplers         | 64            | min
5590e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUniformBuffers   | 15            | min
5591e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorStorageBuffers   | 30            | min
5592e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorSampledImages    | 200           | min
5593e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorStorageImages    | 16            | min
5594e5c31af7Sopenharmony_ci| pname:maxPerStageResources                  | 200           | min
5595e5c31af7Sopenharmony_ci| pname:maxDescriptorSetSamplers              | 576           | min
5596e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUniformBuffers        | 90            | min
5597e5c31af7Sopenharmony_ci| pname:maxDescriptorSetStorageBuffers        | 96            | min
5598e5c31af7Sopenharmony_ci| pname:maxDescriptorSetSampledImages         | 1800          | min
5599e5c31af7Sopenharmony_ci| pname:maxDescriptorSetStorageImages         | 144           | min
5600e5c31af7Sopenharmony_ci| pname:maxFragmentCombinedOutputResources    | 16            | min
5601e5c31af7Sopenharmony_ci| pname:maxComputeWorkGroupInvocations        | 256           | min
5602e5c31af7Sopenharmony_ci| pname:maxComputeWorkGroupSize               | (256,256,64)  | min
5603e5c31af7Sopenharmony_ci| pname:subTexelPrecisionBits                 | 8             | min
5604e5c31af7Sopenharmony_ci| pname:mipmapPrecisionBits                   | 6             | min
5605e5c31af7Sopenharmony_ci| pname:maxSamplerLodBias                     | 14            | min
5606e5c31af7Sopenharmony_ci| pname:pointSizeGranularity                  | 0.125         | max
5607e5c31af7Sopenharmony_ci| pname:lineWidthGranularity                  | 0.5           | max
5608e5c31af7Sopenharmony_ci| pname:standardSampleLocations               | ename:VK_TRUE | Boolean
5609e5c31af7Sopenharmony_ci| pname:maxColorAttachments                   | 7             | min
5610e5c31af7Sopenharmony_ci| pname:subgroupSize                          | 4             | min
5611e5c31af7Sopenharmony_ci| pname:subgroupSupportedStages               | ename:VK_SHADER_STAGE_COMPUTE_BIT +
5612e5c31af7Sopenharmony_ci                                                ename:VK_SHADER_STAGE_FRAGMENT_BIT
5613e5c31af7Sopenharmony_ci                                                              | bitfield
5614e5c31af7Sopenharmony_ci| pname:subgroupSupportedOperations           | ename:VK_SUBGROUP_FEATURE_BASIC_BIT +
5615e5c31af7Sopenharmony_ci                                                ename:VK_SUBGROUP_FEATURE_VOTE_BIT +
5616e5c31af7Sopenharmony_ci                                                ename:VK_SUBGROUP_FEATURE_ARITHMETIC_BIT +
5617e5c31af7Sopenharmony_ci                                                ename:VK_SUBGROUP_FEATURE_BALLOT_BIT +
5618e5c31af7Sopenharmony_ci                                                ename:VK_SUBGROUP_FEATURE_SHUFFLE_BIT +
5619e5c31af7Sopenharmony_ci                                                ename:VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT +
5620e5c31af7Sopenharmony_ci                                                ename:VK_SUBGROUP_FEATURE_QUAD_BIT
5621e5c31af7Sopenharmony_ci                                                              | bitfield
5622e5c31af7Sopenharmony_ci| pname:shaderSignedZeroInfNanPreserveFloat16 | ename:VK_TRUE | Boolean
5623e5c31af7Sopenharmony_ci| pname:shaderSignedZeroInfNanPreserveFloat32 | ename:VK_TRUE | Boolean
5624e5c31af7Sopenharmony_ci| pname:maxSubgroupSize                       | 4             | min
5625e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindInputAttachments | 7    | min
5626e5c31af7Sopenharmony_ci|====
5627e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[]
5628