Feature

VK_VERSION_1_3

Vulkan 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

New Structures

New Enums

New Bitmasks

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