Взаимодействие OpenGL Vulkan - PullRequest
       66

Взаимодействие OpenGL Vulkan

0 голосов
/ 21 февраля 2019

Мне нужна помощь с OpenGL-Vulkan Memory Exchange.Я уже нашел эту тему Как сделать рендеринг в OpenGL из Vulkan? Но это не совсем то, что мне нужно.Я не хочу, чтобы Vulkan выделял и экспортировал память.Я хочу импортировать память OpenGL в Vulkan, создать Vulkan Image и привязать его к импортированной памяти.

Мой вопрос заключается в том, возможно ли получить «РУЧКУ» (в терминах WinOS), которую можно использовать с vk :: ImportMemoryWin32HandleInfoKHR.

1 Ответ

0 голосов
/ 21 февраля 2019

Насколько я могу судить, пока нет расширения OpenGL, которое позволило бы это сделать.Это также имеет смысл, так как семантика памяти выделенных объектов OpenGL очень расплывчата, и данные могут фактически быть повсюду.Когда вы создаете текстуру, буфер и т. Д. В OpenGL, она полностью открыта, когда, как и где вещь в конечном итоге получит свою память.

Это очень отличается в Vulkan, где управление памятью явно, иоднажды созданный, у вас есть «совершенные» знания об этом.Именно поэтому можно просто «импортировать» эту память в объект OpenGL;что касается драйвера OpenGL, это просто еще один способ получить доступ к памяти, только при этом обход его не должен касаться грязных деталей.

В конце концов, он не делаетпрактическая разница, если вы выделяете память с помощью Vulkan или OpenGL.Просто выделите с помощью Vulkan, затем импортируйте в OpenGL.Вы все еще можете записывать в память из OpenGL, то есть также использовать его в качестве рендеринга буфера или текстуры для вложения фреймбуфера.

...