VK_VERSION_1_2(3)

# VK_VERSION_1_2(3) Manual Page

## Name

VK_VERSION_1_2 - Vulkan version 1.2

Loading… please wait.

## Description

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 in the Vulkan 1.2 specification appendix.

### 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`

## See Also

VK_VERSION_1_0, VK_VERSION_1_1, VK_VERSION_1_3

## 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.

## Copyright

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0