// Copyright 2019-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

// Common Valid Usage
// Common to vkCmdPipelineBarrier and vkCmdWaitEvents
  * [[VUID-{refpage}-srcAccessMask-02815]]
    The pname:srcAccessMask member of each element of pname:pMemoryBarriers
    must: only include access flags that are supported by one or more of the
    pipeline stages in pname:srcStageMask, as specified in the
    <<synchronization-access-types-supported, table of supported access
    types>>
  * [[VUID-{refpage}-dstAccessMask-02816]]
    The pname:dstAccessMask member of each element of pname:pMemoryBarriers
    must: only include access flags that are supported by one or more of the
    pipeline stages in pname:dstStageMask, as specified in the
    <<synchronization-access-types-supported, table of supported access
    types>>
  * [[VUID-{refpage}-pBufferMemoryBarriers-02817]]
    For any element of pname:pBufferMemoryBarriers, if its
    pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex members are
    equal, or if its pname:srcQueueFamilyIndex is the queue family index
    that was used to create the command pool that pname:commandBuffer was
    allocated from, then its pname:srcAccessMask member must: only contain
    access flags that are supported by one or more of the pipeline stages in
    pname:srcStageMask, as specified in the
    <<synchronization-access-types-supported, table of supported access
    types>>
  * [[VUID-{refpage}-pBufferMemoryBarriers-02818]]
    For any element of pname:pBufferMemoryBarriers, if its
    pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex members are
    equal, or if its pname:dstQueueFamilyIndex is the queue family index
    that was used to create the command pool that pname:commandBuffer was
    allocated from, then its pname:dstAccessMask member must: only contain
    access flags that are supported by one or more of the pipeline stages in
    pname:dstStageMask, as specified in the
    <<synchronization-access-types-supported, table of supported access
    types>>
  * [[VUID-{refpage}-pImageMemoryBarriers-02819]]
    For any element of pname:pImageMemoryBarriers, if its
    pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex members are
    equal, or if its pname:srcQueueFamilyIndex is the queue family index
    that was used to create the command pool that pname:commandBuffer was
    allocated from, then its pname:srcAccessMask member must: only contain
    access flags that are supported by one or more of the pipeline stages in
    pname:srcStageMask, as specified in the
    <<synchronization-access-types-supported, table of supported access
    types>>
  * [[VUID-{refpage}-pImageMemoryBarriers-02820]]
    For any element of pname:pImageMemoryBarriers, if its
    pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex members are
    equal, or if its pname:dstQueueFamilyIndex is the queue family index
    that was used to create the command pool that pname:commandBuffer was
    allocated from, then its pname:dstAccessMask member must: only contain
    access flags that are supported by one or more of the pipeline stages in
    pname:dstStageMask, as specified in the
    <<synchronization-access-types-supported, table of supported access
    types>>
// Common Valid Usage
