Memory management vkCmdCopyImage是否自动转换平铺属性?

Memory management vkCmdCopyImage是否自动转换平铺属性?,memory-management,vulkan,Memory Management,Vulkan,我已经阅读了vkCmdCopyImage的规范,我发现只有元素大小才需要在两种方式中匹配。我想知道我们是否可以将具有最佳平铺(src)的图像复制到线性平铺(dst)。dst的那个会有线性平铺并且可用吗?假设两个图像具有相同的格式 提前感谢。vkCmdCopyImage复制texel(而不是字节)。平铺是一种寻址问题,它应该被texel的抽象所隐藏。 此外,有效使用不禁止使用。 所以,是的;是的 我们进行了长时间的讨论 此外,Vulkan规范在上是开放的。您可以直接作为PR发布问题或提出更改。 如

我已经阅读了
vkCmdCopyImage
的规范,我发现只有元素大小才需要在两种方式中匹配。我想知道我们是否可以将具有最佳平铺(src)的图像复制到线性平铺(dst)。dst的那个会有线性平铺并且可用吗?假设两个图像具有相同的格式


提前感谢。

vkCmdCopyImage
复制texel(而不是字节)。平铺是一种寻址问题,它应该被texel的抽象所隐藏。
此外,有效使用不禁止使用。
所以,是的;是的

我们进行了长时间的讨论

此外,Vulkan规范在上是开放的。您可以直接作为PR发布问题或提出更改。

如果您直接阅读规范,尽管您尽了最大努力,但问题仍然不清楚,那么可能指定得不够好,其他人也会同样感到困惑(并开始制作有缺陷的驱动程序和应用程序)。直接与作者交流对每个人都有好处。

是的,您可以将数据从具有最佳平铺的图像复制到具有线性平铺的图像,反之亦然。自动完成适当的平铺转换。这是将数据上传到(或从中复制数据)最佳平铺图像的方法之一,因为这些图像无法直接映射(好吧,它们可以映射,但我们不知道它们的内容是如何布局的,所以映射它们几乎没有意义,如果根本没有意义的话)。当我们通过线性平铺资源传输数据时,我们称之为“暂存资源”。对于这些,我们不仅可以使用图像,还可以使用缓冲区。许多人(包括我)声称使用缓冲区更可取,因为它们总是线性的,不需要布局转换,而且更容易创建(创建信息的参数更少)
vkCmdCopyImageToBuffer
(或者反过来)为您执行所有必要的转换(尽管没有格式转换)

英特尔有一个教程和另一个教程,其中使用了暂存缓冲区。该机制与线性平铺图像相同,并以两种方式工作