Author: The Khronos® Vulkan Working Group

# Vulkan® 1.3.253 - A Specification (with all registered extensions)

The Khronos® Vulkan Working Group
version 1.3.253, 2023-06-11 11:28:02Z
from git branch: Git branch not available commit: Git commit not available

Loading… please wait.

Search:

## Appendix D: Core Revisions (Informative)

New minor versions of the Vulkan API are defined periodically by the Khronos Vulkan Working Group. These consist of some amount of additional functionality added to the core API, potentially including both new functionality and functionality promoted from extensions.

It is possible to build the specification for earlier versions, but to aid readability of the latest versions, this appendix gives an overview of the changes as compared to earlier versions.

### Version 1.3

Vulkan Version 1.3 promoted a number of key extensions into the core API:

- `VK_KHR_copy_commands2`

- `VK_KHR_dynamic_rendering`

- `VK_KHR_format_feature_flags2`

- `VK_KHR_maintenance4`

- `VK_KHR_shader_integer_dot_product`

- `VK_KHR_shader_non_semantic_info`

- `VK_KHR_shader_terminate_invocation`

- `VK_KHR_synchronization2`

- `VK_KHR_zero_initialize_workgroup_memory`

- `VK_EXT_4444_formats`

- `VK_EXT_extended_dynamic_state`

- `VK_EXT_extended_dynamic_state2`

- `VK_EXT_image_robustness`

- `VK_EXT_inline_uniform_block`

- `VK_EXT_pipeline_creation_cache_control`

- `VK_EXT_pipeline_creation_feedback`

- `VK_EXT_private_data`

- `VK_EXT_shader_demote_to_helper_invocation`

- `VK_EXT_subgroup_size_control`

- `VK_EXT_texel_buffer_alignment`

- `VK_EXT_texture_compression_astc_hdr`

- `VK_EXT_tooling_info`

- `VK_EXT_ycbcr_2plane_444_formats`

All differences in behavior between these extensions and the corresponding Vulkan 1.3 functionality are summarized below.

#### Differences relative to `VK_EXT_4444_formats`

If the `VK_EXT_4444_formats` extension is not supported, support for all formats defined by it are optional in Vulkan 1.3. There are no members in the VkPhysicalDeviceVulkan13Features structure corresponding to the VkPhysicalDevice4444FormatsFeaturesEXT structure.

#### Differences relative to `VK_EXT_extended_dynamic_state`

All dynamic state enumerants and entry points defined by `VK_EXT_extended_dynamic_state` are required in Vulkan 1.3. There are no members in the VkPhysicalDeviceVulkan13Features structure corresponding to the VkPhysicalDeviceExtendedDynamicStateFeaturesEXT structure.

#### Differences relative to `VK_EXT_extended_dynamic_state2`

The optional dynamic state enumerants and entry points defined by `VK_EXT_extended_dynamic_state2` for patch control points and logic op are not promoted in Vulkan 1.3. There are no members in the VkPhysicalDeviceVulkan13Features structure corresponding to the VkPhysicalDeviceExtendedDynamicState2FeaturesEXT structure.

#### Differences relative to `VK_EXT_texel_buffer_alignment`

The more specific alignment requirements defined by VkPhysicalDeviceTexelBufferAlignmentProperties are required in Vulkan 1.3. There are no members in the VkPhysicalDeviceVulkan13Features structure corresponding to the VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT structure. The `texelBufferAlignment` feature is enabled if using a Vulkan 1.3 instance.

#### Differences relative to `VK_EXT_texture_compression_astc_hdr`

If the `VK_EXT_texture_compression_astc_hdr` extension is not supported, support for all formats defined by it are optional in Vulkan 1.3. The `textureCompressionASTC_HDR` member of VkPhysicalDeviceVulkan13Features indicates whether a Vulkan 1.3 implementation supports these formats.

#### Differences relative to `VK_EXT_ycbcr_2plane_444_formats`

If the `VK_EXT_ycbcr_2plane_444_formats` extension is not supported, support for all formats defined by it are optional in Vulkan 1.3. There are no members in the VkPhysicalDeviceVulkan13Features structure corresponding to the VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT structure.

#### Additional Vulkan 1.3 Feature Support

In addition to the promoted extensions described above, Vulkan 1.3 added required support for:

- SPIR-V version 1.6

  - SPIR-V 1.6 deprecates (but does not remove) the `WorkgroupSize` decoration.

- The `bufferDeviceAddress` feature which indicates support for accessing memory in shaders as storage buffers via vkGetBufferDeviceAddress.

- The `vulkanMemoryModel` and `vulkanMemoryModelDeviceScope` features, which indicate support for the corresponding Vulkan Memory Model capabilities.

- The `maxInlineUniformTotalSize` limit is added to provide the total size of all inline uniform block bindings in a pipeline layout.

#### New Macros

- VK_API_VERSION_1_3

#### New Base Types

- VkFlags64

#### New Object Types

- VkPrivateDataSlot

#### New Commands

- vkCmdBeginRendering

- vkCmdBindVertexBuffers2

- vkCmdBlitImage2

- vkCmdCopyBuffer2

- vkCmdCopyBufferToImage2

- vkCmdCopyImage2

- vkCmdCopyImageToBuffer2

- vkCmdEndRendering

- vkCmdPipelineBarrier2

- vkCmdResetEvent2

- vkCmdResolveImage2

- vkCmdSetCullMode

- vkCmdSetDepthBiasEnable

- vkCmdSetDepthBoundsTestEnable

- vkCmdSetDepthCompareOp

- vkCmdSetDepthTestEnable

- vkCmdSetDepthWriteEnable

- vkCmdSetEvent2

- vkCmdSetFrontFace

- vkCmdSetPrimitiveRestartEnable

- vkCmdSetPrimitiveTopology

- vkCmdSetRasterizerDiscardEnable

- vkCmdSetScissorWithCount

- vkCmdSetStencilOp

- vkCmdSetStencilTestEnable

- vkCmdSetViewportWithCount

- vkCmdWaitEvents2

- vkCmdWriteTimestamp2

- vkCreatePrivateDataSlot

- vkDestroyPrivateDataSlot

- vkGetDeviceBufferMemoryRequirements

- vkGetDeviceImageMemoryRequirements

- vkGetDeviceImageSparseMemoryRequirements

- vkGetPhysicalDeviceToolProperties

- vkGetPrivateData

- vkQueueSubmit2

- vkSetPrivateData

#### New Structures

- VkBlitImageInfo2

- VkBufferCopy2

- VkBufferImageCopy2

- VkBufferMemoryBarrier2

- VkCommandBufferSubmitInfo

- VkCopyBufferInfo2

- VkCopyBufferToImageInfo2

- VkCopyImageInfo2

- VkCopyImageToBufferInfo2

- VkDependencyInfo

- VkDeviceBufferMemoryRequirements

- VkDeviceImageMemoryRequirements

- VkImageBlit2

- VkImageCopy2

- VkImageMemoryBarrier2

- VkImageResolve2

- VkPhysicalDeviceToolProperties

