是否存在与OpenGL的像素缓冲区对象相当的Vulkan?

Ale*_*wer 3 opengl vulkan

我做了一些谷歌搜索,看起来Vulkan没有Pixel Buffer Object.在Vulkan API中是否有类似的东西?

Nic*_*las 9

OpenGL也没有"像素缓冲区对象".OpenGL有的是内存,也就是:缓冲对象.缓冲对象的一个​​用途是作为像素传输操作的源/目的地; 当与缓冲区对象一起使用时,它们可以异步执行.虽然这样做通常被称为"像素缓冲对象",但它并不是一个特殊的对象.它只是使用OpenGL分配的内存来执行图像数据到缓冲对象的异步复制.

OpenGL需要一个特殊的系统,因为它本身就是一个同步API.相比之下,Vulkan中几乎没有任何东西是同步的.因此,Vulkan不需要特殊的系统来完成它.

vkCmdCopyImageToBuffer是一个Vulkan命令,因为它始于vkCmd.因此,它不会立即执行; 这些命令存储在Vulkan命令缓冲区中,由GPU异步执行.

Vulkan没有用于执行异步像素副本的特殊系统,因为Vulkan操作默认是异步的.与OpenGL不同,它不会试图隐藏这一点.