Vulkan - 如何知道当前图像布局是什么?

Vulkan - How to know what is current image layout?

渲染或其他一些操作后,我想将目标图像读入cpu。 为此,首先需要进行布局转换并将图像的当前布局(旧布局)更改为允许将其数据传输到舞台图像的新布局 - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL。

对于转换操作,我需要同时给出当前布局和新布局。

但是我怎么知道当前的布局是什么? - 每个渲染过程都可能将 finalLayout 设置为不同的值,它也可能会在某些时候完成某些转换。

我认为的一个解决方案是为每个图像存储其当前布局,并在每次渲染过程之后和每次过渡操作之后进行设置。

这是正确的吗?

But how do I know what is the current layout ? - each render pass may set the finalLayout to a different value, it also may that some transitions where done by the time.

是的,但是 创建了那些渲染过程。您发出命令以在该图像上使用这些渲染通道。因此,在命令流中的任何一点,您都知道图像的布局。

Vulkan 希望您清楚自己所做的事情。你如何实现它取决于你。也许您总是将图像保持在 color-attachment 最佳状态。也许你用一些 higher-level 层明确地跟踪它。它可以是任何数量的东西。

但归根结底,这取决于您。能力越大,责任越大。