我看到建议将初始布局设置为VK_IMAGE_LAYOUT_UNDEFINED,因为当它用作下一个渲染过程的目标时,我们真的不在乎它的内容。
但是,如果我知道要附加图像作为颜色目标,将它设置为VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL更好吗?
答案 0 :(得分:3)
渲染过程附件的初始布局是图像在渲染过程开始之前 中的布局。您并不是在说“将图像放入此布局”;您是说“图像已经在此布局中”。因此,除非该图像已经在颜色附件布局中,否则这不是设置为初始布局的适当布局。如果将布局设置为“未定义”,则基本上是在说“我不在乎”。
每个子通道指定其使用的附件将在该子通道中放入的布局。因此,当使用此附件的第一个子通道开始时,它将执行从初始布局到子通道的布局的布局转换。
如果渲染过程清除了图像,则图像的初始布局无关紧要。清除操作将覆盖纹理的数据(请注意,不会进行任何实际的写入操作),并且当使用附件的第一个子通道开始时,写入的数据将位于该子通道的布局中。
它应该比在初始布局和第一个子通道布局中使用相同的布局要慢。只要您要清除图像。