- VkPipelineCreationFeedback

- VkPrivateDataSlotCreateInfo

- VkRenderingAttachmentInfo

- VkRenderingInfo

- VkResolveImageInfo2

- VkSemaphoreSubmitInfo

- VkSubmitInfo2

- Extending VkCommandBufferInheritanceInfo:

  - VkCommandBufferInheritanceRenderingInfo

- Extending VkDescriptorPoolCreateInfo:

  - VkDescriptorPoolInlineUniformBlockCreateInfo

- Extending VkDeviceCreateInfo:

  - VkDevicePrivateDataCreateInfo

- Extending VkFormatProperties2:

  - VkFormatProperties3

- Extending VkGraphicsPipelineCreateInfo:

  - VkPipelineRenderingCreateInfo

- Extending VkGraphicsPipelineCreateInfo, VkComputePipelineCreateInfo, VkRayTracingPipelineCreateInfoNV, VkRayTracingPipelineCreateInfoKHR:

  - VkPipelineCreationFeedbackCreateInfo

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceDynamicRenderingFeatures

  - VkPhysicalDeviceImageRobustnessFeatures

  - VkPhysicalDeviceInlineUniformBlockFeatures

  - VkPhysicalDeviceMaintenance4Features

  - VkPhysicalDevicePipelineCreationCacheControlFeatures

  - VkPhysicalDevicePrivateDataFeatures

  - VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures

  - VkPhysicalDeviceShaderIntegerDotProductFeatures

  - VkPhysicalDeviceShaderTerminateInvocationFeatures

  - VkPhysicalDeviceSubgroupSizeControlFeatures

  - VkPhysicalDeviceSynchronization2Features

  - VkPhysicalDeviceTextureCompressionASTCHDRFeatures

  - VkPhysicalDeviceVulkan13Features

  - VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceInlineUniformBlockProperties

  - VkPhysicalDeviceMaintenance4Properties

  - VkPhysicalDeviceShaderIntegerDotProductProperties

  - VkPhysicalDeviceSubgroupSizeControlProperties

  - VkPhysicalDeviceTexelBufferAlignmentProperties

  - VkPhysicalDeviceVulkan13Properties

- Extending VkPipelineShaderStageCreateInfo, VkShaderCreateInfoEXT:

  - VkPipelineShaderStageRequiredSubgroupSizeCreateInfo

- Extending VkSubpassDependency2:

  - VkMemoryBarrier2

- Extending VkWriteDescriptorSet:

  - VkWriteDescriptorSetInlineUniformBlock

#### New Enums

- VkAccessFlagBits2

- VkFormatFeatureFlagBits2

- VkPipelineCreationFeedbackFlagBits

- VkPipelineStageFlagBits2

- VkRenderingFlagBits

- VkSubmitFlagBits

- VkToolPurposeFlagBits

#### New Bitmasks

- VkAccessFlags2

- VkFormatFeatureFlags2

- VkPipelineCreationFeedbackFlags

- VkPipelineStageFlags2

- VkPrivateDataSlotCreateFlags

- VkRenderingFlags

- VkSubmitFlags

- VkToolPurposeFlags

#### New Enum Constants

- Extending VkAccessFlagBits:

  - `VK_ACCESS_NONE`

- Extending VkAttachmentStoreOp:

  - `VK_ATTACHMENT_STORE_OP_NONE`

- Extending VkDescriptorType:

  - `VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK`

- Extending VkDynamicState:

  - `VK_DYNAMIC_STATE_CULL_MODE`

  - `VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE`

  - `VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE`

  - `VK_DYNAMIC_STATE_DEPTH_COMPARE_OP`

  - `VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE`

  - `VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE`

  - `VK_DYNAMIC_STATE_FRONT_FACE`

  - `VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE`

  - `VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY`

  - `VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE`

  - `VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT`

  - `VK_DYNAMIC_STATE_STENCIL_OP`

  - `VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE`

  - `VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE`

  - `VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT`

- Extending VkEventCreateFlagBits:

  - `VK_EVENT_CREATE_DEVICE_ONLY_BIT`

- Extending VkFormat:

  - `VK_FORMAT_A4B4G4R4_UNORM_PACK16`

  - `VK_FORMAT_A4R4G4B4_UNORM_PACK16`

  - `VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK`

  - `VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK`

  - `VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16`

  - `VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16`

  - `VK_FORMAT_G16_B16R16_2PLANE_444_UNORM`

  - `VK_FORMAT_G8_B8R8_2PLANE_444_UNORM`

- Extending VkImageAspectFlagBits:

  - `VK_IMAGE_ASPECT_NONE`

- Extending VkImageLayout:

  - `VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL`

  - `VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL`

- Extending VkObjectType:

  - `VK_OBJECT_TYPE_PRIVATE_DATA_SLOT`

- Extending VkPipelineCacheCreateFlagBits:

  - `VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT`

- Extending VkPipelineCreateFlagBits:

  - `VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT`

  - `VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT`

- Extending VkPipelineShaderStageCreateFlagBits:

  - `VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT`

  - `VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT`

- Extending VkPipelineStageFlagBits:

  - `VK_PIPELINE_STAGE_NONE`

- Extending VkResult:

  - `VK_PIPELINE_COMPILE_REQUIRED`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2`

  - `VK_STRUCTURE_TYPE_BUFFER_COPY_2`

  - `VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2`

  - `VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2`

  - `VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO`

  - `VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO`

  - `VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2`

  - `VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2`

  - `VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2`

  - `VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2`

  - `VK_STRUCTURE_TYPE_DEPENDENCY_INFO`

  - `VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS`

  - `VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS`

  - `VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3`

  - `VK_STRUCTURE_TYPE_IMAGE_BLIT_2`

  - `VK_STRUCTURE_TYPE_IMAGE_COPY_2`

  - `VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2`

  - `VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2`

  - `VK_STRUCTURE_TYPE_MEMORY_BARRIER_2`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES`

  - `VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO`

  - `VK_STRUCTURE_TYPE_RENDERING_INFO`

  - `VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2`

  - `VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO`

  - `VK_STRUCTURE_TYPE_SUBMIT_INFO_2`

  - `VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK`

### Version 1.2

Vulkan Version 1.2 promoted a number of key extensions into the core API:

- `VK_KHR_8bit_storage`

- `VK_KHR_buffer_device_address`

- `VK_KHR_create_renderpass2`

- `VK_KHR_depth_stencil_resolve`

- `VK_KHR_draw_indirect_count`

- `VK_KHR_driver_properties`

- `VK_KHR_image_format_list`

- `VK_KHR_imageless_framebuffer`

- `VK_KHR_sampler_mirror_clamp_to_edge`

- `VK_KHR_separate_depth_stencil_layouts`

- `VK_KHR_shader_atomic_int64`

- `VK_KHR_shader_float16_int8`

- `VK_KHR_shader_float_controls`

- `VK_KHR_shader_subgroup_extended_types`

- `VK_KHR_spirv_1_4`

- `VK_KHR_timeline_semaphore`

