Я пишу оконный менеджер X11 с композитором на основе Vulkan. Мне интересно, есть ли способ эффективно загружать оконные растровые изображения в качестве текстур.
В OpenGL можно напрямую использовать расширение EXT_texture_from_pixmap, чтобы привязать растровое изображение к текстуре. Насколько я знаю, в Вулкане нет такой вещи.
Я изучал взаимодействие между Vulkan и OpenGL, т.е. создайте контекст GL только для использования расширения растрового изображения, а затем используйте внешние_объекты и такие расширения, чтобы сделать загруженную текстуру доступной для Vulkan. Но на моем Intel HD 630 кажется, что требуемый GL_EXT_memory_object недоступен (используя Mesa 18.3 dev и последнее ядро, если есть способ как-то его включить, это было бы здорово).
В настоящее время в качестве обходного пути я использую процессор, чтобы получить пиксели из растрового изображения, а затем перенести его в память графического процессора. Очевидно, что это может быть очень медленно при высоких разрешениях, даже если загрузка ограничена только поврежденными областями.
Каков наилучший способ эффективного извлечения содержимого растрового изображения для использования в рендерере на основе Vulkan?