Fix stageMask (0x1) usage in renderpass, image and texture tests
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / modules / vulkan / renderpass / vktRenderPassTests.cpp
index 0436ded..6cf4906 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "vktRenderPassMultisampleTests.hpp"
 #include "vktRenderPassMultisampleResolveTests.hpp"
+#include "vktRenderPassSampleReadTests.hpp"
 
 #include "vktTestCaseUtil.hpp"
 #include "vktTestGroupUtil.hpp"
@@ -566,8 +567,8 @@ public:
                                                                                                 VkPipelineStageFlags   srcStageMask,
                                                                                                 VkPipelineStageFlags   dstStageMask,
 
-                                                                                                VkAccessFlags                  outputMask,
-                                                                                                VkAccessFlags                  inputMask,
+                                                                                                VkAccessFlags                  srcAccessMask,
+                                                                                                VkAccessFlags                  dstAccessMask,
 
                                                                                                 VkDependencyFlags              flags)
                : m_srcPass                     (srcPass)
@@ -576,8 +577,8 @@ public:
                , m_srcStageMask        (srcStageMask)
                , m_dstStageMask        (dstStageMask)
 
-               , m_outputMask          (outputMask)
-               , m_inputMask           (inputMask)
+               , m_srcAccessMask       (srcAccessMask)
+               , m_dstAccessMask       (dstAccessMask)
                , m_flags                       (flags)
        {
        }
@@ -588,8 +589,8 @@ public:
        VkPipelineStageFlags    getSrcStageMask         (void) const { return m_srcStageMask;   }
        VkPipelineStageFlags    getDstStageMask         (void) const { return m_dstStageMask;   }
 
-       VkAccessFlags                   getOutputMask           (void) const { return m_outputMask;             }
-       VkAccessFlags                   getInputMask            (void) const { return m_inputMask;              }
+       VkAccessFlags                   getSrcAccessMask        (void) const { return m_srcAccessMask;  }
+       VkAccessFlags                   getDstAccessMask        (void) const { return m_dstAccessMask;  }
 
        VkDependencyFlags               getFlags                        (void) const { return m_flags;          }
 
@@ -600,8 +601,8 @@ private:
        VkPipelineStageFlags    m_srcStageMask;
        VkPipelineStageFlags    m_dstStageMask;
 
-       VkAccessFlags                   m_outputMask;
-       VkAccessFlags                   m_inputMask;
+       VkAccessFlags                   m_srcAccessMask;
+       VkAccessFlags                   m_dstAccessMask;
        VkDependencyFlags               m_flags;
 };
 
@@ -892,8 +893,8 @@ void logRenderPassInfo (TestLog&                    log,
                        log << TestLog::Message << "Source Stage Mask: " << dep.getSrcStageMask() << TestLog::EndMessage;
                        log << TestLog::Message << "Destination Stage Mask: " << dep.getDstStageMask() << TestLog::EndMessage;
 
-                       log << TestLog::Message << "Input Mask: " << dep.getInputMask() << TestLog::EndMessage;
-                       log << TestLog::Message << "Output Mask: " << dep.getOutputMask() << TestLog::EndMessage;
+                       log << TestLog::Message << "Input Mask: " << dep.getDstAccessMask() << TestLog::EndMessage;
+                       log << TestLog::Message << "Output Mask: " << dep.getSrcAccessMask() << TestLog::EndMessage;
                        log << TestLog::Message << "Dependency Flags: " << getDependencyFlagsStr(dep.getFlags()) << TestLog::EndMessage;
                }
        }
@@ -1133,8 +1134,8 @@ VkSubpassDependency createSubpassDependency       (const SubpassDependency& dependency
                dependencyInfo.getSrcStageMask(),       // srcStageMask;
                dependencyInfo.getDstStageMask(),       // destStageMask;
 
-               dependencyInfo.getOutputMask(),         // outputMask;
-               dependencyInfo.getInputMask(),          // inputMask;
+               dependencyInfo.getSrcAccessMask(),      // srcAccessMask;
+               dependencyInfo.getDstAccessMask(),      // dstAccessMask;
 
                dependencyInfo.getFlags()                       // dependencyFlags;
        };
@@ -2402,7 +2403,7 @@ void pushImageInitializationCommands (const DeviceInterface&                                                              vk,
 
                if (!initializeLayouts.empty())
                        vk.cmdPipelineBarrier(commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT,
-                                                                 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0,
+                                                                 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, (VkDependencyFlags)0,
                                                                  0, (const VkMemoryBarrier*)DE_NULL,
                                                                  0, (const VkBufferMemoryBarrier*)DE_NULL,
                                                                  (deUint32)initializeLayouts.size(), &initializeLayouts[0]);
@@ -2488,7 +2489,7 @@ void pushImageInitializationCommands (const DeviceInterface&                                                              vk,
 
                if (!renderPassLayouts.empty())
                        vk.cmdPipelineBarrier(commandBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT,
-                                                                 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, (VkDependencyFlags)0,
+                                                                 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, (VkDependencyFlags)0,
                                                                  0, (const VkMemoryBarrier*)DE_NULL,
                                                                  0, (const VkBufferMemoryBarrier*)DE_NULL,
                                                                  (deUint32)renderPassLayouts.size(), &renderPassLayouts[0]);
@@ -5568,6 +5569,21 @@ void addSimpleTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
 
                addFunctionCaseWithPrograms<TestConfig>(group, "color_depth_stencil", "Color, depth and stencil attachment case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239, allocationKind));
        }
+
+       // no attachments
+       {
+               const RenderPass        renderPass      (vector<Attachment>(),
+                                                                                vector<Subpass>(1, Subpass(VK_PIPELINE_BIND_POINT_GRAPHICS,
+                                                                                                                                       0u,
+                                                                                                                                       vector<AttachmentReference>(),
+                                                                                                                                       vector<AttachmentReference>(),
+                                                                                                                                       vector<AttachmentReference>(),
+                                                                                                                                       AttachmentReference(VK_ATTACHMENT_UNUSED, VK_IMAGE_LAYOUT_GENERAL),
+                                                                                                                                       vector<deUint32>())),
+                                                                               vector<SubpassDependency>());
+
+               addFunctionCaseWithPrograms<TestConfig>(group, "no_attachments", "No attachments case.", createTestShaders, renderPassTest, TestConfig(renderPass, TestConfig::RENDERTYPES_DRAW, TestConfig::COMMANDBUFFERTYPES_INLINE, TestConfig::IMAGEMEMORY_STRICT, targetSize, renderPos, renderSize, 90239, allocationKind));
+       }
 }
 
 std::string formatToName (VkFormat format)
@@ -6382,6 +6398,7 @@ tcu::TestCaseGroup* createRenderPassTests (tcu::TestContext& testCtx)
 
        renderpassTests->addChild(createRenderPassMultisampleTests(testCtx));
        renderpassTests->addChild(createRenderPassMultisampleResolveTests(testCtx));
+       renderpassTests->addChild(createRenderPassSampleReadTests(testCtx));
 
        return renderpassTests.release();
 }