是否可以更改 VkBuffer 的大小?

Măc*_*riu 1 vulkan

如何增大 aVkBuffer的大小,如 中那样VkBufferCreateInfo.size?我应该销毁缓冲区并创建一个新缓冲区,还是可以通过调用绑定更多内存vkBindBufferMemory

rat*_*eak 5

创建缓冲区后,其大小在 vkBuffer 的生命周期内是固定的。一旦内存被绑定到缓冲区,该绑定就会在 vkBuffer 的剩余生命周期内设置。即使释放后备 vkMemory,缓冲区也会变得不可用。

所以是的,您必须创建一个新的 vkBuffer 来更改这些属性中的任何一个。

  • 但是,如果您分配的 VkDeviceMemory 多于所需的数量,则可以销毁原始 VkBuffer 并创建一个新的 VkDeviceMemory,将其绑定到原始 VkDeviceMemory,包括之前绑定到第一个 VkBuffer 的部分。 (2认同)