1e5c31af7Sopenharmony_ci// Copyright 2021-2024 The Khronos Group Inc. 2e5c31af7Sopenharmony_ci// 3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0 4e5c31af7Sopenharmony_ci 5e5c31af7Sopenharmony_ci:times: × 6e5c31af7Sopenharmony_ci 7e5c31af7Sopenharmony_ci[[roadmap-2022]] 8e5c31af7Sopenharmony_ci== Roadmap 2022 9e5c31af7Sopenharmony_ci 10e5c31af7Sopenharmony_ciThe Roadmap 2022 milestone is intended to be supported by newer mid-to-high-end devices shipping in 2022 or shortly thereafter across mainstream smartphone, tablet, laptops, console and desktop devices. 11e5c31af7Sopenharmony_ci 12e5c31af7Sopenharmony_ci=== Required API Versions 13e5c31af7Sopenharmony_ci 14e5c31af7Sopenharmony_ciThis profile requires Vulkan 1.3. 15e5c31af7Sopenharmony_ci 16e5c31af7Sopenharmony_ci=== Required Features 17e5c31af7Sopenharmony_ci 18e5c31af7Sopenharmony_ciThe following core optional features are required to be supported: 19e5c31af7Sopenharmony_ci 20e5c31af7Sopenharmony_ci * Vulkan 1.0 Optional Features 21e5c31af7Sopenharmony_ci ** <<features-fullDrawIndexUint32, pname:fullDrawIndexUint32>> 22e5c31af7Sopenharmony_ci ** <<features-imageCubeArray, pname:imageCubeArray>> 23e5c31af7Sopenharmony_ci ** <<features-independentBlend, pname:independentBlend>> 24e5c31af7Sopenharmony_ci ** <<features-sampleRateShading, pname:sampleRateShading>> 25e5c31af7Sopenharmony_ci ** <<features-drawIndirectFirstInstance, pname:drawIndirectFirstInstance>> 26e5c31af7Sopenharmony_ci ** <<features-depthClamp, pname:depthClamp>> 27e5c31af7Sopenharmony_ci ** <<features-depthBiasClamp, pname:depthBiasClamp>> 28e5c31af7Sopenharmony_ci ** <<features-samplerAnisotropy, pname:samplerAnisotropy>> 29e5c31af7Sopenharmony_ci ** <<features-occlusionQueryPrecise, pname:occlusionQueryPrecise>> 30e5c31af7Sopenharmony_ci ** <<features-fragmentStoresAndAtomics, pname:fragmentStoresAndAtomics>> 31e5c31af7Sopenharmony_ci ** <<features-shaderStorageImageExtendedFormats, pname:shaderStorageImageExtendedFormats>> 32e5c31af7Sopenharmony_ci ** <<features-shaderUniformBufferArrayDynamicIndexing, pname:shaderUniformBufferArrayDynamicIndexing>> 33e5c31af7Sopenharmony_ci ** <<features-shaderSampledImageArrayDynamicIndexing, pname:shaderSampledImageArrayDynamicIndexing>> 34e5c31af7Sopenharmony_ci ** <<features-shaderStorageBufferArrayDynamicIndexing, pname:shaderStorageBufferArrayDynamicIndexing>> 35e5c31af7Sopenharmony_ci ** <<features-shaderStorageImageArrayDynamicIndexing, pname:shaderStorageImageArrayDynamicIndexing>> 36e5c31af7Sopenharmony_ci * Vulkan 1.1 Optional Features 37e5c31af7Sopenharmony_ci ** <<features-samplerYcbcrConversion, pname:samplerYcbcrConversion>> 38e5c31af7Sopenharmony_ci * Vulkan 1.2 Optional Features 39e5c31af7Sopenharmony_ci ** <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>> 40e5c31af7Sopenharmony_ci ** <<features-descriptorIndexing, pname:descriptorIndexing>> 41e5c31af7Sopenharmony_ci ** <<features-shaderUniformTexelBufferArrayDynamicIndexing, pname:shaderUniformTexelBufferArrayDynamicIndexing>> 42e5c31af7Sopenharmony_ci ** <<features-shaderStorageTexelBufferArrayDynamicIndexing, pname:shaderStorageTexelBufferArrayDynamicIndexing>> 43e5c31af7Sopenharmony_ci ** <<features-shaderUniformBufferArrayNonUniformIndexing, pname:shaderUniformBufferArrayNonUniformIndexing>> 44e5c31af7Sopenharmony_ci ** <<features-shaderSampledImageArrayNonUniformIndexing, pname:shaderSampledImageArrayNonUniformIndexing>> 45e5c31af7Sopenharmony_ci ** <<features-shaderStorageBufferArrayNonUniformIndexing, pname:shaderStorageBufferArrayNonUniformIndexing>> 46e5c31af7Sopenharmony_ci ** <<features-shaderStorageImageArrayNonUniformIndexing, pname:shaderStorageImageArrayNonUniformIndexing>> 47e5c31af7Sopenharmony_ci ** <<features-shaderUniformTexelBufferArrayNonUniformIndexing, pname:shaderUniformTexelBufferArrayNonUniformIndexing>> 48e5c31af7Sopenharmony_ci ** <<features-shaderStorageTexelBufferArrayNonUniformIndexing, pname:shaderStorageTexelBufferArrayNonUniformIndexing>> 49e5c31af7Sopenharmony_ci ** <<features-descriptorBindingSampledImageUpdateAfterBind, pname:descriptorBindingSampledImageUpdateAfterBind>> 50e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageImageUpdateAfterBind, pname:descriptorBindingStorageImageUpdateAfterBind>> 51e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageBufferUpdateAfterBind, pname:descriptorBindingStorageBufferUpdateAfterBind>> 52e5c31af7Sopenharmony_ci ** <<features-descriptorBindingUniformTexelBufferUpdateAfterBind, pname:descriptorBindingUniformTexelBufferUpdateAfterBind>> 53e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageTexelBufferUpdateAfterBind, pname:descriptorBindingStorageTexelBufferUpdateAfterBind>> 54e5c31af7Sopenharmony_ci ** <<features-descriptorBindingUpdateUnusedWhilePending, pname:descriptorBindingUpdateUnusedWhilePending>> 55e5c31af7Sopenharmony_ci ** <<features-descriptorBindingPartiallyBound, pname:descriptorBindingPartiallyBound>> 56e5c31af7Sopenharmony_ci ** <<features-descriptorBindingVariableDescriptorCount, pname:descriptorBindingVariableDescriptorCount>> 57e5c31af7Sopenharmony_ci ** <<features-runtimeDescriptorArray, pname:runtimeDescriptorArray>> 58e5c31af7Sopenharmony_ci ** <<features-scalarBlockLayout, pname:scalarBlockLayout>> 59e5c31af7Sopenharmony_ci 60e5c31af7Sopenharmony_ci=== Required Limits 61e5c31af7Sopenharmony_ci 62e5c31af7Sopenharmony_ciThe following core increased limits are required: 63e5c31af7Sopenharmony_ci 64e5c31af7Sopenharmony_ci.Vulkan 1.0 Limits 65e5c31af7Sopenharmony_ci[width="100%",cols="<35,<9,<14,<14,<11",options="header"] 66e5c31af7Sopenharmony_ci|==== 67e5c31af7Sopenharmony_ci| Limit Name | Unsupported Limit | Core Limit | Profile Limit | Limit Type^1^ 68e5c31af7Sopenharmony_ci| pname:maxImageDimension1D | - | 4096 | 8192 | min 69e5c31af7Sopenharmony_ci| pname:maxImageDimension2D | - | 4096 | 8192 | min 70e5c31af7Sopenharmony_ci| pname:maxImageDimensionCube | - | 4096 | 8192 | min 71e5c31af7Sopenharmony_ci| pname:maxImageArrayLayers | - | 256 | 2048 | min 72e5c31af7Sopenharmony_ci| pname:maxUniformBufferRange | - | 16384 | 65536 | min 73e5c31af7Sopenharmony_ci| pname:bufferImageGranularity | - | 131072 | 4096 | max 74e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorSamplers | - | 16 | 64 | min 75e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUniformBuffers | - | 12 | 15 | min 76e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorStorageBuffers | - | 4 | 30 | min 77e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorSampledImages | - | 16 | 200 | min 78e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorStorageImages | - | 4 | 16 | min 79e5c31af7Sopenharmony_ci| pname:maxPerStageResources | - | 128 | 200 | min 80e5c31af7Sopenharmony_ci| pname:maxDescriptorSetSamplers | - | 96 | 576 | min, _n_ {times} PerStage 81e5c31af7Sopenharmony_ci| pname:maxDescriptorSetUniformBuffers | - | 72 | 90 | min, _n_ {times} PerStage 82e5c31af7Sopenharmony_ci| pname:maxDescriptorSetStorageBuffers | - | 24 | 96 | min, _n_ {times} PerStage 83e5c31af7Sopenharmony_ci| pname:maxDescriptorSetSampledImages | - | 96 | 1800 | min, _n_ {times} PerStage 84e5c31af7Sopenharmony_ci| pname:maxDescriptorSetStorageImages | - | 24 | 144 | min, _n_ {times} PerStage 85e5c31af7Sopenharmony_ci| pname:maxFragmentCombinedOutputResources | - | 4 | 16 | min 86e5c31af7Sopenharmony_ci| pname:maxComputeWorkGroupInvocations | - | 128 | 256 | min 87e5c31af7Sopenharmony_ci| pname:maxComputeWorkGroupSize | - | (128,128,64) | (256,256,64) | min 88e5c31af7Sopenharmony_ci| pname:subTexelPrecisionBits | - | 4 | 8 | min 89e5c31af7Sopenharmony_ci| pname:mipmapPrecisionBits | - | 4 | 6 | min 90e5c31af7Sopenharmony_ci| pname:maxSamplerLodBias | - | 2 | 14 | min 91e5c31af7Sopenharmony_ci| pname:pointSizeGranularity | 0.0 | 1.0 | 0.125 | max, fixed point increment 92e5c31af7Sopenharmony_ci| pname:lineWidthGranularity | 0.0 | 1.0 | 0.5 | max, fixed point increment 93e5c31af7Sopenharmony_ci| pname:standardSampleLocations | - | - | ename:VK_TRUE | implementation-dependent 94e5c31af7Sopenharmony_ci| pname:maxColorAttachments | - | 4 | 7 | min 95e5c31af7Sopenharmony_ci|==== 96e5c31af7Sopenharmony_ci 97e5c31af7Sopenharmony_ci.Vulkan 1.1 Limits 98e5c31af7Sopenharmony_ci[width="100%",cols="<35,<9,<14,<14,<11",options="header"] 99e5c31af7Sopenharmony_ci|==== 100e5c31af7Sopenharmony_ci| Limit Name | Unsupported Limit | Core Limit | Profile Limit | Limit Type^1^ 101e5c31af7Sopenharmony_ci| pname:subgroupSize | - | 1/4 | 4 | implementation-dependent 102e5c31af7Sopenharmony_ci| pname:subgroupSupportedStages | - | ename:VK_SHADER_STAGE_COMPUTE_BIT 103e5c31af7Sopenharmony_ci | ename:VK_SHADER_STAGE_COMPUTE_BIT + 104e5c31af7Sopenharmony_ci ename:VK_SHADER_STAGE_FRAGMENT_BIT 105e5c31af7Sopenharmony_ci | implementation-dependent 106e5c31af7Sopenharmony_ci| pname:subgroupSupportedOperations | - | ename:VK_SUBGROUP_FEATURE_BASIC_BIT 107e5c31af7Sopenharmony_ci | ename:VK_SUBGROUP_FEATURE_BASIC_BIT + 108e5c31af7Sopenharmony_ci ename:VK_SUBGROUP_FEATURE_VOTE_BIT + 109e5c31af7Sopenharmony_ci ename:VK_SUBGROUP_FEATURE_ARITHMETIC_BIT + 110e5c31af7Sopenharmony_ci ename:VK_SUBGROUP_FEATURE_BALLOT_BIT + 111e5c31af7Sopenharmony_ci ename:VK_SUBGROUP_FEATURE_SHUFFLE_BIT + 112e5c31af7Sopenharmony_ci ename:VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT + 113e5c31af7Sopenharmony_ci ename:VK_SUBGROUP_FEATURE_QUAD_BIT 114e5c31af7Sopenharmony_ci | implementation-dependent 115e5c31af7Sopenharmony_ci|==== 116e5c31af7Sopenharmony_ci 117e5c31af7Sopenharmony_ci.Vulkan 1.2 Limits 118e5c31af7Sopenharmony_ci[width="100%",cols="<35,<9,<14,<14,<11",options="header"] 119e5c31af7Sopenharmony_ci|==== 120e5c31af7Sopenharmony_ci| Limit Name | Unsupported Limit | Core Limit | Profile Limit | Limit Type^1^ 121e5c31af7Sopenharmony_ci| pname:shaderSignedZeroInfNanPreserveFloat16 | - | - | ename:VK_TRUE | implementation-dependent 122e5c31af7Sopenharmony_ci| pname:shaderSignedZeroInfNanPreserveFloat32 | - | - | ename:VK_TRUE | implementation-dependent 123e5c31af7Sopenharmony_ci| pname:maxPerStageDescriptorUpdateAfterBindInputAttachments | 0 | 4 | 7 | min 124e5c31af7Sopenharmony_ci|==== 125e5c31af7Sopenharmony_ci 126e5c31af7Sopenharmony_ci.Vulkan 1.3 Limits 127e5c31af7Sopenharmony_ci[width="100%",cols="<35,<9,<14,<14,<11",options="header"] 128e5c31af7Sopenharmony_ci|==== 129e5c31af7Sopenharmony_ci| Limit Name | Unsupported Limit | Core Limit | Profile Limit | Limit Type^1^ 130e5c31af7Sopenharmony_ci| pname:maxSubgroupSize | - | - | 4 | min 131e5c31af7Sopenharmony_ci|==== 132e5c31af7Sopenharmony_ci 133e5c31af7Sopenharmony_ci=== Required Extensions 134e5c31af7Sopenharmony_ci 135e5c31af7Sopenharmony_ciThe following extensions are required: 136e5c31af7Sopenharmony_ci 137e5c31af7Sopenharmony_ciapiext:VK_KHR_global_priority 138