Add FrameGraph (WIP)

This commit is contained in:
Jérôme Leclercq
2021-05-02 13:58:35 +02:00
parent 377129586b
commit 55c2dd8485
29 changed files with 1749 additions and 36 deletions

View File

@@ -295,6 +295,28 @@ namespace Nz
return *m_pool;
}
inline void CommandBuffer::ImageBarrier(VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkImageLayout oldLayout, VkImageLayout newLayout, VkImage image, VkImageAspectFlags aspectFlags)
{
VkImageMemoryBarrier imageBarrier = {
VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
nullptr,
srcAccessMask,
dstAccessMask,
oldLayout,
newLayout,
VK_QUEUE_FAMILY_IGNORED,
VK_QUEUE_FAMILY_IGNORED,
image,
{
aspectFlags,
0, 1,
0, 1
}
};
return PipelineBarrier(srcStageMask, dstStageMask, dependencyFlags, imageBarrier);
}
inline void CommandBuffer::InsertDebugLabel(const char* label)
{
return InsertDebugLabel(label, Nz::Color(0, 0, 0, 0));
@@ -333,6 +355,11 @@ namespace Nz
return PipelineBarrier(srcStageMask, dstStageMask, 0U, memoryBarrier);
}
inline void CommandBuffer::NextSubpass(VkSubpassContents contents)
{
return m_pool->GetDevice()->vkCmdNextSubpass(m_handle, contents);
}
inline void CommandBuffer::PipelineBarrier(VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, const VkImageMemoryBarrier& imageMemoryBarrier)
{
return PipelineBarrier(srcStageMask, dstStageMask, dependencyFlags, 0, nullptr, 0, nullptr, 1, &imageMemoryBarrier);