Feature request: support GL_EXT_memory_object
Submitted by Christoph Haag
Assigned to Intel 3D Bugs Mailing List
... and of course GL_EXT_memory_object_fd.
This extension allows efficiently sharing texture data between OpenGL and Vulkan.
At Collabora we have two projects that make use of this extension.
The Monado OpenXR runtime uses the GL_EXT_memory_object OpenGL extension to enable OpenGL VR applications to submit frames to Monado's VR compositor which uses Vulkan.
xrdesktop uses the OpenGL extension to share OpenGL textures rendered by a window manager like kwin or gnome-shell with Vulkan textures that are either used by xrdesktop's internal scene renderer, or sent to a VR runtime.
From Valve there is also SteamVR relying on this extension to support running OpenGL VR applications efficiently. When this extension is not available, SteamVR implements a fallback where OpenGL textures are downloaded to system ram and then uploaded to VRAM again with Vulkan, however this fallback is far too slow for practical use.
Monado and xrdesktop do not implement such a fallback and as a consequence do not work on Intel graphics.
While this OpenGL extension is currently used for mostly VR, it can be useful for any use case where IPC with OpenGL and Vulkan is required. For example Firefox may use it to speed up the IPC between tab process that render GL textures with the rendering process.
This feature request also covers iris.