Description
Vulkan Version 1.2 promoted a number of key extensions into the core API:
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_storageextension is not supported, support for the SPIR-VstorageBuffer8BitAccesscapability in shader modules is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::storageBuffer8BitAccesswhen queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_KHR_draw_indirect_count
- 
If the VK_KHR_draw_indirect_countextension is not supported, support for the commands vkCmdDrawIndirectCount and vkCmdDrawIndexedIndirectCount is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::drawIndirectCountwhen queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_KHR_sampler_mirror_clamp_to_edge
- 
If the VK_KHR_sampler_mirror_clamp_to_edgeextension is not supported, support for the VkSamplerAddressModeVK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGEis optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdgewhen queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_EXT_descriptor_indexing
- 
If the VK_EXT_descriptor_indexingextension is not supported, support for thedescriptorIndexingfeature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::descriptorIndexingwhen queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_EXT_scalar_block_layout
- 
If the VK_EXT_scalar_block_layoutextension is not supported, support for thescalarBlockLayoutfeature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::scalarBlockLayoutwhen queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_EXT_shader_viewport_index_layer
- 
The ShaderViewportIndexLayerEXTSPIR-V capability was replaced with theShaderViewportIndexandShaderLayercapabilities. Declaring both is equivalent to declaringShaderViewportIndexLayerEXT. If theVK_EXT_shader_viewport_index_layerextension is not supported, support for theShaderViewportIndexLayerEXTSPIR-V capability is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndexand VkPhysicalDeviceVulkan12Features::shaderOutputLayerwhen queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_KHR_buffer_device_address
- 
If the VK_KHR_buffer_device_addressextension is not supported, support for thebufferDeviceAddressfeature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::bufferDeviceAddresswhen queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_KHR_shader_atomic_int64
- 
If the VK_KHR_shader_atomic_int64extension is not supported, support for theshaderBufferInt64Atomicsfeature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::shaderBufferInt64Atomicswhen queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_KHR_shader_float16_int8
- 
If the VK_KHR_shader_float16_int8extension is not supported, support for theshaderFloat16andshaderInt8features is optional. Support for these features are defined by VkPhysicalDeviceVulkan12Features::shaderFloat16and VkPhysicalDeviceVulkan12Features::shaderInt8when queried via vkGetPhysicalDeviceFeatures2.
- Differences Relative to VK_KHR_vulkan_memory_model
- 
If the VK_KHR_vulkan_memory_modelextension is not supported, support for thevulkanMemoryModelfeature is optional. Support for this feature is defined by VkPhysicalDeviceVulkan12Features::vulkanMemoryModelwhen 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 samplerMirrorClampToEdgefeature which indicates whether the implementation supports theVK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGEsampler address mode.
- 
The ShaderNonUniformcapability in SPIR-V version 1.5.
- 
The shaderOutputViewportIndexfeature which indicates that theShaderViewportIndexcapability can be used.
- 
The shaderOutputLayerfeature which indicates that theShaderLayercapability can be used.
- 
The subgroupBroadcastDynamicIdfeature which allows the “Id” operand ofOpGroupNonUniformBroadcastto be dynamically uniform within a subgroup, and the “Index” operand ofOpGroupNonUniformQuadBroadcastto be dynamically uniform within a derivative group, in shader modules of version 1.5 or higher.
- 
The drawIndirectCountfeature which indicates whether the vkCmdDrawIndirectCount and vkCmdDrawIndexedIndirectCount functions can be used.
- 
The descriptorIndexingfeature which indicates the implementation supports the minimum number of descriptor indexing features as defined in the Feature Requirements section.
- 
The samplerFilterMinmaxfeature which indicates whether the implementation supports the minimum number of image formats that support theVK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BITfeature bit as defined by thefilterMinmaxSingleComponentFormatsproperty minimum requirements.
- 
The framebufferIntegerColorSampleCountslimit which indicates the color sample counts that are supported for all framebuffer color attachments with integer formats.
 
- 
New Structures
- 
Extending VkAttachmentDescription2: 
- 
Extending VkAttachmentReference2: 
- 
Extending VkBufferCreateInfo: 
- 
Extending VkDescriptorSetAllocateInfo: 
- 
Extending VkDescriptorSetLayoutCreateInfo: 
- 
Extending VkDescriptorSetLayoutSupport: 
- 
Extending VkFramebufferCreateInfo: 
- 
Extending VkImageCreateInfo, VkPhysicalDeviceImageFormatInfo2: 
- 
Extending VkImageCreateInfo, VkSwapchainCreateInfoKHR, VkPhysicalDeviceImageFormatInfo2: 
- 
Extending VkMemoryAllocateInfo: 
- 
Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo: 
- 
Extending VkPhysicalDeviceProperties2: 
- 
Extending VkRenderPassBeginInfo: 
- 
Extending VkSamplerCreateInfo: 
- 
Extending VkSemaphoreCreateInfo, VkPhysicalDeviceExternalSemaphoreInfo: 
- 
Extending VkSubmitInfo, VkBindSparseInfo: 
- 
Extending VkSubpassDescription2: 
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
 
- 
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.