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