# VkDependencyInfo(3) Manual Page

## Name

VkDependencyInfo - Structure specifying dependency information for a synchronization command

Loading… please wait.

## C Specification

The `VkDependencyInfo` structure is defined as:

    // Provided by VK_VERSION_1_3
    typedef struct VkDependencyInfo {
        VkStructureType                  sType;
        const void*                      pNext;
        VkDependencyFlags                dependencyFlags;
        uint32_t                         memoryBarrierCount;
        const VkMemoryBarrier2*          pMemoryBarriers;
        uint32_t                         bufferMemoryBarrierCount;
        const VkBufferMemoryBarrier2*    pBufferMemoryBarriers;
        uint32_t                         imageMemoryBarrierCount;
        const VkImageMemoryBarrier2*     pImageMemoryBarriers;
    } VkDependencyInfo;

or the equivalent

    // Provided by VK_KHR_synchronization2
    typedef VkDependencyInfo VkDependencyInfoKHR;

## Members

- `sType` is a VkStructureType value identifying 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 VkMemoryBarrier2 structures defining memory dependencies between any memory accesses.

- `bufferMemoryBarrierCount` is the length of the `pBufferMemoryBarriers` array.

- `pBufferMemoryBarriers` is a pointer to an array of VkBufferMemoryBarrier2 structures defining memory dependencies between buffer ranges.

- `imageMemoryBarrierCount` is the length of the `pImageMemoryBarriers` array.

- `pImageMemoryBarriers` is a pointer to an array of VkImageMemoryBarrier2 structures defining memory dependencies between image subresources.

## Description

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

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

Valid Usage (Implicit)

- VUID-VkDependencyInfo-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_DEPENDENCY_INFO`

- VUID-VkDependencyInfo-pNext-pNext
  `pNext` must be `NULL`

- VUID-VkDependencyInfo-dependencyFlags-parameter
  `dependencyFlags` must be a valid combination of VkDependencyFlagBits values

- VUID-VkDependencyInfo-pMemoryBarriers-parameter
  If `memoryBarrierCount` is not `0`, `pMemoryBarriers` must be a valid pointer to an array of `memoryBarrierCount` valid VkMemoryBarrier2 structures

- VUID-VkDependencyInfo-pBufferMemoryBarriers-parameter
  If `bufferMemoryBarrierCount` is not `0`, `pBufferMemoryBarriers` must be a valid pointer to an array of `bufferMemoryBarrierCount` valid VkBufferMemoryBarrier2 structures

- VUID-VkDependencyInfo-pImageMemoryBarriers-parameter
  If `imageMemoryBarrierCount` is not `0`, `pImageMemoryBarriers` must be a valid pointer to an array of `imageMemoryBarrierCount` valid VkImageMemoryBarrier2 structures

## See Also

VK_KHR_synchronization2, VK_VERSION_1_3, VkBufferMemoryBarrier2, VkDependencyFlags, VkImageMemoryBarrier2, VkMemoryBarrier2, VkStructureType, vkCmdPipelineBarrier2, vkCmdPipelineBarrier2KHR, vkCmdSetEvent2, vkCmdSetEvent2KHR, vkCmdWaitEvents2, vkCmdWaitEvents2KHR

## 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-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0