OpenCL/OpenGL to Vulkan memory sharing (Cross-API sharing)


This presentation ( mentions on slide 16 the possibility with Vulkan 1.1 to "Share memory and sync primitives (semaphores and fences) between APIs in a single application, or between multiple applications

  • Many applications, e.g. allowing a compositor to present images from Vulkan and OpenGL ES applications to the same display device".

I am looking into sharing memory buffers (textures/images) across OpenCL/Vulkan, specifically on AMD GPUs. Is there any documentation available on how this can be achieved? Say I have a buffer of a 128*128 RGB image/texture in an OpenCL context, how would I access this data from a Vulkan context without sending it to system memory (maintaining the texture data in GPU memory)?

What is the overall interoperability state of interior for data/memory sharing between OpenCL/OpenGL/D3D11/D3D12 and Vulkan?

Are there any code examples out there that demonstrate this type of interoperability between APIs?



New to the forum, and facing error starting a new thread with my question. I’m searching for the information on the type of memory VkMemoryPropertyFlagBits. Is there any valid and easy tutorial? What specific properties help differentiate the types?


What kind of error?

  2. “+Post New Thread” button
  3. Enter “Title” and text. Helps to have text already prepared, as the forum have a tendency to log you out after relatively short timeout.
  4. “Submit New Thread”