- `VK_KHR_uniform_buffer_standard_layout`

- `VK_KHR_vulkan_memory_model`

- `VK_EXT_descriptor_indexing`

- `VK_EXT_host_query_reset`

- `VK_EXT_sampler_filter_minmax`

- `VK_EXT_scalar_block_layout`

- `VK_EXT_separate_stencil_usage`

- `VK_EXT_shader_viewport_index_layer`

All differences in behavior between these extensions and the corresponding Vulkan 1.2 functionality are summarized below.

#### Differences relative to `VK_KHR_8bit_storage`

If the `VK_KHR_8bit_storage` extension is not supported, support for the SPIR-V `storageBuffer8BitAccess` capability in shader modules is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`storageBuffer8BitAccess` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_draw_indirect_count`

If the `VK_KHR_draw_indirect_count` extension is not supported, support for the entry points vkCmdDrawIndirectCount and vkCmdDrawIndexedIndirectCount is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`drawIndirectCount` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_sampler_mirror_clamp_to_edge`

If the `VK_KHR_sampler_mirror_clamp_to_edge` extension is not supported, support for the VkSamplerAddressMode `VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE` is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`samplerMirrorClampToEdge` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_EXT_descriptor_indexing`

If the `VK_EXT_descriptor_indexing` extension is not supported, support for the `descriptorIndexing` feature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`descriptorIndexing` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_EXT_scalar_block_layout`

If the `VK_EXT_scalar_block_layout` extension is not supported, support for the `scalarBlockLayout` feature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`scalarBlockLayout` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_EXT_shader_viewport_index_layer`

The `ShaderViewportIndexLayerEXT` SPIR-V capability was replaced with the `ShaderViewportIndex` and `ShaderLayer` capabilities. Declaring both is equivalent to declaring `ShaderViewportIndexLayerEXT`. If the `VK_EXT_shader_viewport_index_layer` extension is not supported, support for the `ShaderViewportIndexLayerEXT` SPIR-V capability is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`shaderOutputViewportIndex` and VkPhysicalDeviceVulkan12Features::`shaderOutputLayer` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_buffer_device_address`

If the `VK_KHR_buffer_device_address` extension is not supported, support for the `bufferDeviceAddress` feature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`bufferDeviceAddress` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_shader_atomic_int64`

If the `VK_KHR_shader_atomic_int64` extension is not supported, support for the `shaderBufferInt64Atomics` feature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`shaderBufferInt64Atomics` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_shader_float16_int8`

