Vulkan-Docs/appendices/versions.txt

346 lines
15 KiB
Plaintext

// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
[appendix]
[[versions]]
= 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
<<extendingvulkan-compatibility-promotions,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.
ifdef::VK_VERSION_1_1[]
[[versions-1.1]]
== Version 1.1
[[versions-1.1-promotions]]
Vulkan Version 1.1 <<extendingvulkan-compatibility-promotions,promoted>> a
number of key extensions into the core API:
include::meta/promoted_extensions_VK_VERSION_1_1.txt[]
The only changes to the functionality added by these extensions were to
`VK_KHR_shader_draw_parameters`, which had a
<<features-shaderDrawParameters, feature bit>> added to determine support in
the core API, and <<features-variablePointersStorageBuffer,
pname:variablePointersStorageBuffer>> from `VK_KHR_variable_pointers` was
made optional.
[[versions-1.1-new-features]]
Additionally, Vulkan 1.1 added support for
<<VkPhysicalDeviceSubgroupProperties, subgroup operations>>,
<<VkPhysicalDeviceProtectedMemoryFeatures, protected memory>>, and a new
command to <<vkEnumerateInstanceVersion, enumerate the instance version>>.
=== New Object Types
* slink:VkDescriptorUpdateTemplate
* slink:VkSamplerYcbcrConversion
=== New Defines
* dlink:VK_API_VERSION_1_1
=== New Enum Constants
* Extending elink:VkBufferCreateFlagBits:
** ename:VK_BUFFER_CREATE_PROTECTED_BIT
* Extending elink:VkCommandPoolCreateFlagBits:
** ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT
* Extending elink:VkDependencyFlagBits:
** ename:VK_DEPENDENCY_DEVICE_GROUP_BIT
** ename:VK_DEPENDENCY_VIEW_LOCAL_BIT
* Extending elink:VkDeviceQueueCreateFlagBits:
** ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
* Extending elink:VkFormat:
** ename:VK_FORMAT_G8B8G8R8_422_UNORM
** ename:VK_FORMAT_B8G8R8G8_422_UNORM
** ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM
** ename:VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
** ename:VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM
** ename:VK_FORMAT_G8_B8R8_2PLANE_422_UNORM
** ename:VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM
** ename:VK_FORMAT_R10X6_UNORM_PACK16
** ename:VK_FORMAT_R10X6G10X6_UNORM_2PACK16
** ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
** ename:VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
** ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
** ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
** ename:VK_FORMAT_R12X4_UNORM_PACK16
** ename:VK_FORMAT_R12X4G12X4_UNORM_2PACK16
** ename:VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
** ename:VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
** ename:VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16
** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16
** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16
** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16
** ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
** ename:VK_FORMAT_G16B16G16R16_422_UNORM
** ename:VK_FORMAT_B16G16R16G16_422_UNORM
** ename:VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM
** ename:VK_FORMAT_G16_B16R16_2PLANE_420_UNORM
** ename:VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM
** ename:VK_FORMAT_G16_B16R16_2PLANE_422_UNORM
** ename:VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM
* Extending elink:VkFormatFeatureFlagBits:
** ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
** ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT
** ename:VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
** ename:VK_FORMAT_FEATURE_DISJOINT_BIT
** ename:VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
* Extending elink:VkImageAspectFlagBits:
** ename:VK_IMAGE_ASPECT_PLANE_0_BIT
** ename:VK_IMAGE_ASPECT_PLANE_1_BIT
** ename:VK_IMAGE_ASPECT_PLANE_2_BIT
* Extending elink:VkImageCreateFlagBits:
** ename:VK_IMAGE_CREATE_ALIAS_BIT
** ename:VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
** ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
** ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
** ename:VK_IMAGE_CREATE_EXTENDED_USAGE_BIT
** ename:VK_IMAGE_CREATE_PROTECTED_BIT
** ename:VK_IMAGE_CREATE_DISJOINT_BIT
* Extending elink:VkImageCreateFlagBits:
** ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
** ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
* Extending elink:VkMemoryHeapFlagBits:
** ename:VK_MEMORY_HEAP_MULTI_INSTANCE_BIT
* Extending elink:VkMemoryPropertyFlagBits:
** ename:VK_MEMORY_PROPERTY_PROTECTED_BIT
* Extending elink:VkObjectType:
** ename:VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION
** ename:VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE
* Extending elink:VkPipelineCreateFlagBits:
** ename:VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT
** ename:VK_PIPELINE_CREATE_DISPATCH_BASE
* Extending elink:VkQueueFlagBits:
** ename:VK_QUEUE_PROTECTED_BIT
* Extending elink:VkResult:
** ename:VK_ERROR_OUT_OF_POOL_MEMORY
** ename:VK_ERROR_INVALID_EXTERNAL_HANDLE
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
** ename:VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO
** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
** ename:VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS
** ename:VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO
** ename:VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO
** ename:VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO
** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES
** ename:VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2
** ename:VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2
** ename:VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
** ename:VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2
** ename:VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2
** ename:VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2
** ename:VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2
** ename:VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2
** ename:VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
** ename:VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
** ename:VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
** ename:VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2
** ename:VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO
** ename:VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO
** ename:VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
** ename:VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
** ename:VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
** ename:VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO
** ename:VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
** ename:VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO
** ename:VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES
** ename:VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
** ename:VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
** ename:VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
=== New Enums
* elink:VkChromaLocation
* elink:VkDescriptorUpdateTemplateType
* elink:VkExternalFenceFeatureFlagBits
* elink:VkExternalFenceHandleTypeFlagBits
* elink:VkExternalMemoryFeatureFlagBits
* elink:VkExternalMemoryHandleTypeFlagBits
* elink:VkExternalSemaphoreFeatureFlagBits
* elink:VkExternalSemaphoreHandleTypeFlagBits
* elink:VkFenceImportFlagBits
* elink:VkMemoryAllocateFlagBits
* elink:VkPeerMemoryFeatureFlagBits
* elink:VkPointClippingBehavior
* elink:VkSamplerYcbcrModelConversion
* elink:VkSamplerYcbcrRange
* elink:VkSemaphoreImportFlagBits
* elink:VkSubgroupFeatureFlagBits
* elink:VkTessellationDomainOrigin
* tlink:VkCommandPoolTrimFlags
* tlink:VkDescriptorUpdateTemplateCreateFlags
* tlink:VkExternalFenceFeatureFlags
* tlink:VkExternalFenceHandleTypeFlags
* tlink:VkExternalMemoryFeatureFlags
* tlink:VkExternalMemoryHandleTypeFlags
* tlink:VkExternalSemaphoreFeatureFlags
* tlink:VkExternalSemaphoreHandleTypeFlags
* tlink:VkFenceImportFlags
* tlink:VkMemoryAllocateFlags
* tlink:VkPeerMemoryFeatureFlags
* tlink:VkSemaphoreImportFlags
* tlink:VkSubgroupFeatureFlags
=== New Structures
* slink:VkBindBufferMemoryDeviceGroupInfo
* slink:VkBindBufferMemoryInfo
* slink:VkBindImageMemoryDeviceGroupInfo
* slink:VkBindImageMemoryInfo
* slink:VkBindImagePlaneMemoryInfo
* slink:VkBufferMemoryRequirementsInfo2
* slink:VkDescriptorSetLayoutSupport
* slink:VkDescriptorUpdateTemplateCreateInfo
* slink:VkDescriptorUpdateTemplateEntry
* slink:VkDeviceGroupBindSparseInfo
* slink:VkDeviceGroupCommandBufferBeginInfo
* slink:VkDeviceGroupDeviceCreateInfo
* slink:VkDeviceGroupRenderPassBeginInfo
* slink:VkDeviceGroupSubmitInfo
* slink:VkDeviceQueueInfo2
* slink:VkExportFenceCreateInfo
* slink:VkExportMemoryAllocateInfo
* slink:VkExportSemaphoreCreateInfo
* slink:VkExternalBufferProperties
* slink:VkExternalFenceProperties
* slink:VkExternalImageFormatProperties
* slink:VkExternalMemoryBufferCreateInfo
* slink:VkExternalMemoryImageCreateInfo
* slink:VkExternalMemoryProperties
* slink:VkExternalSemaphoreProperties
* slink:VkFormatProperties2
* slink:VkImageFormatProperties2
* slink:VkImageMemoryRequirementsInfo2
* slink:VkImagePlaneMemoryRequirementsInfo
* slink:VkImageSparseMemoryRequirementsInfo2
* slink:VkImageViewUsageCreateInfo
* slink:VkInputAttachmentAspectReference
* slink:VkMemoryAllocateFlagsInfo
* slink:VkMemoryDedicatedAllocateInfo
* slink:VkMemoryDedicatedRequirements
* slink:VkMemoryRequirements2
* slink:VkPhysicalDevice16BitStorageFeatures
* slink:VkPhysicalDeviceExternalBufferInfo
* slink:VkPhysicalDeviceExternalFenceInfo
* slink:VkPhysicalDeviceExternalImageFormatInfo
* slink:VkPhysicalDeviceExternalSemaphoreInfo
* slink:VkPhysicalDeviceFeatures2
* slink:VkPhysicalDeviceGroupProperties
* slink:VkPhysicalDeviceIDProperties
* slink:VkPhysicalDeviceImageFormatInfo2
* slink:VkPhysicalDeviceMaintenance3Properties
* slink:VkPhysicalDeviceMemoryProperties2
* slink:VkPhysicalDeviceMultiviewFeatures
* slink:VkPhysicalDeviceMultiviewProperties
* slink:VkPhysicalDevicePointClippingProperties
* slink:VkPhysicalDeviceProperties2
* slink:VkPhysicalDeviceProtectedMemoryFeatures
* slink:VkPhysicalDeviceProtectedMemoryProperties
* slink:VkPhysicalDeviceSamplerYcbcrConversionFeatures
* slink:VkPhysicalDeviceShaderDrawParametersFeatures
* slink:VkPhysicalDeviceSparseImageFormatInfo2
* slink:VkPhysicalDeviceSubgroupProperties
* slink:VkPhysicalDeviceVariablePointersFeatures
* slink:VkPipelineTessellationDomainOriginStateCreateInfo
* slink:VkProtectedSubmitInfo
* slink:VkQueueFamilyProperties2
* slink:VkRenderPassInputAttachmentAspectCreateInfo
* slink:VkRenderPassMultiviewCreateInfo
* slink:VkSamplerYcbcrConversionCreateInfo
* slink:VkSamplerYcbcrConversionImageFormatProperties
* slink:VkSamplerYcbcrConversionInfo
* slink:VkSparseImageFormatProperties2
* slink:VkSparseImageMemoryRequirements2
=== New Functions
* flink:vkBindBufferMemory2
* flink:vkBindImageMemory2
* flink:vkCmdDispatchBase
* flink:vkCmdSetDeviceMask
* flink:vkCreateDescriptorUpdateTemplate
* flink:vkCreateSamplerYcbcrConversion
* flink:vkDestroyDescriptorUpdateTemplate
* flink:vkDestroySamplerYcbcrConversion
* flink:vkEnumerateInstanceVersion
* flink:vkEnumeratePhysicalDeviceGroups
* flink:vkGetBufferMemoryRequirements2
* flink:vkGetDescriptorSetLayoutSupport
* flink:vkGetDeviceGroupPeerMemoryFeatures
* flink:vkGetDeviceQueue2
* flink:vkGetImageMemoryRequirements2
* flink:vkGetImageSparseMemoryRequirements2
* flink:vkGetPhysicalDeviceExternalBufferProperties
* flink:vkGetPhysicalDeviceExternalFenceProperties
* flink:vkGetPhysicalDeviceExternalSemaphoreProperties
* flink:vkGetPhysicalDeviceFeatures2
* flink:vkGetPhysicalDeviceFormatProperties2
* flink:vkGetPhysicalDeviceImageFormatProperties2
* flink:vkGetPhysicalDeviceMemoryProperties2
* flink:vkGetPhysicalDeviceProperties2
* flink:vkGetPhysicalDeviceQueueFamilyProperties2
* flink:vkGetPhysicalDeviceSparseImageFormatProperties2
* flink:vkTrimCommandPool
* flink:vkUpdateDescriptorSetWithTemplate
endif::VK_VERSION_1_1[]