diff options
| author | Tony-LunarG <tony@lunarg.com> | 2019-06-13 15:32:05 -0600 |
|---|---|---|
| committer | Tony Barbour <tony@lunarg.com> | 2019-06-17 13:08:41 -0600 |
| commit | 495604b6aa704fe961ef59d69e69bb39c1aaa9ee (patch) | |
| tree | 912910730a72f8c1992f6439244804fe7040613f /cube/cube.c | |
| parent | 122ac06d314c391d12d05f96aa8420010b123da2 (diff) | |
| download | usermoji-495604b6aa704fe961ef59d69e69bb39c1aaa9ee.tar.xz | |
cube: Add subpass dependencies
Shared depth buffer and image layout transition both
need to be accounted for
Change-Id: Id26bc47798c58e4435a5585def3161105b7fffd1
Diffstat (limited to 'cube/cube.c')
| -rw-r--r-- | cube/cube.c | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/cube/cube.c b/cube/cube.c index 1d210342..644f3df4 100644 --- a/cube/cube.c +++ b/cube/cube.c @@ -1,7 +1,7 @@ /* - * Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. + * Copyright (c) 2015-2019 The Khronos Group Inc. + * Copyright (c) 2015-2019 Valve Corporation + * Copyright (c) 2015-2019 LunarG, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -1892,6 +1892,32 @@ static void demo_prepare_render_pass(struct demo *demo) { .preserveAttachmentCount = 0, .pPreserveAttachments = NULL, }; + + VkSubpassDependency attachmentDependencies[2] = { + [0] = + { + // Depth buffer is shared between swapchain images + .srcSubpass = VK_SUBPASS_EXTERNAL, + .dstSubpass = 0, + .srcStageMask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, + .dstStageMask = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, + .srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, + .dstAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, + .dependencyFlags = 0, + }, + [1] = + { + // Image Layout Transition + .srcSubpass = VK_SUBPASS_EXTERNAL, + .dstSubpass = 0, + .srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + .dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + .srcAccessMask = 0, + .dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, + .dependencyFlags = 0, + }, + }; + const VkRenderPassCreateInfo rp_info = { .sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, .pNext = NULL, @@ -1900,8 +1926,8 @@ static void demo_prepare_render_pass(struct demo *demo) { .pAttachments = attachments, .subpassCount = 1, .pSubpasses = &subpass, - .dependencyCount = 0, - .pDependencies = NULL, + .dependencyCount = 2, + .pDependencies = attachmentDependencies, }; VkResult U_ASSERT_ONLY err; |
