OpenGL Vulkan互操作性

问题描述 投票:2回答:1

我需要一些OpenGL-Vulkan Memory Exchange的帮助。我已经找到了这个话题How to render to OpenGL from Vulkan?但它不是我需要的。我不希望Vulkan分配和导出内存。我想将OpenGL内存导入Vulkan,创建Vulkan Image并将其绑定到导入的内存。

我的问题是,实际上可以获得可以与vk :: ImportMemoryWin32HandleInfoKHR一起使用的'HANDLE'(就WinOS而言)。

opengl interop vulkan
1个回答
3
投票

据我所知,还没有OpenGL扩展,这将允许这样做。它也是有道理的,因为OpenGL分配对象的内存语义非常模糊,数据实际上可能遍布整个地方。当你在OpenGL中创建一个纹理,缓冲区等时,它是完全开放的,最终会分配内存的时间,方式和位置。

这在Vulkan中是非常不同的,其中内存管理是明确的,并且一旦创建,您就拥有关于它的“完美”知识。这就是为什么可以简单地将该内存“导入”OpenGL对象;就OpenGL驱动程序而言,它只是另一种获取内存的方式,只是这种方式不需要关注脏细节。

最后,如果使用Vulkan或OpenGL分配内存,则不会产生实际差异。只需使用Vulkan进行分配,然后导入OpenGL。您仍然可以从OpenGL写入内存,也可以将其用作帧缓冲附件的渲染缓冲区或纹理。

© www.soinside.com 2019 - 2024. All rights reserved.