vulkan - 为什么转换命令需要旧的布局信息

vulkan - why a transition command needs an old layout information

为什么需要旧的布局信息来设置图像的新布局。

据我了解,在设置图像布局时,它在特定的内存排列中趋于最佳需要。所以新布局不依赖于以前的布局。用于传输读取的内存布局 (VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) 始终相同,之前的布局无关紧要,不是吗?

但是即使转换操作需要旧的布局信息(由于某些原因)- GPU hardware/driver 仍然知道电子电路状况(在本例中为内存布局),那么我们为什么需要给它一个它知道的信息?

A memory layout for transfer reading (VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) is always the same and it doesn't matter what layout was before, isn't it?

确实如此,如果你想在不丢失数据的情况下从以前的布局转换它。否则你确实可以使用 oldLayout=VK_IMAGE_LAYOUT_UNDEFINED.

still, GPU hardware/driver knows the electronics circuits condition (memory layout in this case)

不是“电子电路”。可能它只是 RAM 中的一大堆位。

总之。 Vulkan 的一种范例是它尽量不强制记忆。具体来说,它通常不会记住不属于 vkCreate* 的状态。我认为有一些函数式编程的影响...