【问题标题】:OpenGL Vulkan InteroperabilityOpenGL Vulkan 互操作性
【发布时间】:2019-07-15 01:01:06
【问题描述】:

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

我的问题是,是否真的可以获得可以与 vk::ImportMemoryWin32HandleInfoKHR 一起使用的“HANDLE”(在 WinOS 方面)。

【问题讨论】:

    标签: opengl interop vulkan


    【解决方案1】:

    据我所知,目前还没有允许这样做的 OpenGL 扩展。这也有点道理,因为 OpenGL 分配对象的内存语义非常模糊,而且数据实际上可能到处都是。当您在 OpenGL 中创建纹理、缓冲区等时,它是完全开放的,最终会在何时、如何以及在何处分配其内存。

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

    最后,如果您使用 Vulkan 或 OpenGL 分配内存,这并没有实际的区别。只需使用 Vulkan 分配,然后导入 OpenGL。您仍然可以从 OpenGL 写入内存,即也可以将其用作渲染缓冲区或帧缓冲区附件的纹理。

    【讨论】:

      猜你喜欢
      • 2011-12-03
      • 2013-07-27
      • 2013-04-04
      • 2012-04-12
      • 2011-09-22
      • 2023-04-10
      • 2016-08-18
      • 1970-01-01
      • 2015-08-03
      相关资源
      最近更新 更多