Fix missing self dependency in renderpass tests
authorLeif-Julian Ovrelid <leif-julian.ovrelid@arm.com>
Thu, 8 Nov 2018 09:16:10 +0000 (10:16 +0100)
committerChris Forbes <chrisforbes@google.com>
Fri, 18 Jan 2019 17:05:14 +0000 (12:05 -0500)
The dEQP-VK.renderpass.suballocation.formats and
dEQP-VK.renderpass.dedicated_allocation.formats tests were missing self
dependencies in some cases where they read then write one attachment
in one subpass. In cases with overlapping rendering this would give a
read-write-then-read-write situation, which neads a self dependency to
work reliably. Some of the tests were missing the self dependency, some
of them had the color attachment bits set when depending on depth, and
one case had a self dependency where it should not.
This patch adds a self dependency to two test cases that need it,
removes self dependency from a case that does not need it, and fixes
the depth tests to have the correct bits set.

Affects:

dEQP-VK.renderpass.suballocation.formats.*.input.*
dEQP-VK.renderpass.dedicated_allocation.formats.*.input.*
dEQP-VK.renderpass2.suballocation.formats.*.input.*
dEQP-VK.renderpass2.dedicated_allocation.formats.*.input.*

Components: Vulkan

VK-GL-CTS Issue: 1454

Change-Id: I4a9bec3ef6b088ab3a50d7f658867076f68788b9
(cherry picked from commit f659f8c9ad39c179a79a92ee3b66cb83e1dd52ed)

external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp

index c3a7aec..6f34c57 100644 (file)
@@ -5777,6 +5777,14 @@ void addFormatTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
                                                                                                                                vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
                                                                                                                                vk::VK_DEPENDENCY_BY_REGION_BIT));
 
+                                                               deps.push_back(SubpassDependency(1, 1,
+                                                                                                                               vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                                                                                                                               vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+
+                                                                                                                               vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                               vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+                                                                                                                               vk::VK_DEPENDENCY_BY_REGION_BIT));
+
                                                                if (useInputAspect)
                                                                {
                                                                        const VkInputAttachmentAspectReference inputAspect =
@@ -5962,14 +5970,6 @@ void addFormatTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
                                                                                                                                vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
                                                                                                                                0u));
 
-                                                               deps.push_back(SubpassDependency(1, 1,
-                                                                                                                               vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
-                                                                                                                               vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
-
-                                                                                                                               vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
-                                                                                                                               vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
-                                                                                                                               vk::VK_DEPENDENCY_BY_REGION_BIT));
-
                                                                if (useInputAspect)
                                                                {
                                                                        const VkInputAttachmentAspectReference inputAspect =
@@ -6027,6 +6027,14 @@ void addFormatTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
                                                                                                                                vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
                                                                                                                                vk::VK_DEPENDENCY_BY_REGION_BIT));
 
+                                                               deps.push_back(SubpassDependency(1, 1,
+                                                                                                                               vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+                                                                                                                               vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+
+                                                                                                                               vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+                                                                                                                               vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
+                                                                                                                               vk::VK_DEPENDENCY_BY_REGION_BIT));
+
 
                                                                if (useInputAspect)
                                                                {
@@ -6158,10 +6166,10 @@ void addFormatTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
                                                                                                                                        vk::VK_DEPENDENCY_BY_REGION_BIT));
 
                                                                        deps.push_back(SubpassDependency(1, 1,
-                                                                                                                                       vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                                                                                                                                       vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
                                                                                                                                        vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
 
-                                                                                                                                       vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                                       vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
                                                                                                                                        vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
                                                                                                                                        vk::VK_DEPENDENCY_BY_REGION_BIT));
 
@@ -6293,10 +6301,10 @@ void addFormatTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
                                                                                                                                        vk::VK_DEPENDENCY_BY_REGION_BIT));
 
                                                                        deps.push_back(SubpassDependency(1, 1,
-                                                                                                                                       vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                                                                                                                                       vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
                                                                                                                                        vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
 
-                                                                                                                                       vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                                                                                                                                       vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
                                                                                                                                        vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
                                                                                                                                        vk::VK_DEPENDENCY_BY_REGION_BIT));