首页 > 解决方案 > vulkan - 为什么转换命令需要旧的布局信息

问题描述

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

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

但是即使转换操作需要旧的布局信息(由于某种原因) - GPU 硬件/驱动程序仍然知道电子电路状况(在这种情况下是内存布局),所以我们为什么需要给它一个它知道的信息?

标签: transitionvulkan

解决方案


用于传输读取的内存布局 (VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) 始终相同,之前的布局无关紧要,不是吗?

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

尽管如此,GPU 硬件/驱动程序仍然知道电子电路状况(在这种情况下是内存布局)

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

反正。Vulkan 的一个范例是它试图不强制执行记忆。具体来说,它通常不会记住不属于vkCreate*. 我认为有一些函数式编程的影响......


推荐阅读