| // 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 |