#include "vktRenderPassMultisampleTests.hpp"
#include "vktRenderPassMultisampleResolveTests.hpp"
+#include "vktRenderPassSampleReadTests.hpp"
#include "vktTestCaseUtil.hpp"
#include "vktTestGroupUtil.hpp"
VkPipelineStageFlags srcStageMask,
VkPipelineStageFlags dstStageMask,
- VkAccessFlags outputMask,
- VkAccessFlags inputMask,
+ VkAccessFlags srcAccessMask,
+ VkAccessFlags dstAccessMask,
VkDependencyFlags flags)
: m_srcPass (srcPass)
, m_srcStageMask (srcStageMask)
, m_dstStageMask (dstStageMask)
- , m_outputMask (outputMask)
- , m_inputMask (inputMask)
+ , m_srcAccessMask (srcAccessMask)
+ , m_dstAccessMask (dstAccessMask)
, m_flags (flags)
{
}
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; }
VkPipelineStageFlags m_srcStageMask;
VkPipelineStageFlags m_dstStageMask;
- VkAccessFlags m_outputMask;
- VkAccessFlags m_inputMask;
+ VkAccessFlags m_srcAccessMask;
+ VkAccessFlags m_dstAccessMask;
VkDependencyFlags m_flags;
};
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;
}
}
dependencyInfo.getSrcStageMask(), // srcStageMask;
dependencyInfo.getDstStageMask(), // destStageMask;
- dependencyInfo.getOutputMask(), // outputMask;
- dependencyInfo.getInputMask(), // inputMask;
+ dependencyInfo.getSrcAccessMask(), // srcAccessMask;
+ dependencyInfo.getDstAccessMask(), // dstAccessMask;
dependencyInfo.getFlags() // dependencyFlags;
};
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]);
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]);
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)
renderpassTests->addChild(createRenderPassMultisampleTests(testCtx));
renderpassTests->addChild(createRenderPassMultisampleResolveTests(testCtx));
+ renderpassTests->addChild(createRenderPassSampleReadTests(testCtx));
return renderpassTests.release();
}