VK_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 commands 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 commands 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
[[versions-1.3-new-features]] 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 code:WorkgroupSize decoration. * The <<features-bufferDeviceAddress, pname:bufferDeviceAddress>> feature which indicates support for accessing memory in shaders as storage buffers via flink:vkGetBufferDeviceAddress. * The <<features-vulkanMemoryModel, pname:vulkanMemoryModel>> and <<features-vulkanMemoryModelDeviceScope, pname:vulkanMemoryModelDeviceScope>> features, which indicate support for the corresponding Vulkan Memory Model capabilities. * The <<limits-maxInlineUniformTotalSize, pname:maxInlineUniformTotalSize>> limit is added to provide the total size of all inline uniform block bindings in a pipeline layout.
New Macros
New Base Types
New Object Types
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:
- Extending VkDescriptorPoolCreateInfo:
- Extending VkDeviceCreateInfo:
- Extending VkFormatProperties2:
- Extending VkGraphicsPipelineCreateInfo:
- Extending VkGraphicsPipelineCreateInfo, VkComputePipelineCreateInfo, VkRayTracingPipelineCreateInfoNV, VkRayTracingPipelineCreateInfoKHR, VkExecutionGraphPipelineCreateInfoAMDX, VkDataGraphPipelineCreateInfoARM:
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- VkPhysicalDeviceDynamicRenderingFeatures
- VkPhysicalDeviceImageRobustnessFeatures
- VkPhysicalDeviceInlineUniformBlockFeatures
- VkPhysicalDeviceMaintenance4Features
- VkPhysicalDevicePipelineCreationCacheControlFeatures
- VkPhysicalDevicePrivateDataFeatures
- VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
- VkPhysicalDeviceShaderIntegerDotProductFeatures
- VkPhysicalDeviceShaderTerminateInvocationFeatures
- VkPhysicalDeviceSubgroupSizeControlFeatures
- VkPhysicalDeviceSynchronization2Features
- VkPhysicalDeviceTextureCompressionASTCHDRFeatures
- VkPhysicalDeviceVulkan13Features
- VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
- Extending VkPhysicalDeviceProperties2:
- Extending VkPipelineShaderStageCreateInfo, VkShaderCreateInfoEXT:
- Extending VkSubpassDependency2:
- Extending VkWriteDescriptorSet:
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_MODEVK_DYNAMIC_STATE_DEPTH_BIAS_ENABLEVK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLEVK_DYNAMIC_STATE_DEPTH_COMPARE_OPVK_DYNAMIC_STATE_DEPTH_TEST_ENABLEVK_DYNAMIC_STATE_DEPTH_WRITE_ENABLEVK_DYNAMIC_STATE_FRONT_FACEVK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLEVK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGYVK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLEVK_DYNAMIC_STATE_SCISSOR_WITH_COUNTVK_DYNAMIC_STATE_STENCIL_OPVK_DYNAMIC_STATE_STENCIL_TEST_ENABLEVK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDEVK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT
- Extending VkEventCreateFlagBits:
VK_EVENT_CREATE_DEVICE_ONLY_BIT
- Extending VkFormat:
VK_FORMAT_A4B4G4R4_UNORM_PACK16VK_FORMAT_A4R4G4B4_UNORM_PACK16VK_FORMAT_ASTC_10x10_SFLOAT_BLOCKVK_FORMAT_ASTC_10x5_SFLOAT_BLOCKVK_FORMAT_ASTC_10x6_SFLOAT_BLOCKVK_FORMAT_ASTC_10x8_SFLOAT_BLOCKVK_FORMAT_ASTC_12x10_SFLOAT_BLOCKVK_FORMAT_ASTC_12x12_SFLOAT_BLOCKVK_FORMAT_ASTC_4x4_SFLOAT_BLOCKVK_FORMAT_ASTC_5x4_SFLOAT_BLOCKVK_FORMAT_ASTC_5x5_SFLOAT_BLOCKVK_FORMAT_ASTC_6x5_SFLOAT_BLOCKVK_FORMAT_ASTC_6x6_SFLOAT_BLOCKVK_FORMAT_ASTC_8x5_SFLOAT_BLOCKVK_FORMAT_ASTC_8x6_SFLOAT_BLOCKVK_FORMAT_ASTC_8x8_SFLOAT_BLOCKVK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16VK_FORMAT_G16_B16R16_2PLANE_444_UNORMVK_FORMAT_G8_B8R8_2PLANE_444_UNORM
- Extending VkFormatFeatureFlagBits2:
VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT
- Extending VkImageAspectFlagBits:
VK_IMAGE_ASPECT_NONE
- Extending VkImageLayout:
VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMALVK_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_BITVK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT
- Extending VkPipelineShaderStageCreateFlagBits:
VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BITVK_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_2VK_STRUCTURE_TYPE_BUFFER_COPY_2VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFOVK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFOVK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2VK_STRUCTURE_TYPE_DEPENDENCY_INFOVK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFOVK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTSVK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTSVK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFOVK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3VK_STRUCTURE_TYPE_IMAGE_BLIT_2VK_STRUCTURE_TYPE_IMAGE_COPY_2VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2VK_STRUCTURE_TYPE_MEMORY_BARRIER_2VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIESVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURESVK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFOVK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFOVK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFOVK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFOVK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFOVK_STRUCTURE_TYPE_RENDERING_INFOVK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFOVK_STRUCTURE_TYPE_SUBMIT_INFO_2VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK