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

aud*_*i02 2 layout transition image vulkan

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

对于过渡操作,我需要给出当前布局和新布局。

但我怎么知道当前的布局是什么?- 每个渲染通道可能会将 FinalLayout 设置为不同的值,也可能会在此时完成一些转换。

我认为的一个解决方案是存储每个图像的当前布局,并在每个渲染通道和每个转换操作之后设置它。

它是否正确?

Nic*_*las 7

但我怎么知道当前的布局是什么?- 每个渲染通道可能会将 FinalLayout 设置为不同的值,也可能会在此时完成一些转换。

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

Vulkan 希望您了解自己所做的事情。如何实现这一目标取决于您。也许您总是让图像保持最佳的色彩附着效果。也许您通过一些更高级别的层明确地跟踪它。它可以是任意数量的事情。

但最终,这取决于你。拥有权利的同时也被赋予了重大的责任。