是否有任何代码段可以执行此操作? 我正在对VkImage进行屏幕外渲染,并希望将其结果转储到png。我创建了一个VkBuffer并执行了vkCmdCopyImageToBuffer,但不确定如何继续前进。
编辑: 我正在用它的VkBufferCreateInfo创建一个VkBuffer。不分配任何vkAllocateMemory,因为我不想将它与任何GPU内存相关联。在此之后我做了vkCmdCopyImageToBuffer。假设数据被复制到VkBuffer,那么如何做一个memcpy。
答案 0 :(得分:1)
您需要将复制数据的缓冲区的内存映射到void*
并从中提取数据。您 将内存分配给缓冲区。您想要使用的内存必须是主机可见的。
如果用于缓冲区的内存堆不一致,那么在触发围栅之后和开始复制数据之前,需要使用vkInvalidateMappedMemoryRanges
作为映射范围。