summaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan
diff options
context:
space:
mode:
authorSamuel Pitoiset <[email protected]>2019-01-29 22:19:00 +0100
committerSamuel Pitoiset <[email protected]>2019-02-04 13:19:14 +0100
commitb482c030f5ca3ac6631034a4ca7551f8f14dd2d5 (patch)
tree5712989dbf2bd0604a29b985cdad69461fd9b9c4 /src/amd/vulkan
parenteaab35e5e328eec06bc5012624ee3585aa209c29 (diff)
radv: accumulate all ingoing external dependencies to the first subpass
In case two or more subpasses declare ingoing external dependencies. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/vulkan')
-rw-r--r--src/amd/vulkan/radv_pass.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/amd/vulkan/radv_pass.c b/src/amd/vulkan/radv_pass.c
index 0a37392322f..08ea2454750 100644
--- a/src/amd/vulkan/radv_pass.c
+++ b/src/amd/vulkan/radv_pass.c
@@ -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;