Using External memory to copy between differing VkDevices

Hi All,

Does anybody know of any examples or blog/tutorials that show how to use the external memory system to copy between different VkDevices.
In this cases the VkDevices are different physical devices that are different enough that they cannot appear in a device group, but related by the driver/vendor. For example an AMD Vega + Radeon 550 or an nVidia 1080 and 980.

I would like to play with mismatched GPUs working together (i.e. CrossFire | SLI).


What you’re trying to do is not allowed. External memory can only be shared between VkDevices whose physical devices have the exact same deviceUUID.

What you want cannot be done without talking to CPU memory.

So I have to use something like VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT to use host memory to transfer to and then from to be able to get bytes from card A to card B.

Any good examples on using this? Or post mortums on using it?