A subpass can have dependencies from multiple sources, and more than one subpass can have a dependency to external.
Cc: <[email protected]> Signed-off-by: Fredrik Höglund <[email protected]> --- src/amd/vulkan/radv_pass.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/amd/vulkan/radv_pass.c b/src/amd/vulkan/radv_pass.c index 7a0dca09496..c41d4c2ba92 100644 --- a/src/amd/vulkan/radv_pass.c +++ b/src/amd/vulkan/radv_pass.c @@ -175,14 +175,14 @@ VkResult radv_CreateRenderPass( uint32_t dst = pCreateInfo->pDependencies[i].dstSubpass; if (dst == VK_SUBPASS_EXTERNAL) { if (pCreateInfo->pDependencies[i].dstStageMask != VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT) - pass->end_barrier.src_stage_mask = pCreateInfo->pDependencies[i].srcStageMask; - pass->end_barrier.src_access_mask = pCreateInfo->pDependencies[i].srcAccessMask; - pass->end_barrier.dst_access_mask = pCreateInfo->pDependencies[i].dstAccessMask; + pass->end_barrier.src_stage_mask |= pCreateInfo->pDependencies[i].srcStageMask; + pass->end_barrier.src_access_mask |= pCreateInfo->pDependencies[i].srcAccessMask; + pass->end_barrier.dst_access_mask |= pCreateInfo->pDependencies[i].dstAccessMask; } else { if (pCreateInfo->pDependencies[i].dstStageMask != VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT) - pass->subpasses[dst].start_barrier.src_stage_mask = pCreateInfo->pDependencies[i].srcStageMask; - pass->subpasses[dst].start_barrier.src_access_mask = pCreateInfo->pDependencies[i].srcAccessMask; - pass->subpasses[dst].start_barrier.dst_access_mask = pCreateInfo->pDependencies[i].dstAccessMask; + pass->subpasses[dst].start_barrier.src_stage_mask |= pCreateInfo->pDependencies[i].srcStageMask; + pass->subpasses[dst].start_barrier.src_access_mask |= pCreateInfo->pDependencies[i].srcAccessMask; + pass->subpasses[dst].start_barrier.dst_access_mask |= pCreateInfo->pDependencies[i].dstAccessMask; } } -- 2.17.0 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
