如何在多个VkDevice之间共享缓冲区(或图像)?

时间:2018-04-19 12:13:53

标签: vulkan

我有一个VkInstance的应用程序。此外,我具有相同的物理设备索引,但具有不同的VkPhysicalDevice个对象,因此具有不同的VkDevice个对象。使用多个逻辑设备分享VkBufferVkImage的最简单,最正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

我没有这样做,但可能尝试使用 VK_KHR_external_memory 扩展程序。它允许您从Vulkan内存对象导出非Vulkan句柄,并在缓冲区或图像创建期间提供此类外部内存。

这样您就可以创建一个可以在逻辑设备之间“共享”的内存对象。在一个设备中以正常方式创建缓冲区/图像和内存对象。然后导出此内存以获取非Vulkan句柄。然后,在其余的逻辑设备中,指定您希望将外部存储器用于缓冲区/图像。

[编辑]

但要共享内存对象您必须使用规范所指示的相同物理设备:

  

共享内存时只能使用相同的具体物理设备