radv: accumulate all ingoing external dependencies to the first subpass
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 29 Jan 2019 21:19:00 +0000 (22:19 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 4 Feb 2019 12:19:14 +0000 (13:19 +0100)
In case two or more subpasses declare ingoing external dependencies.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_pass.c

index 0a37392..08ea245 100644 (file)
@@ -42,6 +42,10 @@ radv_render_pass_add_subpass_dep(struct radv_render_pass *pass,
        if (src == dst)
                return;
 
+       /* Accumulate all ingoing external dependencies to the first subpass. */
+       if (src == VK_SUBPASS_EXTERNAL)
+               dst = 0;
+
        if (dst == VK_SUBPASS_EXTERNAL) {
                pass->end_barrier.src_stage_mask |= dep->srcStageMask;
                pass->end_barrier.src_access_mask |= dep->srcAccessMask;