C Specification

The VkDependencyInfoKHR structure is defined as:

// Provided by VK_KHR_synchronization2
typedef struct VkDependencyInfoKHR {
    VkStructureType                     sType;
    const void*                         pNext;
    VkDependencyFlags                   dependencyFlags;
    uint32_t                            memoryBarrierCount;
    const VkMemoryBarrier2KHR*          pMemoryBarriers;
    uint32_t                            bufferMemoryBarrierCount;
    const VkBufferMemoryBarrier2KHR*    pBufferMemoryBarriers;
    uint32_t                            imageMemoryBarrierCount;
    const VkImageMemoryBarrier2KHR*     pImageMemoryBarriers;
} VkDependencyInfoKHR;


  • sType is the type of this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • dependencyFlags is a bitmask of VkDependencyFlagBits specifying how execution and memory dependencies are formed.

  • memoryBarrierCount is the length of the pMemoryBarriers array.

  • pMemoryBarriers is a pointer to an array of VkMemoryBarrier2KHR structures that define memory dependencies between any memory accesses.

  • bufferMemoryBarrierCount is the length of the pBufferMemoryBarriers array.

  • pBufferMemoryBarriers is a pointer to an array of VkBufferMemoryBarrier2KHR structures that define memory dependencies between buffer ranges.

  • imageMemoryBarrierCount is the length of the pImageMemoryBarriers array.

  • pImageMemoryBarriers is a pointer to an array of VkImageMemoryBarrier2KHR structures that define memory dependencies between image subresources.


This structure defines a set of memory dependencies, as well as queue family transfer operations and image layout transitions.

Each member of pMemoryBarriers, pBufferMemoryBarriers, and pImageMemoryBarriers defines a separate memory dependency.

Valid Usage (Implicit)
  • VUID-VkDependencyInfoKHR-sType-sType

  • VUID-VkDependencyInfoKHR-pNext-pNext
    pNext must be NULL

  • VUID-VkDependencyInfoKHR-dependencyFlags-parameter
    dependencyFlags must be a valid combination of VkDependencyFlagBits values

  • VUID-VkDependencyInfoKHR-pMemoryBarriers-parameter
    If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier2KHR structures

  • VUID-VkDependencyInfoKHR-pBufferMemoryBarriers-parameter
    If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier2KHR structures

  • VUID-VkDependencyInfoKHR-pImageMemoryBarriers-parameter
    If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier2KHR structures

See Also

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 2014-2021 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0