Fix multiview dependency access mask for depth stencil attachments
authorVarvara Poskonina <varvara.poskonina@arm.com>
Fri, 19 Jun 2020 09:02:50 +0000 (11:02 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 26 Jun 2020 10:38:53 +0000 (06:38 -0400)
Vulkan spec states that in case if depth stencil attachment storeOp
and/or stencilStoreOp is set to VK_ATTACHMENT_STORE_OP_STORE in its
description, corresponding access type should be write permissive.

This change sets subpass depencency source access mask to
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT in case if DS
attachment is present.

Components: Vulkan

Affects: dEQP-VK.multiview.*

VK-GL-CTS Issue: 2428

Change-Id: Ie34a6d93a8bdfad163150483b2fb8feb780ce0db

external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderUtil.cpp

index 1277ef8..56e6e73 100644 (file)
@@ -346,7 +346,7 @@ Move<VkRenderPass> makeRenderPass (const DeviceInterface&           vk,
                                                                                                                                                        ? VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
                                                                                                                                                        : VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
        const VkAccessFlags                                                     srcAccessMask                           = dsAttacmentAvailable
-                                                                                                                                                       ? VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
+                                                                                                                                                       ? VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
                                                                                                                                                        : VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
        vector <SubpassDep>                                                     subpassDependencies;
        for(deUint32 subpassNdx = 0u; subpassNdx < subpassCount; ++subpassNdx)