如何在Vulkan中填充数据后阅读VkBuffer的内容?

时间:2016-08-11 16:37:26

标签: vulkan

是否有任何代码段可以执行此操作? 我正在对VkImage进行屏幕外渲染,并希望将其结果转储到png。我创建了一个VkBuffer并执行了vkCmdCopyImageToBuffer,但不确定如何继续前进。

编辑: 我正在用它的VkBufferCreateInfo创建一个VkBuffer。不分配任何vkAllocateMemory,因为我不想将它与任何GPU内存相关联。在此之后我做了vkCmdCopyImageToBuffer。假设数据被复制到VkBuffer,那么如何做一个memcpy。

1 个答案:

答案 0 :(得分:1)

您需要将复制数据的缓冲区的内存映射到void*并从中提取数据。您 将内存分配给缓冲区。您想要使用的内存必须是主机可见的。

如果用于缓冲区的内存堆不一致,那么在触发围栅之后和开始复制数据之前,需要使用vkInvalidateMappedMemoryRanges作为映射范围。