Vulkan / Metal Synchronization Through MoltenVK

Hey guys!

We are currently porting our old GL engine to Vulkan. On Mac, we use MoltenVK so we do not need to do any Metal implementation and we can use a single API on all platforms.

Our problem is when using thirdparty software that only have a Metal API on Mac. We are able to extract the Metal texture handles through MoltenVK and provide these handles to the thirdparties no problem.

The issue is when we need to synchronize both APIs. Our textures are created in Vulkan in Vulkan Command Lists. When we provide the thirdparties with the Metal texture handles, we also need to provide them a way to synchronize with our Vulkan Command Lists.

There does not seem to be a way at the moment in MoltenVK to provide this synchronization point between a Vulkan Command List and a Metal Command Queue.

Is there another way to synchronize between both APIs, maybe using MtlEvents or Timeline Semaphores? Currently, we sync by waiting on the completion of command lists, which is not acceptable.

Any help would be greatly appreciated!
Jas

4 Likes

Any insight on this would be very much appreciated. Anything! :slight_smile:

Thanks!