Компания Collabora развивает Zink, реализацию OpenGL поверх API Vulkan

Компания Collabora представила Zink, новый Gallium-драйвер для Mesa, реализующий API OpenGL поверх Vulkan. Zink позволяет получить аппаратно ускоренный OpenGL при наличии в системе драйверов, ограниченных поддержкой только API Vulkan. Код опубликован под лицензией MIT.

В качестве причин создания реализации OpenGL поверх Vulkan называется желание упростить графический стек и снизить нагрузку на будущие драйверы для GPU. Zink также может быть использован для обеспечения работы драйверов Gallium Nine (реализация API Direct3D 9) и Clover (реализация OpenCL) поверх Vulkan-драйвера i965 или для предоставления поддержки OpenGL при наличии в системе только проприетарного драйвера Vulkan. Рассматривается также возможность применения Zink в качестве прослойки для постепенного портирования сложных приложений с OpenGL на Vulkan, позволяющей одновременной использовать элементы API OpenGL и Vulkan.

Для работы Zink требуется драйвер с поддержкой Vulkan 1.0 и расширениями VK_KHR_maintenance1 и VK_KHR_external_memory_fd. В настоящий момент реализована только поддержка OpenGL 2.1 и OpenGL ES 1.1/2.0 с некоторыми дополнительными расширениями. В дальнейшем планируется обеспечить поддержку более актуальных версий OpenGL, например, в ближайшее время обещают реализовать поддержку OpenGL 3.3.

Что касается производительности, то она уступает родным драйверам OpenGL, например, Zink поверх Vulkan-драйвера i965 в тесте glxgears показывает 475 FPS, а при использовании OpenGL-драйвера i965 удаётся достичь 1750 FPS. Но реализация пока не оптимизирована и в дальнейшем разрыв планируется существенно сократить. Из успешно работающих поверх Zink приложений отмечаются композитный сервер Weston, игры OpenArena, Quake 3 и Extreme Tux Racer.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.