@@ -304,7 +304,7 @@ namespace vks
304
304
}
305
305
306
306
// Use subpass dependencies for attachment layout transitions
307
- std::array<VkSubpassDependency, 3 > dependencies{};
307
+ std::array<VkSubpassDependency, 4 > dependencies{};
308
308
309
309
dependencies[0 ].srcSubpass = VK_SUBPASS_EXTERNAL;
310
310
dependencies[0 ].dstSubpass = 0 ;
@@ -313,6 +313,7 @@ namespace vks
313
313
dependencies[0 ].srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
314
314
dependencies[0 ].dstAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
315
315
316
+
316
317
dependencies[1 ].srcSubpass = VK_SUBPASS_EXTERNAL;
317
318
dependencies[1 ].dstSubpass = 0 ;
318
319
dependencies[1 ].srcStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
@@ -327,14 +328,21 @@ namespace vks
327
328
dependencies[2 ].srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
328
329
dependencies[2 ].dstAccessMask = VK_ACCESS_MEMORY_READ_BIT;
329
330
331
+ dependencies[3 ].srcSubpass = 0 ;
332
+ dependencies[3 ].dstSubpass = VK_SUBPASS_EXTERNAL;
333
+ dependencies[3 ].srcStageMask = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;
334
+ dependencies[3 ].dstStageMask = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
335
+ dependencies[3 ].srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
336
+ dependencies[3 ].dstAccessMask = VK_ACCESS_SHADER_READ_BIT;
337
+
330
338
// Create render pass
331
339
VkRenderPassCreateInfo renderPassInfo = {};
332
340
renderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
333
341
renderPassInfo.pAttachments = attachmentDescriptions.data ();
334
342
renderPassInfo.attachmentCount = static_cast <uint32_t >(attachmentDescriptions.size ());
335
343
renderPassInfo.subpassCount = 1 ;
336
344
renderPassInfo.pSubpasses = &subpass;
337
- renderPassInfo.dependencyCount = 3 ;
345
+ renderPassInfo.dependencyCount = 4 ;
338
346
renderPassInfo.pDependencies = dependencies.data ();
339
347
VK_CHECK_RESULT (vkCreateRenderPass (vulkanDevice->logicalDevice , &renderPassInfo, nullptr , &renderPass));
340
348
0 commit comments