If the `VK_KHR_shader_float16_int8` extension is not supported, support for the `shaderFloat16` and `shaderInt8` features is optional. Support for these features are defined by VkPhysicalDeviceVulkan12Features::`shaderFloat16` and VkPhysicalDeviceVulkan12Features::`shaderInt8` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_vulkan_memory_model`

If the `VK_KHR_vulkan_memory_model` extension is not supported, support for the `vulkanMemoryModel` feature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::`vulkanMemoryModel` when queried via vkGetPhysicalDeviceFeatures2.

#### Additional Vulkan 1.2 Feature Support

In addition to the promoted extensions described above, Vulkan 1.2 added support for:

- SPIR-V version 1.4.

- SPIR-V version 1.5.

- The `samplerMirrorClampToEdge` feature which indicates whether the implementation supports the `VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE` sampler address mode.

- The `ShaderNonUniform` capability in SPIR-V version 1.5.

- The `shaderOutputViewportIndex` feature which indicates that the `ShaderViewportIndex` capability can be used.

- The `shaderOutputLayer` feature which indicates that the `ShaderLayer` capability can be used.

- The `subgroupBroadcastDynamicId` feature which allows the “Id” operand of `OpGroupNonUniformBroadcast` to be dynamically uniform within a subgroup, and the “Index” operand of `OpGroupNonUniformQuadBroadcast` to be dynamically uniform within a derivative group, in shader modules of version 1.5 or higher.

- The `drawIndirectCount` feature which indicates whether the vkCmdDrawIndirectCount and vkCmdDrawIndexedIndirectCount functions can be used.

- The `descriptorIndexing` feature which indicates the implementation supports the minimum number of descriptor indexing features as defined in the Feature Requirements section.

- The `samplerFilterMinmax` feature which indicates whether the implementation supports the minimum number of image formats that support the `VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT` feature bit as defined by the `filterMinmaxSingleComponentFormats` property minimum requirements.

- The `framebufferIntegerColorSampleCounts` limit which indicates the color sample counts that are supported for all framebuffer color attachments with integer formats.

#### New Macros

- VK_API_VERSION_1_2

#### New Commands

- vkCmdBeginRenderPass2

- vkCmdDrawIndexedIndirectCount

- vkCmdDrawIndirectCount

- vkCmdEndRenderPass2

- vkCmdNextSubpass2

- vkCreateRenderPass2

- vkGetBufferDeviceAddress

- vkGetBufferOpaqueCaptureAddress

- vkGetDeviceMemoryOpaqueCaptureAddress

- vkGetSemaphoreCounterValue

- vkResetQueryPool

- vkSignalSemaphore

- vkWaitSemaphores

#### New Structures

- VkAttachmentDescription2

- VkAttachmentReference2

- VkBufferDeviceAddressInfo

- VkConformanceVersion

- VkDeviceMemoryOpaqueCaptureAddressInfo

- VkFramebufferAttachmentImageInfo

- VkRenderPassCreateInfo2

- VkSemaphoreSignalInfo

- VkSemaphoreWaitInfo

- VkSubpassBeginInfo

- VkSubpassDependency2

- VkSubpassDescription2

- VkSubpassEndInfo

- Extending VkAttachmentDescription2:

  - VkAttachmentDescriptionStencilLayout

- Extending VkAttachmentReference2:

  - VkAttachmentReferenceStencilLayout

- Extending VkBufferCreateInfo:

  - VkBufferOpaqueCaptureAddressCreateInfo

- Extending VkDescriptorSetAllocateInfo:

  - VkDescriptorSetVariableDescriptorCountAllocateInfo

- Extending VkDescriptorSetLayoutCreateInfo:

  - VkDescriptorSetLayoutBindingFlagsCreateInfo

- Extending VkDescriptorSetLayoutSupport:

  - VkDescriptorSetVariableDescriptorCountLayoutSupport

- Extending VkFramebufferCreateInfo:

  - VkFramebufferAttachmentsCreateInfo

- Extending VkImageCreateInfo, VkPhysicalDeviceImageFormatInfo2:

  - VkImageStencilUsageCreateInfo

- Extending VkImageCreateInfo, VkSwapchainCreateInfoKHR, VkPhysicalDeviceImageFormatInfo2:

  - VkImageFormatListCreateInfo

- Extending VkMemoryAllocateInfo:

  - VkMemoryOpaqueCaptureAddressAllocateInfo

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDevice8BitStorageFeatures

  - VkPhysicalDeviceBufferDeviceAddressFeatures

  - VkPhysicalDeviceDescriptorIndexingFeatures

  - VkPhysicalDeviceHostQueryResetFeatures

  - VkPhysicalDeviceImagelessFramebufferFeatures

  - VkPhysicalDeviceScalarBlockLayoutFeatures

  - VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures

  - VkPhysicalDeviceShaderAtomicInt64Features

  - VkPhysicalDeviceShaderFloat16Int8Features

  - VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures

  - VkPhysicalDeviceTimelineSemaphoreFeatures

  - VkPhysicalDeviceUniformBufferStandardLayoutFeatures

  - VkPhysicalDeviceVulkan11Features

  - VkPhysicalDeviceVulkan12Features

  - VkPhysicalDeviceVulkanMemoryModelFeatures

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceDepthStencilResolveProperties

  - VkPhysicalDeviceDescriptorIndexingProperties

  - VkPhysicalDeviceDriverProperties

  - VkPhysicalDeviceFloatControlsProperties

  - VkPhysicalDeviceSamplerFilterMinmaxProperties

  - VkPhysicalDeviceTimelineSemaphoreProperties

  - VkPhysicalDeviceVulkan11Properties

  - VkPhysicalDeviceVulkan12Properties

- Extending VkRenderPassBeginInfo:

  - VkRenderPassAttachmentBeginInfo

- Extending VkSamplerCreateInfo:

  - VkSamplerReductionModeCreateInfo

- Extending VkSemaphoreCreateInfo, VkPhysicalDeviceExternalSemaphoreInfo:

  - VkSemaphoreTypeCreateInfo

- Extending VkSubmitInfo, VkBindSparseInfo:

  - VkTimelineSemaphoreSubmitInfo

- Extending VkSubpassDescription2:

  - VkSubpassDescriptionDepthStencilResolve

#### New Enums

- VkDescriptorBindingFlagBits

- VkDriverId

- VkResolveModeFlagBits

- VkSamplerReductionMode

- VkSemaphoreType

- VkSemaphoreWaitFlagBits

- VkShaderFloatControlsIndependence

#### New Bitmasks

- VkDescriptorBindingFlags

- VkResolveModeFlags

- VkSemaphoreWaitFlags

#### New Enum Constants

- `VK_MAX_DRIVER_INFO_SIZE`

- `VK_MAX_DRIVER_NAME_SIZE`

- Extending VkBufferCreateFlagBits:

  - `VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT`

- Extending VkBufferUsageFlagBits:

  - `VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT`

- Extending VkDescriptorPoolCreateFlagBits:

  - `VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT`

- Extending VkDescriptorSetLayoutCreateFlagBits:

  - `VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT`

- Extending VkFormatFeatureFlagBits:

  - `VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT`

- Extending VkFramebufferCreateFlagBits:

  - `VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT`

- Extending VkImageLayout:

  - `VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL`

  - `VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL`

  - `VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL`

  - `VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL`

- Extending VkMemoryAllocateFlagBits:

  - `VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT`

  - `VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT`

- Extending VkResult:

  - `VK_ERROR_FRAGMENTATION`

  - `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS`

- Extending VkSamplerAddressMode:

  - `VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2`

  - `VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT`

  - `VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2`

  - `VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT`

  - `VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO`

  - `VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO`

  - `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT`

  - `VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO`

  - `VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO`

  - `VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES`

  - `VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO`

  - `VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2`

  - `VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO`

  - `VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO`

  - `VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO`

  - `VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2`

  - `VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2`

  - `VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE`

  - `VK_STRUCTURE_TYPE_SUBPASS_END_INFO`

  - `VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO`

### Version 1.1

Vulkan Version 1.1 promoted a number of key extensions into the core API:

- `VK_KHR_16bit_storage`

- `VK_KHR_bind_memory2`

- `VK_KHR_dedicated_allocation`

- `VK_KHR_descriptor_update_template`

- `VK_KHR_device_group`

- `VK_KHR_device_group_creation`

- `VK_KHR_external_fence`

- `VK_KHR_external_fence_capabilities`

- `VK_KHR_external_memory`

- `VK_KHR_external_memory_capabilities`

- `VK_KHR_external_semaphore`

- `VK_KHR_external_semaphore_capabilities`

- `VK_KHR_get_memory_requirements2`

- `VK_KHR_get_physical_device_properties2`

- `VK_KHR_maintenance1`

- `VK_KHR_maintenance2`

- `VK_KHR_maintenance3`

- `VK_KHR_multiview`

- `VK_KHR_relaxed_block_layout`

- `VK_KHR_sampler_ycbcr_conversion`

- `VK_KHR_shader_draw_parameters`

- `VK_KHR_storage_buffer_storage_class`

- `VK_KHR_variable_pointers`

All differences in behavior between these extensions and the corresponding Vulkan 1.1 functionality are summarized below.

#### Differences relative to `VK_KHR_16bit_storage`

If the `VK_KHR_16bit_storage` extension is not supported, support for the `storageBuffer16BitAccess` feature is optional. Support for this feature is defined by VkPhysicalDevice16BitStorageFeatures::`storageBuffer16BitAccess` or VkPhysicalDeviceVulkan11Features::`storageBuffer16BitAccess` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_sampler_ycbcr_conversion`

