ph3rin
ph3rin

Reputation: 4848

What exactly is VK_SUBPASS_EXTERNAL?

I was recently learning the Vulkan API but just cannot understand what VK_SUBPASS_EXTERNAL (assigned to VkSubpassDependency::srcSubpass or VkSubpassDependency::dstSubpass) means. The official documentation states: "If srcSubpass is equal to VK_SUBPASS_EXTERNAL, the first synchronization scope includes commands that occur earlier in submission order than the vkCmdBeginRenderPass used to begin the render pass instance."

Does it imply that a subpass can depend on another subpass residing in other render passes? Or anything else?

Upvotes: 8

Views: 2904

Answers (1)

Ekzuzy
Ekzuzy

Reputation: 3437

VK_SUBPASS_EXTERNAL means anything outside of a given render pass scope. When used for srcSubpass it specifies anything that happened before the render pass. And when used for dstSubpass it specifies anything that happens after the render pass.

Does it imply that a subpass can depend on another subpass residing in other render passes?

It means that synchronization mechanisms need to include operations that happen before or after the render pass. It may be another render pass, but it also may be some other operations, not necessarily render pass-related.

Upvotes: 10

Related Questions