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)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 15 Nov 2018 08:37:36 +0000 (03:37 -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

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

index 4b482c8..48b2a51 100644 (file)
@@ -6011,6 +6011,14 @@ void addFormatTests (tcu::TestCaseGroup* group, const TestConfigExternal testCon
                                                                                                                                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 =
@@ -6247,14 +6255,6 @@ void addFormatTests (tcu::TestCaseGroup* group, const TestConfigExternal testCon
                                                                                                                                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 =
@@ -6323,6 +6323,14 @@ void addFormatTests (tcu::TestCaseGroup* group, const TestConfigExternal testCon
                                                                                                                                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)
                                                                {
@@ -6476,10 +6484,10 @@ void addFormatTests (tcu::TestCaseGroup* group, const TestConfigExternal testCon
                                                                                                                                        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));
 
@@ -6632,10 +6640,10 @@ void addFormatTests (tcu::TestCaseGroup* group, const TestConfigExternal testCon
                                                                                                                                        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));