Fix end of Renderpass synchronization hazards
authorJeremy Gebben <jeremyg@lunarg.com>
Wed, 9 Dec 2020 20:38:13 +0000 (13:38 -0700)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 18 Dec 2020 08:09:49 +0000 (08:09 +0000)
commitcca2dbb6889271568617c309a3c7f3a336f98cff
tree016acb64f7504a66c0381bd31edb528e4bea1c1b
parent97a59a2af9698f55ae2b73a058efcd8cf232795f
Fix end of Renderpass synchronization hazards

The implicit subpass dependency at the end of a renderpass has
dstStageMask set to VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, which
prevents forming a dependency chain with specific pipeline stages.

To synchronize commands with vkCmdEndRenderPass, use either an
explict external subpass dependency or a pipeline barrier with
srcStageMask set to VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.

VK-GL-CTS Issue: 2695

Affected tests:

dEQP-VK.pipeline.multisample.sample_locations_ext.*
dEQP-VK.renderpass.suballocation.attachment_sparse_filling.*
dEQP-VK.renderpass.suballocation.subpass_dependencies.*
dEQP-VK.renderpass2.suballocation.attachment_sparse_filling.*
dEQP-VK.renderpass2.suballocation.subpass_dependencies.*

Components: Vulkan

Change-Id: I1b33c128dfdc54705f953f044db9acf1ff6e63e9
external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleSampleLocationsExtTests.cpp
external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp
external/vulkancts/modules/vulkan/renderpass/vktRenderPassUnusedAttachmentSparseFillingTests.cpp