If the `VK_KHR_sampler_ycbcr_conversion` extension is not supported, support for the `samplerYcbcrConversion` feature is optional. Support for this feature is defined by VkPhysicalDeviceSamplerYcbcrConversionFeatures::`samplerYcbcrConversion` or VkPhysicalDeviceVulkan11Features::`samplerYcbcrConversion` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_shader_draw_parameters`

If the `VK_KHR_shader_draw_parameters` extension is not supported, support for the `SPV_KHR_shader_draw_parameters` SPIR-V extension is optional. Support for this feature is defined by VkPhysicalDeviceShaderDrawParametersFeatures::`shaderDrawParameters` or VkPhysicalDeviceVulkan11Features::`shaderDrawParameters` when queried via vkGetPhysicalDeviceFeatures2.

#### Differences relative to `VK_KHR_variable_pointers`

If the `VK_KHR_variable_pointers` extension is not supported, support for the `variablePointersStorageBuffer` feature is optional. Support for this feature is defined by VkPhysicalDeviceVariablePointersFeatures::`variablePointersStorageBuffer` or VkPhysicalDeviceVulkan11Features::`variablePointersStorageBuffer` when queried via vkGetPhysicalDeviceFeatures2.

#### Additional Vulkan 1.1 Feature Support

In addition to the promoted extensions described above, Vulkan 1.1 added support for:

- The group operations and subgroup scope.

- The protected memory feature.

- A new command to enumerate the instance version: vkEnumerateInstanceVersion.

- The VkPhysicalDeviceShaderDrawParametersFeatures feature query struct (where the `VK_KHR_shader_draw_parameters` extension did not have one).

#### New Macros

- VK_API_VERSION_1_1

#### New Object Types

- VkDescriptorUpdateTemplate

- VkSamplerYcbcrConversion

#### New Commands

- vkBindBufferMemory2

- vkBindImageMemory2

- vkCmdDispatchBase

- vkCmdSetDeviceMask

- vkCreateDescriptorUpdateTemplate

- vkCreateSamplerYcbcrConversion

- vkDestroyDescriptorUpdateTemplate

- vkDestroySamplerYcbcrConversion

- vkEnumerateInstanceVersion

- vkEnumeratePhysicalDeviceGroups

- vkGetBufferMemoryRequirements2

- vkGetDescriptorSetLayoutSupport

- vkGetDeviceGroupPeerMemoryFeatures

- vkGetDeviceQueue2

- vkGetImageMemoryRequirements2

- vkGetImageSparseMemoryRequirements2

- vkGetPhysicalDeviceExternalBufferProperties

- vkGetPhysicalDeviceExternalFenceProperties

- vkGetPhysicalDeviceExternalSemaphoreProperties

- vkGetPhysicalDeviceFeatures2

- vkGetPhysicalDeviceFormatProperties2

- vkGetPhysicalDeviceImageFormatProperties2

- vkGetPhysicalDeviceMemoryProperties2

- vkGetPhysicalDeviceProperties2

- vkGetPhysicalDeviceQueueFamilyProperties2

- vkGetPhysicalDeviceSparseImageFormatProperties2

- vkTrimCommandPool

- vkUpdateDescriptorSetWithTemplate

#### New Structures

- VkBindBufferMemoryInfo

- VkBindImageMemoryInfo

- VkBufferMemoryRequirementsInfo2

- VkDescriptorSetLayoutSupport

- VkDescriptorUpdateTemplateCreateInfo

- VkDescriptorUpdateTemplateEntry

- VkDeviceQueueInfo2

- VkExternalBufferProperties

- VkExternalFenceProperties

- VkExternalMemoryProperties

- VkExternalSemaphoreProperties

- VkFormatProperties2

- VkImageFormatProperties2

- VkImageMemoryRequirementsInfo2

- VkImageSparseMemoryRequirementsInfo2

- VkInputAttachmentAspectReference

- VkMemoryRequirements2

- VkPhysicalDeviceExternalBufferInfo

- VkPhysicalDeviceExternalFenceInfo

- VkPhysicalDeviceExternalSemaphoreInfo

- VkPhysicalDeviceGroupProperties

- VkPhysicalDeviceImageFormatInfo2

- VkPhysicalDeviceMemoryProperties2

- VkPhysicalDeviceProperties2

- VkPhysicalDeviceSparseImageFormatInfo2

- VkQueueFamilyProperties2

- VkSamplerYcbcrConversionCreateInfo

- VkSparseImageFormatProperties2

- VkSparseImageMemoryRequirements2

- Extending VkBindBufferMemoryInfo:

  - VkBindBufferMemoryDeviceGroupInfo

- Extending VkBindImageMemoryInfo:

  - VkBindImageMemoryDeviceGroupInfo

  - VkBindImagePlaneMemoryInfo

- Extending VkBindSparseInfo:

  - VkDeviceGroupBindSparseInfo

- Extending VkBufferCreateInfo:

  - VkExternalMemoryBufferCreateInfo

- Extending VkCommandBufferBeginInfo:

  - VkDeviceGroupCommandBufferBeginInfo

- Extending VkDeviceCreateInfo:

  - VkDeviceGroupDeviceCreateInfo

  - VkPhysicalDeviceFeatures2

- Extending VkFenceCreateInfo:

  - VkExportFenceCreateInfo

- Extending VkImageCreateInfo:

  - VkExternalMemoryImageCreateInfo

- Extending VkImageFormatProperties2:

  - VkExternalImageFormatProperties

  - VkSamplerYcbcrConversionImageFormatProperties

- Extending VkImageMemoryRequirementsInfo2:

  - VkImagePlaneMemoryRequirementsInfo

- Extending VkImageViewCreateInfo:

  - VkImageViewUsageCreateInfo

- Extending VkMemoryAllocateInfo:

  - VkExportMemoryAllocateInfo

  - VkMemoryAllocateFlagsInfo

  - VkMemoryDedicatedAllocateInfo

- Extending VkMemoryRequirements2:

  - VkMemoryDedicatedRequirements

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDevice16BitStorageFeatures

  - VkPhysicalDeviceMultiviewFeatures

  - VkPhysicalDeviceProtectedMemoryFeatures

  - VkPhysicalDeviceSamplerYcbcrConversionFeatures

  - VkPhysicalDeviceShaderDrawParameterFeatures

  - VkPhysicalDeviceShaderDrawParametersFeatures

  - VkPhysicalDeviceVariablePointerFeatures

  - VkPhysicalDeviceVariablePointersFeatures

- Extending VkPhysicalDeviceImageFormatInfo2:

  - VkPhysicalDeviceExternalImageFormatInfo

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceIDProperties

  - VkPhysicalDeviceMaintenance3Properties

  - VkPhysicalDeviceMultiviewProperties

  - VkPhysicalDevicePointClippingProperties

  - VkPhysicalDeviceProtectedMemoryProperties

  - VkPhysicalDeviceSubgroupProperties

- Extending VkPipelineTessellationStateCreateInfo:

  - VkPipelineTessellationDomainOriginStateCreateInfo

- Extending VkRenderPassBeginInfo, VkRenderingInfo:

  - VkDeviceGroupRenderPassBeginInfo

- Extending VkRenderPassCreateInfo:

  - VkRenderPassInputAttachmentAspectCreateInfo

  - VkRenderPassMultiviewCreateInfo

- Extending VkSamplerCreateInfo, VkImageViewCreateInfo:

  - VkSamplerYcbcrConversionInfo

- Extending VkSemaphoreCreateInfo:

  - VkExportSemaphoreCreateInfo

- Extending VkSubmitInfo:

  - VkDeviceGroupSubmitInfo

  - VkProtectedSubmitInfo

#### New Enums

- VkChromaLocation

- VkDescriptorUpdateTemplateType

- VkDeviceQueueCreateFlagBits

- VkExternalFenceFeatureFlagBits

- VkExternalFenceHandleTypeFlagBits

- VkExternalMemoryFeatureFlagBits

- VkExternalMemoryHandleTypeFlagBits

- VkExternalSemaphoreFeatureFlagBits

- VkExternalSemaphoreHandleTypeFlagBits

- VkFenceImportFlagBits

- VkMemoryAllocateFlagBits

- VkPeerMemoryFeatureFlagBits

- VkPointClippingBehavior

- VkSamplerYcbcrModelConversion

- VkSamplerYcbcrRange

- VkSemaphoreImportFlagBits

- VkSubgroupFeatureFlagBits

- VkTessellationDomainOrigin

#### New Bitmasks

- VkCommandPoolTrimFlags

- VkDescriptorUpdateTemplateCreateFlags

- VkExternalFenceFeatureFlags

- VkExternalFenceHandleTypeFlags

- VkExternalMemoryFeatureFlags

- VkExternalMemoryHandleTypeFlags

- VkExternalSemaphoreFeatureFlags

- VkExternalSemaphoreHandleTypeFlags

- VkFenceImportFlags

- VkMemoryAllocateFlags

- VkPeerMemoryFeatureFlags

- VkSemaphoreImportFlags

- VkSubgroupFeatureFlags

#### New Enum Constants

- `VK_LUID_SIZE`

- `VK_MAX_DEVICE_GROUP_SIZE`

- `VK_QUEUE_FAMILY_EXTERNAL`

- Extending VkBufferCreateFlagBits:

  - `VK_BUFFER_CREATE_PROTECTED_BIT`

- Extending VkCommandPoolCreateFlagBits:

  - `VK_COMMAND_POOL_CREATE_PROTECTED_BIT`

- Extending VkDependencyFlagBits:

  - `VK_DEPENDENCY_DEVICE_GROUP_BIT`

  - `VK_DEPENDENCY_VIEW_LOCAL_BIT`

- Extending VkDeviceQueueCreateFlagBits:

  - `VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT`

- Extending VkFormat:

  - `VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16`

  - `VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16`

  - `VK_FORMAT_B16G16R16G16_422_UNORM`

  - `VK_FORMAT_B8G8R8G8_422_UNORM`

  - `VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16`

  - `VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16`

  - `VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16`

  - `VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16`

  - `VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16`

  - `VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16`

  - `VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16`

  - `VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16`

  - `VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16`

  - `VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16`

  - `VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16`

  - `VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16`

  - `VK_FORMAT_G16B16G16R16_422_UNORM`

  - `VK_FORMAT_G16_B16R16_2PLANE_420_UNORM`

  - `VK_FORMAT_G16_B16R16_2PLANE_422_UNORM`

  - `VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM`

  - `VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM`

  - `VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM`

  - `VK_FORMAT_G8B8G8R8_422_UNORM`

  - `VK_FORMAT_G8_B8R8_2PLANE_420_UNORM`

  - `VK_FORMAT_G8_B8R8_2PLANE_422_UNORM`

  - `VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM`

  - `VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM`

  - `VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM`

  - `VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16`

  - `VK_FORMAT_R10X6G10X6_UNORM_2PACK16`

  - `VK_FORMAT_R10X6_UNORM_PACK16`

  - `VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16`

  - `VK_FORMAT_R12X4G12X4_UNORM_2PACK16`

  - `VK_FORMAT_R12X4_UNORM_PACK16`

- Extending VkFormatFeatureFlagBits:

  - `VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT`

  - `VK_FORMAT_FEATURE_DISJOINT_BIT`

  - `VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT`

  - `VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT`

  - `VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT`

  - `VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT`

  - `VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT`

  - `VK_FORMAT_FEATURE_TRANSFER_DST_BIT`

  - `VK_FORMAT_FEATURE_TRANSFER_SRC_BIT`

- Extending VkImageAspectFlagBits:

  - `VK_IMAGE_ASPECT_PLANE_0_BIT`

  - `VK_IMAGE_ASPECT_PLANE_1_BIT`

  - `VK_IMAGE_ASPECT_PLANE_2_BIT`

- Extending VkImageCreateFlagBits:

  - `VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT`

  - `VK_IMAGE_CREATE_ALIAS_BIT`

  - `VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT`

  - `VK_IMAGE_CREATE_DISJOINT_BIT`

  - `VK_IMAGE_CREATE_EXTENDED_USAGE_BIT`

  - `VK_IMAGE_CREATE_PROTECTED_BIT`

  - `VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT`

- Extending VkImageLayout:

  - `VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL`

  - `VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL`

- Extending VkMemoryHeapFlagBits:

  - `VK_MEMORY_HEAP_MULTI_INSTANCE_BIT`

- Extending VkMemoryPropertyFlagBits:

  - `VK_MEMORY_PROPERTY_PROTECTED_BIT`

- Extending VkObjectType:

  - `VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE`

  - `VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION`

- Extending VkPipelineCreateFlagBits:

  - `VK_PIPELINE_CREATE_DISPATCH_BASE`

  - `VK_PIPELINE_CREATE_DISPATCH_BASE_BIT`

  - `VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT`

- Extending VkQueueFlagBits:

  - `VK_QUEUE_PROTECTED_BIT`

- Extending VkResult:

  - `VK_ERROR_INVALID_EXTERNAL_HANDLE`

  - `VK_ERROR_OUT_OF_POOL_MEMORY`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO`

  - `VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO`

  - `VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO`

  - `VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO`

  - `VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO`

  - `VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2`

  - `VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT`

  - `VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO`

  - `VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO`

  - `VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO`

  - `VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO`

  - `VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2`

  - `VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO`

  - `VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES`

  - `VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES`

  - `VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES`

  - `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES`

  - `VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2`

  - `VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2`

  - `VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2`

  - `VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO`

  - `VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2`

  - `VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO`

  - `VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO`

  - `VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS`

  - `VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES`

  - `VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO`

  - `VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2`

  - `VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO`

  - `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES`

  - `VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO`

  - `VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2`

  - `VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2`

