63 vk::SubmitInfo submitInfo{};
66 std::vector<vk::PipelineStageFlags> waitStages;
73 submitInfo.setWaitDstStageMask(waitStages);
81 m_pool->context()->getGraphicsQueue().submit(submitInfo,
86 PipelineStages srcStage, PipelineStages dstStage, AccessFlags srcAccess, AccessFlags dstAccess,
87 ImageAspects aspectMask)
90 auto vkImage =
static_cast<VK_Image*
>(fctImage);
91 auto imageVk = vkImage->
image();
92 auto newLayoutVk = ToVkImageLayout(newLayout);
93 auto oldLayoutVk = ToVkImageLayout(oldLayout);
94 vk::ImageMemoryBarrier
barrier{};
95 barrier.srcQueueFamilyIndex = vk::QueueFamilyIgnored;
96 barrier.dstQueueFamilyIndex = vk::QueueFamilyIgnored;
98 barrier.oldLayout = oldLayoutVk;
99 barrier.newLayout = newLayoutVk;
100 barrier.srcAccessMask = ToVkAccessFlags(srcAccess);
101 barrier.dstAccessMask = ToVkAccessFlags(dstAccess);
102 barrier.subresourceRange.aspectMask = ToVkImageAspects(aspectMask);
103 barrier.subresourceRange.baseMipLevel = 0;
104 barrier.subresourceRange.levelCount = 1;
105 barrier.subresourceRange.baseArrayLayer = 0;
106 barrier.subresourceRange.layerCount = 1;
109 std::vector<vk::ImageMemoryBarrier> barriers{
barrier};
110 m_commandBuffer.pipelineBarrier(srcStageMask, dstStageMask, vk::DependencyFlags(),
111 0,
nullptr, 0,
nullptr, 1, barriers.data());
void barrier(FCT::Image *image, ImageLayout oldLayout, ImageLayout newLayout, PipelineStages srcStage, PipelineStages dstStage, AccessFlags srcAccess, AccessFlags dstAccess, ImageAspects aspectMask) override