1e5c31af7Sopenharmony_ci// Copyright 2015-2024 The Khronos Group Inc. 2e5c31af7Sopenharmony_ci// 3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0 4e5c31af7Sopenharmony_ci 5e5c31af7Sopenharmony_ci[appendix] 6e5c31af7Sopenharmony_ci 7e5c31af7Sopenharmony_ci[[versions]] 8e5c31af7Sopenharmony_ci= Core Revisions (Informative) 9e5c31af7Sopenharmony_ci 10e5c31af7Sopenharmony_ciNew minor versions of the Vulkan API are defined periodically by the Khronos 11e5c31af7Sopenharmony_ciVulkan Working Group. 12e5c31af7Sopenharmony_ciThese consist of some amount of additional functionality added to the core 13e5c31af7Sopenharmony_ciAPI, potentially including both new functionality and functionality 14e5c31af7Sopenharmony_ci<<extendingvulkan-compatibility-promotion,promoted>> from extensions. 15e5c31af7Sopenharmony_ci 16e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 17e5c31af7Sopenharmony_ciIt is possible to build the specification for earlier versions, but to aid 18e5c31af7Sopenharmony_cireadability of the latest versions, this appendix gives an overview of the 19e5c31af7Sopenharmony_cichanges as compared to earlier versions. 20e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 21e5c31af7Sopenharmony_ci 22e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[:promoted: {generated}/meta] 23e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[:promoted: {appendices}/sc_static] 24e5c31af7Sopenharmony_ci 25e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[] 26e5c31af7Sopenharmony_ci[[versions-1.3]] 27e5c31af7Sopenharmony_ci== Version 1.3 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ci// Unfortunately we cannot include titles in an open refpage block, so this 30e5c31af7Sopenharmony_ci// is a refpage-specific alternate form of the section. 31e5c31af7Sopenharmony_ciifdef::isrefpage[] 32e5c31af7Sopenharmony_ci[open,refpage='VK_VERSION_1_3',desc='Vulkan version 1.3',type='feature',anchor='versions-1.3',xrefs='VK_VERSION_1_0 VK_VERSION_1_1 VK_VERSION_1_2'] 33e5c31af7Sopenharmony_ci-- 34e5c31af7Sopenharmony_ciVulkan Version 1.3 <<extendingvulkan-compatibility-promotion,promoted>> a 35e5c31af7Sopenharmony_cinumber of key extensions into the core API: 36e5c31af7Sopenharmony_ci 37e5c31af7Sopenharmony_ciinclude::{generated}/meta/promoted_extensions_VK_VERSION_1_3.adoc[] 38e5c31af7Sopenharmony_ci 39e5c31af7Sopenharmony_ciAll differences in behavior between these extensions and the corresponding 40e5c31af7Sopenharmony_ciVulkan 1.3 functionality are summarized in the <<versions-1.3-promotions, 41e5c31af7Sopenharmony_ciVulkan 1.3 specification appendix>>. 42e5c31af7Sopenharmony_ci 43e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_VERSION_1_3.adoc[] 44e5c31af7Sopenharmony_ci-- 45e5c31af7Sopenharmony_ciendif::isrefpage[] 46e5c31af7Sopenharmony_ci 47e5c31af7Sopenharmony_ci// This is the spec-specific form of the section 48e5c31af7Sopenharmony_ci[[versions-1.3-promotions]] 49e5c31af7Sopenharmony_ciVulkan Version 1.3 <<extendingvulkan-compatibility-promotion,promoted>> a 50e5c31af7Sopenharmony_cinumber of key extensions into the core API: 51e5c31af7Sopenharmony_ci 52e5c31af7Sopenharmony_ciinclude::{generated}/meta/promoted_extensions_VK_VERSION_1_3.adoc[] 53e5c31af7Sopenharmony_ci 54e5c31af7Sopenharmony_ciAll differences in behavior between these extensions and the corresponding 55e5c31af7Sopenharmony_ciVulkan 1.3 functionality are summarized below. 56e5c31af7Sopenharmony_ci 57e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_4444_formats` 58e5c31af7Sopenharmony_ci 59e5c31af7Sopenharmony_ciIf the `apiext:VK_EXT_4444_formats` extension is not supported, support for 60e5c31af7Sopenharmony_ciall formats defined by it are optional in Vulkan 1.3. 61e5c31af7Sopenharmony_ciThere are no members in the slink:VkPhysicalDeviceVulkan13Features structure 62e5c31af7Sopenharmony_cicorresponding to the slink:VkPhysicalDevice4444FormatsFeaturesEXT structure. 63e5c31af7Sopenharmony_ci 64e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_extended_dynamic_state` 65e5c31af7Sopenharmony_ci 66e5c31af7Sopenharmony_ciAll dynamic state enumerants and entry points defined by 67e5c31af7Sopenharmony_ci`apiext:VK_EXT_extended_dynamic_state` are required in Vulkan 1.3. 68e5c31af7Sopenharmony_ciThere are no members in the slink:VkPhysicalDeviceVulkan13Features structure 69e5c31af7Sopenharmony_cicorresponding to the slink:VkPhysicalDeviceExtendedDynamicStateFeaturesEXT 70e5c31af7Sopenharmony_cistructure. 71e5c31af7Sopenharmony_ci 72e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_extended_dynamic_state2` 73e5c31af7Sopenharmony_ci 74e5c31af7Sopenharmony_ciThe optional dynamic state enumerants and entry points defined by 75e5c31af7Sopenharmony_ci`apiext:VK_EXT_extended_dynamic_state2` for patch control points and logic 76e5c31af7Sopenharmony_ciop are not promoted in Vulkan 1.3. 77e5c31af7Sopenharmony_ciThere are no members in the slink:VkPhysicalDeviceVulkan13Features structure 78e5c31af7Sopenharmony_cicorresponding to the slink:VkPhysicalDeviceExtendedDynamicState2FeaturesEXT 79e5c31af7Sopenharmony_cistructure. 80e5c31af7Sopenharmony_ci 81e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_texel_buffer_alignment` 82e5c31af7Sopenharmony_ci 83e5c31af7Sopenharmony_ciThe more specific alignment requirements defined by 84e5c31af7Sopenharmony_cislink:VkPhysicalDeviceTexelBufferAlignmentProperties are required in Vulkan 85e5c31af7Sopenharmony_ci1.3. 86e5c31af7Sopenharmony_ciThere are no members in the slink:VkPhysicalDeviceVulkan13Features structure 87e5c31af7Sopenharmony_cicorresponding to the slink:VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT 88e5c31af7Sopenharmony_cistructure. 89e5c31af7Sopenharmony_ciThe pname:texelBufferAlignment feature is enabled if using a Vulkan 1.3 90e5c31af7Sopenharmony_ciinstance. 91e5c31af7Sopenharmony_ci 92e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_texture_compression_astc_hdr` 93e5c31af7Sopenharmony_ci 94e5c31af7Sopenharmony_ciIf the `apiext:VK_EXT_texture_compression_astc_hdr` extension is not 95e5c31af7Sopenharmony_cisupported, support for all formats defined by it are optional in Vulkan 1.3. 96e5c31af7Sopenharmony_ciThe <<features-textureCompressionASTC_HDR, 97e5c31af7Sopenharmony_cipname:textureCompressionASTC_HDR>> member of 98e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan13Features indicates whether a Vulkan 1.3 99e5c31af7Sopenharmony_ciimplementation supports these formats. 100e5c31af7Sopenharmony_ci 101e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_ycbcr_2plane_444_formats` 102e5c31af7Sopenharmony_ci 103e5c31af7Sopenharmony_ciIf the `apiext:VK_EXT_ycbcr_2plane_444_formats` extension is not supported, 104e5c31af7Sopenharmony_cisupport for all formats defined by it are optional in Vulkan 1.3. 105e5c31af7Sopenharmony_ciThere are no members in the slink:VkPhysicalDeviceVulkan13Features structure 106e5c31af7Sopenharmony_cicorresponding to the slink:VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT 107e5c31af7Sopenharmony_cistructure. 108e5c31af7Sopenharmony_ci 109e5c31af7Sopenharmony_ci=== Additional Vulkan 1.3 Feature Support 110e5c31af7Sopenharmony_ci 111e5c31af7Sopenharmony_ci[[versions-1.3-new-features]] 112e5c31af7Sopenharmony_ciIn addition to the promoted extensions described above, Vulkan 1.3 added 113e5c31af7Sopenharmony_cirequired support for: 114e5c31af7Sopenharmony_ci 115e5c31af7Sopenharmony_ci * SPIR-V version 1.6 116e5c31af7Sopenharmony_ci ** SPIR-V 1.6 deprecates (but does not remove) the code:WorkgroupSize 117e5c31af7Sopenharmony_ci decoration. 118e5c31af7Sopenharmony_ci * The <<features-bufferDeviceAddress, pname:bufferDeviceAddress>> feature 119e5c31af7Sopenharmony_ci which indicates support for accessing memory in shaders as storage 120e5c31af7Sopenharmony_ci buffers via flink:vkGetBufferDeviceAddress. 121e5c31af7Sopenharmony_ci * The <<features-vulkanMemoryModel, pname:vulkanMemoryModel>> and 122e5c31af7Sopenharmony_ci <<features-vulkanMemoryModelDeviceScope, 123e5c31af7Sopenharmony_ci pname:vulkanMemoryModelDeviceScope>> features, which indicate support 124e5c31af7Sopenharmony_ci for the corresponding Vulkan Memory Model capabilities. 125e5c31af7Sopenharmony_ci * The <<limits-maxInlineUniformTotalSize, 126e5c31af7Sopenharmony_ci pname:maxInlineUniformTotalSize>> limit is added to provide the total 127e5c31af7Sopenharmony_ci size of all inline uniform block bindings in a pipeline layout. 128e5c31af7Sopenharmony_ci 129e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_VERSION_1_3.adoc[] 130e5c31af7Sopenharmony_ci 131e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[] 132e5c31af7Sopenharmony_ci 133e5c31af7Sopenharmony_ci 134e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 135e5c31af7Sopenharmony_ci[[versions-1.2]] 136e5c31af7Sopenharmony_ci== Version 1.2 137e5c31af7Sopenharmony_ci 138e5c31af7Sopenharmony_ci// Unfortunately we cannot include titles in an open refpage block, so this 139e5c31af7Sopenharmony_ci// is a refpage-specific alternate form of the section. 140e5c31af7Sopenharmony_ciifdef::isrefpage[] 141e5c31af7Sopenharmony_ci[open,refpage='VK_VERSION_1_2',desc='Vulkan version 1.2',type='feature',anchor='versions-1.2',xrefs='VK_VERSION_1_0 VK_VERSION_1_1 VK_VERSION_1_3'] 142e5c31af7Sopenharmony_ci-- 143e5c31af7Sopenharmony_ciVulkan Version 1.2 <<extendingvulkan-compatibility-promotion,promoted>> a 144e5c31af7Sopenharmony_cinumber of key extensions into the core API: 145e5c31af7Sopenharmony_ci 146e5c31af7Sopenharmony_ci// Must be redefined in the refpage content 147e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[:promoted: {generated}/meta] 148e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[:promoted: {appendices}/sc_static] 149e5c31af7Sopenharmony_ci 150e5c31af7Sopenharmony_ciinclude::{promoted}/promoted_extensions_VK_VERSION_1_2.adoc[] 151e5c31af7Sopenharmony_ci 152e5c31af7Sopenharmony_ciAll differences in behavior between these extensions and the corresponding 153e5c31af7Sopenharmony_ciVulkan 1.2 functionality are summarized in the <<versions-1.2-promotions, 154e5c31af7Sopenharmony_ciVulkan 1.2 specification appendix>>. 155e5c31af7Sopenharmony_ci 156e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_VERSION_1_2.adoc[] 157e5c31af7Sopenharmony_ci-- 158e5c31af7Sopenharmony_ciendif::isrefpage[] 159e5c31af7Sopenharmony_ci 160e5c31af7Sopenharmony_ci// This is the spec-specific form of the section 161e5c31af7Sopenharmony_ci[[versions-1.2-promotions]] 162e5c31af7Sopenharmony_ciVulkan Version 1.2 <<extendingvulkan-compatibility-promotion,promoted>> a 163e5c31af7Sopenharmony_cinumber of key extensions into the core API: 164e5c31af7Sopenharmony_ci 165e5c31af7Sopenharmony_ciinclude::{promoted}/promoted_extensions_VK_VERSION_1_2.adoc[] 166e5c31af7Sopenharmony_ci 167e5c31af7Sopenharmony_ciAll differences in behavior between these extensions and the corresponding 168e5c31af7Sopenharmony_ciVulkan 1.2 functionality are summarized below. 169e5c31af7Sopenharmony_ci 170e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_8bit_storage` 171e5c31af7Sopenharmony_ci 172e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_8bit_storage` extension is not supported, support for 173e5c31af7Sopenharmony_cithe SPIR-V <<features-storageBuffer8BitAccess, 174e5c31af7Sopenharmony_cipname:storageBuffer8BitAccess>> capability in shader modules is optional. 175e5c31af7Sopenharmony_ciSupport for this feature is defined by 176e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:storageBuffer8BitAccess when 177e5c31af7Sopenharmony_ciqueried via flink:vkGetPhysicalDeviceFeatures2. 178e5c31af7Sopenharmony_ci 179e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_draw_indirect_count` 180e5c31af7Sopenharmony_ci 181e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_draw_indirect_count` extension is not supported, 182e5c31af7Sopenharmony_cisupport for the entry points flink:vkCmdDrawIndirectCount and 183e5c31af7Sopenharmony_ciflink:vkCmdDrawIndexedIndirectCount is optional. 184e5c31af7Sopenharmony_ciSupport for this feature is defined by 185e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:drawIndirectCount when queried 186e5c31af7Sopenharmony_civia flink:vkGetPhysicalDeviceFeatures2. 187e5c31af7Sopenharmony_ci 188e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_sampler_mirror_clamp_to_edge` 189e5c31af7Sopenharmony_ci 190e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_sampler_mirror_clamp_to_edge` extension is not 191e5c31af7Sopenharmony_cisupported, support for the elink:VkSamplerAddressMode 192e5c31af7Sopenharmony_ciename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE is optional. 193e5c31af7Sopenharmony_ciSupport for this feature is defined by 194e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:samplerMirrorClampToEdge when 195e5c31af7Sopenharmony_ciqueried via flink:vkGetPhysicalDeviceFeatures2. 196e5c31af7Sopenharmony_ci 197e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_descriptor_indexing` 198e5c31af7Sopenharmony_ci 199e5c31af7Sopenharmony_ciIf the `apiext:VK_EXT_descriptor_indexing` extension is not supported, 200e5c31af7Sopenharmony_cisupport for the <<features-descriptorIndexing, pname:descriptorIndexing>> 201e5c31af7Sopenharmony_cifeature is optional. 202e5c31af7Sopenharmony_ciSupport for this feature is defined by 203e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:descriptorIndexing when 204e5c31af7Sopenharmony_ciqueried via flink:vkGetPhysicalDeviceFeatures2. 205e5c31af7Sopenharmony_ci 206e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_scalar_block_layout` 207e5c31af7Sopenharmony_ci 208e5c31af7Sopenharmony_ciIf the `apiext:VK_EXT_scalar_block_layout` extension is not supported, 209e5c31af7Sopenharmony_cisupport for the <<features-scalarBlockLayout, pname:scalarBlockLayout>> 210e5c31af7Sopenharmony_cifeature is optional. 211e5c31af7Sopenharmony_ciSupport for this feature is defined by 212e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:scalarBlockLayout when queried 213e5c31af7Sopenharmony_civia flink:vkGetPhysicalDeviceFeatures2. 214e5c31af7Sopenharmony_ci 215e5c31af7Sopenharmony_ci=== Differences Relative to `VK_EXT_shader_viewport_index_layer` 216e5c31af7Sopenharmony_ci 217e5c31af7Sopenharmony_ciThe code:ShaderViewportIndexLayerEXT SPIR-V capability was replaced with the 218e5c31af7Sopenharmony_cicode:ShaderViewportIndex and code:ShaderLayer capabilities. 219e5c31af7Sopenharmony_ciDeclaring both is equivalent to declaring code:ShaderViewportIndexLayerEXT. 220e5c31af7Sopenharmony_ciIf the `apiext:VK_EXT_shader_viewport_index_layer` extension is not 221e5c31af7Sopenharmony_cisupported, support for the code:ShaderViewportIndexLayerEXT SPIR-V 222e5c31af7Sopenharmony_cicapability is optional. 223e5c31af7Sopenharmony_ciSupport for this feature is defined by 224e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:shaderOutputViewportIndex and 225e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:shaderOutputLayer when queried 226e5c31af7Sopenharmony_civia flink:vkGetPhysicalDeviceFeatures2. 227e5c31af7Sopenharmony_ci 228e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_buffer_device_address` 229e5c31af7Sopenharmony_ci 230e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_buffer_device_address` extension is not supported, 231e5c31af7Sopenharmony_cisupport for the <<features-bufferDeviceAddress, pname:bufferDeviceAddress>> 232e5c31af7Sopenharmony_cifeature is optional. 233e5c31af7Sopenharmony_ciSupport for this feature is defined by 234e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:bufferDeviceAddress when 235e5c31af7Sopenharmony_ciqueried via flink:vkGetPhysicalDeviceFeatures2. 236e5c31af7Sopenharmony_ci 237e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_shader_atomic_int64` 238e5c31af7Sopenharmony_ci 239e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_shader_atomic_int64` extension is not supported, 240e5c31af7Sopenharmony_cisupport for the <<features-shaderBufferInt64Atomics, 241e5c31af7Sopenharmony_cipname:shaderBufferInt64Atomics>> feature is optional. 242e5c31af7Sopenharmony_ciSupport for this feature is defined by 243e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:shaderBufferInt64Atomics when 244e5c31af7Sopenharmony_ciqueried via flink:vkGetPhysicalDeviceFeatures2. 245e5c31af7Sopenharmony_ci 246e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_shader_float16_int8` 247e5c31af7Sopenharmony_ci 248e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_shader_float16_int8` extension is not supported, 249e5c31af7Sopenharmony_cisupport for the <<features-shaderFloat16, pname:shaderFloat16>> and 250e5c31af7Sopenharmony_ci<<features-shaderInt8, pname:shaderInt8>> features is optional. 251e5c31af7Sopenharmony_ciSupport for these features are defined by 252e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:shaderFloat16 and 253e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:shaderInt8 when queried via 254e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFeatures2. 255e5c31af7Sopenharmony_ci 256e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_vulkan_memory_model` 257e5c31af7Sopenharmony_ci 258e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_vulkan_memory_model` extension is not supported, 259e5c31af7Sopenharmony_cisupport for the <<features-vulkanMemoryModel, pname:vulkanMemoryModel>> 260e5c31af7Sopenharmony_cifeature is optional. 261e5c31af7Sopenharmony_ciSupport for this feature is defined by 262e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan12Features::pname:vulkanMemoryModel when queried 263e5c31af7Sopenharmony_civia flink:vkGetPhysicalDeviceFeatures2. 264e5c31af7Sopenharmony_ci 265e5c31af7Sopenharmony_ci=== Additional Vulkan 1.2 Feature Support 266e5c31af7Sopenharmony_ci 267e5c31af7Sopenharmony_ci[[versions-1.2-new-features]] 268e5c31af7Sopenharmony_ciIn addition to the promoted extensions described above, Vulkan 1.2 added 269e5c31af7Sopenharmony_cisupport for: 270e5c31af7Sopenharmony_ci 271e5c31af7Sopenharmony_ci * SPIR-V version 1.4. 272e5c31af7Sopenharmony_ci * SPIR-V version 1.5. 273e5c31af7Sopenharmony_ci * The <<features-samplerMirrorClampToEdge, 274e5c31af7Sopenharmony_ci pname:samplerMirrorClampToEdge>> feature which indicates whether the 275e5c31af7Sopenharmony_ci implementation supports the 276e5c31af7Sopenharmony_ci ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode. 277e5c31af7Sopenharmony_ci * The <<spirvenv-capabilities-table-ShaderNonUniform, 278e5c31af7Sopenharmony_ci code:ShaderNonUniform>> capability in SPIR-V version 1.5. 279e5c31af7Sopenharmony_ci * The <<features-shaderOutputViewportIndex, 280e5c31af7Sopenharmony_ci pname:shaderOutputViewportIndex>> feature which indicates that the 281e5c31af7Sopenharmony_ci <<spirvenv-capabilities-table-ShaderViewportIndex, 282e5c31af7Sopenharmony_ci code:ShaderViewportIndex>> capability can be used. 283e5c31af7Sopenharmony_ci * The <<features-shaderOutputLayer, pname:shaderOutputLayer>> feature 284e5c31af7Sopenharmony_ci which indicates that the <<spirvenv-capabilities-table-ShaderLayer, 285e5c31af7Sopenharmony_ci code:ShaderLayer>> capability can be used. 286e5c31af7Sopenharmony_ci * The <<features-subgroupBroadcastDynamicId, 287e5c31af7Sopenharmony_ci pname:subgroupBroadcastDynamicId>> feature which allows the "`Id`" 288e5c31af7Sopenharmony_ci operand of code:OpGroupNonUniformBroadcast to be dynamically uniform 289e5c31af7Sopenharmony_ci within a subgroup, and the "`Index`" operand of 290e5c31af7Sopenharmony_ci code:OpGroupNonUniformQuadBroadcast to be dynamically uniform within a 291e5c31af7Sopenharmony_ci derivative group, in shader modules of version 1.5 or higher. 292e5c31af7Sopenharmony_ci * The <<features-drawIndirectCount, pname:drawIndirectCount>> feature 293e5c31af7Sopenharmony_ci which indicates whether the flink:vkCmdDrawIndirectCount and 294e5c31af7Sopenharmony_ci flink:vkCmdDrawIndexedIndirectCount functions can be used. 295e5c31af7Sopenharmony_ci * The <<features-descriptorIndexing, pname:descriptorIndexing>> feature 296e5c31af7Sopenharmony_ci which indicates the implementation supports the minimum number of 297e5c31af7Sopenharmony_ci descriptor indexing features as defined in the <<features-requirements, 298e5c31af7Sopenharmony_ci Feature Requirements>> section. 299e5c31af7Sopenharmony_ci * The <<features-samplerFilterMinmax, pname:samplerFilterMinmax>> feature 300e5c31af7Sopenharmony_ci which indicates whether the implementation supports the minimum number 301e5c31af7Sopenharmony_ci of image formats that support the 302e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT feature bit as 303e5c31af7Sopenharmony_ci defined by the 304e5c31af7Sopenharmony_ci <<limits-filterMinmaxSingleComponentFormats-minimum-requirements, 305e5c31af7Sopenharmony_ci pname:filterMinmaxSingleComponentFormats>> property minimum 306e5c31af7Sopenharmony_ci requirements. 307e5c31af7Sopenharmony_ci * The <<limits-framebufferIntegerColorSampleCounts, 308e5c31af7Sopenharmony_ci pname:framebufferIntegerColorSampleCounts>> limit which indicates the 309e5c31af7Sopenharmony_ci color sample counts that are supported for all framebuffer color 310e5c31af7Sopenharmony_ci attachments with integer formats. 311e5c31af7Sopenharmony_ci 312e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_VERSION_1_2.adoc[] 313e5c31af7Sopenharmony_ci 314e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 315e5c31af7Sopenharmony_ci 316e5c31af7Sopenharmony_ci 317e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 318e5c31af7Sopenharmony_ci[[versions-1.1]] 319e5c31af7Sopenharmony_ci== Version 1.1 320e5c31af7Sopenharmony_ci 321e5c31af7Sopenharmony_ci// Unfortunately we cannot include titles in an open refpage block, so this 322e5c31af7Sopenharmony_ci// is a refpage-specific alternate form of the section. 323e5c31af7Sopenharmony_ciifdef::isrefpage[] 324e5c31af7Sopenharmony_ci[open,refpage='VK_VERSION_1_1',desc='Vulkan version 1.1',type='feature',anchor='versions-1.1',xrefs='VK_VERSION_1_0 VK_VERSION_1_2 VK_VERSION_1_3'] 325e5c31af7Sopenharmony_ci-- 326e5c31af7Sopenharmony_ciVulkan Version 1.1 <<extendingvulkan-compatibility-promotion,promoted>> a 327e5c31af7Sopenharmony_cinumber of key extensions into the core API: 328e5c31af7Sopenharmony_ci 329e5c31af7Sopenharmony_ci// Must be redefined in the refpage content 330e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[:promoted: {generated}/meta] 331e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[:promoted: {appendices}/sc_static] 332e5c31af7Sopenharmony_ci 333e5c31af7Sopenharmony_ciinclude::{promoted}/promoted_extensions_VK_VERSION_1_1.adoc[] 334e5c31af7Sopenharmony_ci 335e5c31af7Sopenharmony_ciAll differences in behavior between these extensions and the corresponding 336e5c31af7Sopenharmony_ciVulkan 1.1 functionality are summarized in the <<versions-1.1-promotions, 337e5c31af7Sopenharmony_ciVulkan 1.1 specification appendix>>. 338e5c31af7Sopenharmony_ci 339e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_VERSION_1_1.adoc[] 340e5c31af7Sopenharmony_ci-- 341e5c31af7Sopenharmony_ciendif::isrefpage[] 342e5c31af7Sopenharmony_ci 343e5c31af7Sopenharmony_ci// This is the spec-specific form of the section 344e5c31af7Sopenharmony_ci[[versions-1.1-promotions]] 345e5c31af7Sopenharmony_ciVulkan Version 1.1 <<extendingvulkan-compatibility-promotion,promoted>> a 346e5c31af7Sopenharmony_cinumber of key extensions into the core API: 347e5c31af7Sopenharmony_ci 348e5c31af7Sopenharmony_ciinclude::{promoted}/promoted_extensions_VK_VERSION_1_1.adoc[] 349e5c31af7Sopenharmony_ci 350e5c31af7Sopenharmony_ciAll differences in behavior between these extensions and the corresponding 351e5c31af7Sopenharmony_ciVulkan 1.1 functionality are summarized below. 352e5c31af7Sopenharmony_ci 353e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_16bit_storage` 354e5c31af7Sopenharmony_ci 355e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_16bit_storage` extension is not supported, support for 356e5c31af7Sopenharmony_cithe <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>> 357e5c31af7Sopenharmony_cifeature is optional. 358e5c31af7Sopenharmony_ciSupport for this feature is defined by 359e5c31af7Sopenharmony_cislink:VkPhysicalDevice16BitStorageFeatures::pname:storageBuffer16BitAccess 360e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 361e5c31af7Sopenharmony_cior slink:VkPhysicalDeviceVulkan11Features::pname:storageBuffer16BitAccess 362e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 363e5c31af7Sopenharmony_ciwhen queried via flink:vkGetPhysicalDeviceFeatures2. 364e5c31af7Sopenharmony_ci 365e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_sampler_ycbcr_conversion` 366e5c31af7Sopenharmony_ci 367e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_sampler_ycbcr_conversion` extension is not supported, 368e5c31af7Sopenharmony_cisupport for the <<features-samplerYcbcrConversion, 369e5c31af7Sopenharmony_cipname:samplerYcbcrConversion>> feature is optional. 370e5c31af7Sopenharmony_ciSupport for this feature is defined by 371e5c31af7Sopenharmony_cislink:VkPhysicalDeviceSamplerYcbcrConversionFeatures::pname:samplerYcbcrConversion 372e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 373e5c31af7Sopenharmony_cior slink:VkPhysicalDeviceVulkan11Features::pname:samplerYcbcrConversion 374e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 375e5c31af7Sopenharmony_ciwhen queried via flink:vkGetPhysicalDeviceFeatures2. 376e5c31af7Sopenharmony_ci 377e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_shader_draw_parameters` 378e5c31af7Sopenharmony_ci 379e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_shader_draw_parameters` extension is not supported, 380e5c31af7Sopenharmony_cisupport for the 381e5c31af7Sopenharmony_ci{spirv}/KHR/SPV_KHR_shader_draw_parameters.html[`SPV_KHR_shader_draw_parameters`] 382e5c31af7Sopenharmony_ciSPIR-V extension is optional. 383e5c31af7Sopenharmony_ciSupport for this feature is defined by 384e5c31af7Sopenharmony_cislink:VkPhysicalDeviceShaderDrawParametersFeatures::pname:shaderDrawParameters 385e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 386e5c31af7Sopenharmony_cior slink:VkPhysicalDeviceVulkan11Features::pname:shaderDrawParameters 387e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 388e5c31af7Sopenharmony_ciwhen queried via flink:vkGetPhysicalDeviceFeatures2. 389e5c31af7Sopenharmony_ci 390e5c31af7Sopenharmony_ci=== Differences Relative to `VK_KHR_variable_pointers` 391e5c31af7Sopenharmony_ci 392e5c31af7Sopenharmony_ciIf the `apiext:VK_KHR_variable_pointers` extension is not supported, support 393e5c31af7Sopenharmony_cifor the <<features-variablePointersStorageBuffer, 394e5c31af7Sopenharmony_cipname:variablePointersStorageBuffer>> feature is optional. 395e5c31af7Sopenharmony_ciSupport for this feature is defined by 396e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVariablePointersFeatures::pname:variablePointersStorageBuffer 397e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 398e5c31af7Sopenharmony_cior 399e5c31af7Sopenharmony_cislink:VkPhysicalDeviceVulkan11Features::pname:variablePointersStorageBuffer 400e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 401e5c31af7Sopenharmony_ciwhen queried via flink:vkGetPhysicalDeviceFeatures2. 402e5c31af7Sopenharmony_ci 403e5c31af7Sopenharmony_ci=== Additional Vulkan 1.1 Feature Support 404e5c31af7Sopenharmony_ci 405e5c31af7Sopenharmony_ci[[versions-1.1-new-features]] 406e5c31af7Sopenharmony_ciIn addition to the promoted extensions described above, Vulkan 1.1 added 407e5c31af7Sopenharmony_cisupport for: 408e5c31af7Sopenharmony_ci 409e5c31af7Sopenharmony_ci * The <<shaders-group-operations, group operations>> and 410e5c31af7Sopenharmony_ci <<shaders-scope-subgroup, subgroup scope>>. 411e5c31af7Sopenharmony_ci * The <<memory-protected-memory, protected memory>> feature. 412e5c31af7Sopenharmony_ci * A new command to enumerate the instance version: 413e5c31af7Sopenharmony_ci flink:vkEnumerateInstanceVersion. 414e5c31af7Sopenharmony_ci * The slink:VkPhysicalDeviceShaderDrawParametersFeatures feature query 415e5c31af7Sopenharmony_ci struct (where the `apiext:VK_KHR_shader_draw_parameters` extension did 416e5c31af7Sopenharmony_ci not have one). 417e5c31af7Sopenharmony_ci 418e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_VERSION_1_1.adoc[] 419e5c31af7Sopenharmony_ci 420e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 421e5c31af7Sopenharmony_ci 422e5c31af7Sopenharmony_ci 423e5c31af7Sopenharmony_ci[[versions-1.0]] 424e5c31af7Sopenharmony_ci== Version 1.0 425e5c31af7Sopenharmony_ci 426e5c31af7Sopenharmony_ci// Unfortunately we cannot include titles in an open refpage block, so this 427e5c31af7Sopenharmony_ci// is a refpage-specific alternate form of the section. 428e5c31af7Sopenharmony_ciifdef::isrefpage[] 429e5c31af7Sopenharmony_ci[open,refpage='VK_VERSION_1_0',desc='Vulkan version 1.0',type='feature',anchor='versions-1.0',xrefs='VK_VERSION_1_1 VK_VERSION_1_2 VK_VERSION_1_3'] 430e5c31af7Sopenharmony_ci-- 431e5c31af7Sopenharmony_ciVulkan Version 1.0 was the initial release of the Vulkan API. 432e5c31af7Sopenharmony_ci 433e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_VERSION_1_0.adoc[] 434e5c31af7Sopenharmony_ci-- 435e5c31af7Sopenharmony_ciendif::isrefpage[] 436e5c31af7Sopenharmony_ci 437e5c31af7Sopenharmony_ci// This is the spec-specific form of the section 438e5c31af7Sopenharmony_ciVulkan Version 1.0 was the initial release of the Vulkan API. 439e5c31af7Sopenharmony_ci 440e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_VERSION_1_0.adoc[] 441