### Version 1.0

Vulkan Version 1.0 was the initial release of the Vulkan API.

#### New Macros

- VK_API_VERSION

- VK_API_VERSION_1_0

- VK_API_VERSION_MAJOR

- VK_API_VERSION_MINOR

- VK_API_VERSION_PATCH

- VK_API_VERSION_VARIANT

- VK_DEFINE_HANDLE

- VK_DEFINE_NON_DISPATCHABLE_HANDLE

- VK_HEADER_VERSION

- VK_HEADER_VERSION_COMPLETE

- VK_MAKE_API_VERSION

- VK_MAKE_VERSION

- VK_NULL_HANDLE

- VK_USE_64_BIT_PTR_DEFINES

- VK_VERSION_MAJOR

- VK_VERSION_MINOR

- VK_VERSION_PATCH

#### New Base Types

- VkBool32

- VkDeviceAddress

- VkDeviceSize

- VkFlags

- VkSampleMask

#### New Object Types

- VkBuffer

- VkBufferView

- VkCommandBuffer

- VkCommandPool

- VkDescriptorPool

- VkDescriptorSet

- VkDescriptorSetLayout

- VkDevice

- VkDeviceMemory

- VkEvent

- VkFence

- VkFramebuffer

- VkImage

- VkImageView

- VkInstance

- VkPhysicalDevice

- VkPipeline

- VkPipelineCache

- VkPipelineLayout

- VkQueryPool

- VkQueue

- VkRenderPass

- VkSampler

- VkSemaphore

- VkShaderModule

#### New Commands

- vkAllocateCommandBuffers

- vkAllocateDescriptorSets

- vkAllocateMemory

- vkBeginCommandBuffer

- vkBindBufferMemory

- vkBindImageMemory

- vkCmdBeginQuery

- vkCmdBeginRenderPass

- vkCmdBindDescriptorSets

- vkCmdBindIndexBuffer

- vkCmdBindPipeline

- vkCmdBindVertexBuffers

- vkCmdBlitImage

- vkCmdClearAttachments

- vkCmdClearColorImage

- vkCmdClearDepthStencilImage

