// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ VkSubpassDependency(3) ====================== Name ---- VkSubpassDependency - Structure specifying a subpass dependency C Specification --------------- // refBegin VkSubpassDependency - Structure specifying a subpass dependency The sname:VkSubpassDependency structure is defined as: include::../api/structs/VkSubpassDependency.txt[] Members ------- * pname:srcSubpass and pname:dstSubpass are the subpass indices of the producer and consumer subpasses, respectively. pname:srcSubpass and pname:dstSubpass can: also have the special value ename:VK_SUBPASS_EXTERNAL. The source subpass must: always be a lower numbered subpass than the destination subpass (excluding external subpasses and <>), so that the order of subpass descriptions is a valid execution ordering, avoiding cycles in the dependency graph. * pname:srcStageMask, pname:dstStageMask, pname:srcAccessMask, pname:dstAccessMask, and pname:dependencyFlags describe an <> between subpasses. The bits that can: be included in pname:dependencyFlags are: + -- // refBegin VkDependencyFlagBits - Bitmask specifying dependencies between subpasses include::../api/enums/VkDependencyFlagBits.txt[] -- ** If pname:dependencyFlags contains ename:VK_DEPENDENCY_BY_REGION_BIT, then the dependency is by-region as defined in <>. Description ----------- Each subpass dependency defines an execution and memory dependency between two sets of commands, with the second set depending on the first set. When pname:srcSubpass does not equal pname:dstSubpass then the first set of commands is: * All commands in the subpass indicated by pname:srcSubpass, if pname:srcSubpass is not ename:VK_SUBPASS_EXTERNAL. * All commands before the render pass instance, if pname:srcSubpass is ename:VK_SUBPASS_EXTERNAL. While the corresponding second set of commands is: * All commands in the subpass indicated by pname:dstSubpass, if pname:dstSubpass is not ename:VK_SUBPASS_EXTERNAL. * All commands after the render pass instance, if pname:dstSubpass is ename:VK_SUBPASS_EXTERNAL. When pname:srcSubpass equals pname:dstSubpass then the first set consists of commands in the subpass before a call to flink:vkCmdPipelineBarrier and the second set consists of commands in the subpass following that same call as described in the <> section. The pname:srcStageMask, pname:dstStageMask, pname:srcAccessMask, pname:dstAccessMask, and pname:dependencyFlags parameters of the dependency are interpreted the same way as for other dependencies, as described in <>. include::../validity/structs/VkSubpassDependency.txt[] See Also -------- elink:VkAccessFlags, elink:VkDependencyFlags, elink:VkPipelineStageFlags, slink:VkRenderPassCreateInfo Document Notes -------------- For more information, see the Vulkan Specification at URL https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkSubpassDependency This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification,not directly. include::footer.txt[]