71 vk::SubmitInfo submitInfo{};
74 std::vector<vk::PipelineStageFlags> waitStages;
81 submitInfo.setWaitDstStageMask(waitStages);
89 m_pool->context()->getGraphicsQueue().submit(submitInfo,
94 PipelineStages srcStage, PipelineStages dstStage, AccessFlags srcAccess, AccessFlags dstAccess,
95 ImageAspects aspectMask)
98 auto vkImage =
static_cast<VK_Image*
>(fctImage);
99 auto imageVk = vkImage->
image();
100 auto newLayoutVk = ToVkImageLayout(newLayout);
101 auto oldLayoutVk = ToVkImageLayout(oldLayout);
102 vk::ImageMemoryBarrier
barrier{};
103 barrier.srcQueueFamilyIndex = vk::QueueFamilyIgnored;
104 barrier.dstQueueFamilyIndex = vk::QueueFamilyIgnored;
106 barrier.oldLayout = oldLayoutVk;
107 barrier.newLayout = newLayoutVk;
108 barrier.srcAccessMask = ToVkAccessFlags(srcAccess);
109 barrier.dstAccessMask = ToVkAccessFlags(dstAccess);
110 barrier.subresourceRange.aspectMask = ToVkImageAspects(aspectMask);
111 barrier.subresourceRange.baseMipLevel = 0;
112 barrier.subresourceRange.levelCount = 1;
113 barrier.subresourceRange.baseArrayLayer = 0;
114 barrier.subresourceRange.layerCount = 1;
117 std::vector<vk::ImageMemoryBarrier> barriers{
barrier};
118 m_commandBuffer.pipelineBarrier(srcStageMask, dstStageMask, vk::DependencyFlags(),
119 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