- vkCmdCopyBuffer

- vkCmdCopyBufferToImage

- vkCmdCopyImage

- vkCmdCopyImageToBuffer

- vkCmdCopyQueryPoolResults

- vkCmdDispatch

- vkCmdDispatchIndirect

- vkCmdDraw

- vkCmdDrawIndexed

- vkCmdDrawIndexedIndirect

- vkCmdDrawIndirect

- vkCmdEndQuery

- vkCmdEndRenderPass

- vkCmdExecuteCommands

- vkCmdFillBuffer

- vkCmdNextSubpass

- vkCmdPipelineBarrier

- vkCmdPushConstants

- vkCmdResetEvent

- vkCmdResetQueryPool

- vkCmdResolveImage

- vkCmdSetBlendConstants

- vkCmdSetDepthBias

- vkCmdSetDepthBounds

- vkCmdSetEvent

- vkCmdSetLineWidth

- vkCmdSetScissor

- vkCmdSetStencilCompareMask

- vkCmdSetStencilReference

- vkCmdSetStencilWriteMask

- vkCmdSetViewport

- vkCmdUpdateBuffer

- vkCmdWaitEvents

- vkCmdWriteTimestamp

- vkCreateBuffer

- vkCreateBufferView

- vkCreateCommandPool

- vkCreateComputePipelines

- vkCreateDescriptorPool

- vkCreateDescriptorSetLayout

- vkCreateDevice

- vkCreateEvent

- vkCreateFence

- vkCreateFramebuffer

- vkCreateGraphicsPipelines

- vkCreateImage

- vkCreateImageView

- vkCreateInstance

- vkCreatePipelineCache

- vkCreatePipelineLayout

- vkCreateQueryPool

- vkCreateRenderPass

- vkCreateSampler

- vkCreateSemaphore

- vkCreateShaderModule

- vkDestroyBuffer

- vkDestroyBufferView

- vkDestroyCommandPool

- vkDestroyDescriptorPool

- vkDestroyDescriptorSetLayout

- vkDestroyDevice

- vkDestroyEvent

- vkDestroyFence

- vkDestroyFramebuffer

- vkDestroyImage

- vkDestroyImageView

- vkDestroyInstance

- vkDestroyPipeline

- vkDestroyPipelineCache

- vkDestroyPipelineLayout

- vkDestroyQueryPool

- vkDestroyRenderPass

- vkDestroySampler

- vkDestroySemaphore

- vkDestroyShaderModule

- vkDeviceWaitIdle

- vkEndCommandBuffer

- vkEnumerateDeviceExtensionProperties

- vkEnumerateDeviceLayerProperties

- vkEnumerateInstanceExtensionProperties

- vkEnumerateInstanceLayerProperties

- vkEnumeratePhysicalDevices

- vkFlushMappedMemoryRanges

- vkFreeCommandBuffers

- vkFreeDescriptorSets

- vkFreeMemory

- vkGetBufferMemoryRequirements

- vkGetDeviceMemoryCommitment

- vkGetDeviceProcAddr

- vkGetDeviceQueue

- vkGetEventStatus

- vkGetFenceStatus

- vkGetImageMemoryRequirements

- vkGetImageSparseMemoryRequirements

- vkGetImageSubresourceLayout

- vkGetInstanceProcAddr

- vkGetPhysicalDeviceFeatures

- vkGetPhysicalDeviceFormatProperties

- vkGetPhysicalDeviceImageFormatProperties

- vkGetPhysicalDeviceMemoryProperties

- vkGetPhysicalDeviceProperties

- vkGetPhysicalDeviceQueueFamilyProperties

- vkGetPhysicalDeviceSparseImageFormatProperties

- vkGetPipelineCacheData

- vkGetQueryPoolResults

- vkGetRenderAreaGranularity

- vkInvalidateMappedMemoryRanges

- vkMapMemory

- vkMergePipelineCaches

- vkQueueBindSparse

- vkQueueSubmit

- vkQueueWaitIdle

- vkResetCommandBuffer

- vkResetCommandPool

- vkResetDescriptorPool

- vkResetEvent

- vkResetFences

- vkSetEvent

- vkUnmapMemory

- vkUpdateDescriptorSets

- vkWaitForFences

#### New Structures

- VkAllocationCallbacks

- VkApplicationInfo

- VkAttachmentDescription

- VkAttachmentReference

- VkBaseInStructure

- VkBaseOutStructure

- VkBindSparseInfo

- VkBufferCopy

- VkBufferCreateInfo

- VkBufferImageCopy

- VkBufferMemoryBarrier

- VkBufferViewCreateInfo

- VkClearAttachment

- VkClearDepthStencilValue

- VkClearRect

- VkCommandBufferAllocateInfo

- VkCommandBufferBeginInfo

- VkCommandBufferInheritanceInfo

- VkCommandPoolCreateInfo

- VkComponentMapping

- VkComputePipelineCreateInfo

- VkCopyDescriptorSet

- VkDescriptorBufferInfo

- VkDescriptorImageInfo

- VkDescriptorPoolCreateInfo

- VkDescriptorPoolSize

- VkDescriptorSetAllocateInfo

- VkDescriptorSetLayoutBinding

- VkDescriptorSetLayoutCreateInfo

- VkDeviceCreateInfo

- VkDeviceQueueCreateInfo

- VkDispatchIndirectCommand

- VkDrawIndexedIndirectCommand

- VkDrawIndirectCommand

- VkEventCreateInfo

- VkExtensionProperties

- VkExtent2D

- VkExtent3D

- VkFenceCreateInfo

- VkFormatProperties

- VkFramebufferCreateInfo

- VkGraphicsPipelineCreateInfo

- VkImageBlit

- VkImageCopy

- VkImageCreateInfo

- VkImageFormatProperties

- VkImageMemoryBarrier

- VkImageResolve

- VkImageSubresource

- VkImageSubresourceLayers

- VkImageSubresourceRange

- VkImageViewCreateInfo

- VkInstanceCreateInfo

- VkLayerProperties

- VkMappedMemoryRange

- VkMemoryAllocateInfo

- VkMemoryBarrier

- VkMemoryHeap

- VkMemoryRequirements

- VkMemoryType

- VkOffset2D

- VkOffset3D

- VkPhysicalDeviceFeatures

- VkPhysicalDeviceLimits

- VkPhysicalDeviceMemoryProperties

- VkPhysicalDeviceProperties

- VkPhysicalDeviceSparseProperties

- VkPipelineCacheCreateInfo

- VkPipelineCacheHeaderVersionOne

- VkPipelineColorBlendAttachmentState

- VkPipelineColorBlendStateCreateInfo

- VkPipelineDepthStencilStateCreateInfo

- VkPipelineDynamicStateCreateInfo

- VkPipelineInputAssemblyStateCreateInfo

- VkPipelineLayoutCreateInfo

- VkPipelineMultisampleStateCreateInfo

- VkPipelineRasterizationStateCreateInfo

- VkPipelineShaderStageCreateInfo

- VkPipelineTessellationStateCreateInfo

