transition - vulkan - 为什么转换命令需要旧的布局信息
问题描述
为什么需要旧的布局信息来设置图像的新布局。
据我了解,在设置图像布局时,它在特定的内存安排中趋于最佳需求。所以新的布局不依赖于以前的布局。用于传输读取的内存布局 (VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) 始终相同,之前的布局无关紧要,不是吗?
但是即使转换操作需要旧的布局信息(由于某种原因) - GPU 硬件/驱动程序仍然知道电子电路状况(在这种情况下是内存布局),所以我们为什么需要给它一个它知道的信息?
解决方案
用于传输读取的内存布局 (VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) 始终相同,之前的布局无关紧要,不是吗?
如果您想从以前的布局转换它而不丢失数据,它确实如此。否则你确实可以使用oldLayout=VK_IMAGE_LAYOUT_UNDEFINED
.
尽管如此,GPU 硬件/驱动程序仍然知道电子电路状况(在这种情况下是内存布局)
它不是“电子电路”。可能它只是 RAM 中的一堆比特。
反正。Vulkan 的一个范例是它试图不强制执行记忆。具体来说,它通常不会记住不属于vkCreate*
. 我认为有一些函数式编程的影响......
推荐阅读
- haproxy - HAPROXY 外部健康检查不起作用
- symfony - 如何在 Symfony4 中从 db 授权自定义用户
- r - 只保留连续季度的观察结果
- javascript - `this`在类方法内的匿名函数内未定义
- python - 美丽的汤错误地解析 XML
- swift - 如何在 WKWebView 中使用自动填充和钥匙串访问
- ios - 我如何从函数中调用检查值
- spring-webflux - 使用 RouterFunction 处理 WebFlux 中的错误
- android - 匕首自定义范围,如何?
- tree - Angular Material 6.0.1:如何扩展 Angular mat-tree 中的任何节点?