- VkPipelineVertexInputStateCreateInfo

- VkPipelineViewportStateCreateInfo

- VkPushConstantRange

- VkQueryPoolCreateInfo

- VkQueueFamilyProperties

- VkRect2D

- VkRenderPassBeginInfo

- VkRenderPassCreateInfo

- VkSamplerCreateInfo

- VkSemaphoreCreateInfo

- VkSparseBufferMemoryBindInfo

- VkSparseImageFormatProperties

- VkSparseImageMemoryBind

- VkSparseImageMemoryBindInfo

- VkSparseImageMemoryRequirements

- VkSparseImageOpaqueMemoryBindInfo

- VkSparseMemoryBind

- VkSpecializationInfo

- VkSpecializationMapEntry

- VkStencilOpState

- VkSubmitInfo

- VkSubpassDependency

- VkSubpassDescription

- VkSubresourceLayout

- VkVertexInputAttributeDescription

- VkVertexInputBindingDescription

- VkViewport

- VkWriteDescriptorSet

- Extending VkPipelineShaderStageCreateInfo:

  - VkShaderModuleCreateInfo

#### New Unions

- VkClearColorValue

- VkClearValue

#### New Function Pointers

- PFN_vkAllocationFunction

- PFN_vkFreeFunction

- PFN_vkInternalAllocationNotification

- PFN_vkInternalFreeNotification

- PFN_vkReallocationFunction

- PFN_vkVoidFunction

#### New Enums

- VkAccessFlagBits

- VkAttachmentDescriptionFlagBits

- VkAttachmentLoadOp

- VkAttachmentStoreOp

- VkBlendFactor

- VkBlendOp

- VkBorderColor

- VkBufferCreateFlagBits

- VkBufferUsageFlagBits

- VkColorComponentFlagBits

- VkCommandBufferLevel

- VkCommandBufferResetFlagBits

- VkCommandBufferUsageFlagBits

- VkCommandPoolCreateFlagBits

- VkCommandPoolResetFlagBits

- VkCompareOp

- VkComponentSwizzle

- VkCullModeFlagBits

- VkDependencyFlagBits

- VkDescriptorPoolCreateFlagBits

- VkDescriptorSetLayoutCreateFlagBits

- VkDescriptorType

- VkDynamicState

- VkEventCreateFlagBits

- VkFenceCreateFlagBits

- VkFilter

- VkFormat

- VkFormatFeatureFlagBits

- VkFramebufferCreateFlagBits

- VkFrontFace

- VkImageAspectFlagBits

- VkImageCreateFlagBits

- VkImageLayout

- VkImageTiling

- VkImageType

- VkImageUsageFlagBits

- VkImageViewCreateFlagBits

- VkImageViewType

- VkIndexType

- VkInstanceCreateFlagBits

- VkInternalAllocationType

- VkLogicOp

- VkMemoryHeapFlagBits

- VkMemoryPropertyFlagBits

- VkObjectType

- VkPhysicalDeviceType

- VkPipelineBindPoint

- VkPipelineCacheHeaderVersion

- VkPipelineCreateFlagBits

- VkPipelineShaderStageCreateFlagBits

- VkPipelineStageFlagBits

- VkPolygonMode

- VkPrimitiveTopology

- VkQueryControlFlagBits

- VkQueryPipelineStatisticFlagBits

- VkQueryResultFlagBits

- VkQueryType

- VkQueueFlagBits

- VkRenderPassCreateFlagBits

- VkResult

- VkSampleCountFlagBits

- VkSamplerAddressMode

- VkSamplerCreateFlagBits

- VkSamplerMipmapMode

- VkShaderStageFlagBits

- VkSharingMode

- VkSparseImageFormatFlagBits

- VkSparseMemoryBindFlagBits

- VkStencilFaceFlagBits

- VkStencilOp

- VkStructureType

- VkSubpassContents

- VkSubpassDescriptionFlagBits

- VkSystemAllocationScope

- VkVendorId

- VkVertexInputRate

#### New Bitmasks

- VkAccessFlags

- VkAttachmentDescriptionFlags

- VkBufferCreateFlags

- VkBufferUsageFlags

- VkBufferViewCreateFlags

- VkColorComponentFlags

- VkCommandBufferResetFlags

- VkCommandBufferUsageFlags

- VkCommandPoolCreateFlags

- VkCommandPoolResetFlags

- VkCullModeFlags

- VkDependencyFlags

- VkDescriptorPoolCreateFlags

- VkDescriptorPoolResetFlags

- VkDescriptorSetLayoutCreateFlags

- VkDeviceCreateFlags

- VkDeviceQueueCreateFlags

- VkEventCreateFlags

- VkFenceCreateFlags

- VkFormatFeatureFlags

- VkFramebufferCreateFlags

- VkImageAspectFlags

- VkImageCreateFlags

- VkImageUsageFlags

- VkImageViewCreateFlags

- VkInstanceCreateFlags

- VkMemoryHeapFlags

- VkMemoryMapFlags

- VkMemoryPropertyFlags

- VkPipelineCacheCreateFlags

- VkPipelineColorBlendStateCreateFlags

- VkPipelineCreateFlags

- VkPipelineDepthStencilStateCreateFlags

- VkPipelineDynamicStateCreateFlags

- VkPipelineInputAssemblyStateCreateFlags

- VkPipelineLayoutCreateFlags

- VkPipelineMultisampleStateCreateFlags

- VkPipelineRasterizationStateCreateFlags

- VkPipelineShaderStageCreateFlags

- VkPipelineStageFlags

- VkPipelineTessellationStateCreateFlags

- VkPipelineVertexInputStateCreateFlags

- VkPipelineViewportStateCreateFlags

- VkQueryControlFlags

- VkQueryPipelineStatisticFlags

- VkQueryPoolCreateFlags

- VkQueryResultFlags

- VkQueueFlags

- VkRenderPassCreateFlags

- VkSampleCountFlags

- VkSamplerCreateFlags

- VkSemaphoreCreateFlags

- VkShaderModuleCreateFlags

- VkShaderStageFlags

- VkSparseImageFormatFlags

- VkSparseMemoryBindFlags

- VkStencilFaceFlags

- VkSubpassDescriptionFlags

#### New Headers

- `vk_platform`

#### New Enum Constants

- `VK_ATTACHMENT_UNUSED`

- `VK_FALSE`

- `VK_LOD_CLAMP_NONE`

- `VK_MAX_DESCRIPTION_SIZE`

- `VK_MAX_EXTENSION_NAME_SIZE`

- `VK_MAX_MEMORY_HEAPS`

- `VK_MAX_MEMORY_TYPES`

- `VK_MAX_PHYSICAL_DEVICE_NAME_SIZE`

- `VK_QUEUE_FAMILY_IGNORED`

- `VK_REMAINING_ARRAY_LAYERS`

- `VK_REMAINING_MIP_LEVELS`

- `VK_SUBPASS_EXTERNAL`

- `VK_TRUE`

- `VK_UUID_SIZE`

- `VK_WHOLE_SIZE`