Android поддерживает Vulkan — кроссплатформенный API с низкими издержками для высокопроизводительной 3D-графики. Как и OpenGL ES (GLES) , Vulkan предоставляет инструменты для создания высококачественной графики в реальном времени в приложениях. Преимущества использования Vulkan включают снижение нагрузки на процессор и поддержку языка SPIR-V Binary Intermediate .
Поставщики систем на чипе (SoC), такие как независимые от GPU поставщики оборудования (IHV), могут писать драйверы Vulkan для Android. OEM-производителям необходимо интегрировать эти драйверы для определенных устройств. Подробную информацию о том, как драйвер Vulkan взаимодействует с системой, как следует устанавливать инструменты, специфичные для GPU, и требования, специфичные для Android, см. в разделе Реализация Vulkan.
Разработчики приложений используют Vulkan для создания приложений, которые выполняют команды на GPU со значительно сниженными накладными расходами. Vulkan также обеспечивает более прямое сопоставление с возможностями, имеющимися в текущем графическом оборудовании, по сравнению с EGL и GLES, сводя к минимуму возможности для ошибок драйверов и сокращая время тестирования разработчика.
Для получения общей информации о Vulkan обратитесь к обзору Vulkan или ознакомьтесь со списком ресурсов .
Компоненты Вулкана
Поддержка Vulkan включает в себя следующие компоненты.
Рисунок 1. Компоненты Vulkan
Название компонента | Провайдер | Описание |
---|---|---|
Слои проверки Vulkan | Android (в NDK) | Библиотеки, используемые при разработке приложений Vulkan для поиска ошибок в использовании API Vulkan приложением. После обнаружения ошибок использования API эти библиотеки следует удалить. |
Vulkan Runtime | андроид | Собственная библиотека libvulkan.so , предоставляющая собственный API Vulkan.Большая часть функциональности Vulkan Runtime реализована драйвером, предоставляемым поставщиком GPU. Vulkan Runtime оборачивает драйвер, предоставляет возможности перехвата API (для отладки и других инструментов разработчика) и управляет взаимодействием между драйвером и зависимостями платформы. |
Драйвер Вулкан | SoC | Сопоставляет API Vulkan с аппаратно-специфичными командами графического процессора и взаимодействиями с графическим драйвером ядра. |
Модифицированные компоненты
BufferQueue и Gralloc поддерживают Vulkan:
- BufferQueue. Дополнительные значения перечисления и методы в BufferQueue и интерфейсе
ANativeWindow
позволяют Vulkan Runtime подключаться к BufferQueue черезANativeWindow
. - Gralloc. Дополнительный интерфейс позволяет Gralloc обнаружить, может ли данный формат использоваться для конкретной комбинации производителя/потребителя без выделения буфера.
Подробную информацию об этих компонентах см. в BufferQueue и gralloc . Подробную информацию об ANativeWindow
см. в EGLSurfaces и OpenGL ES ).
Ресурсы
Чтобы узнать больше о Vulkan, используйте следующие ресурсы:
- Загрузчик Vulkan (
libvulkan.so
) вplatform/frameworks/native/vulkan
. Содержит загрузчик Android Vulkan, а также некоторые инструменты, связанные с Vulkan, полезные разработчикам платформы. - Реализация Vulkan . Предназначено для IHV GPU, пишущих драйверы Vulkan для Android, и OEM-производителей, интегрирующих эти драйверы для определенных устройств. Описывает, как драйвер Vulkan взаимодействует с системой, как следует устанавливать инструменты, специфичные для GPU, и требования к реализации, специфичные для Android.
- Руководство по графическому API Vulkan . Содержит информацию о начале работы с использованием Vulkan в приложениях Android, рекомендации по проектированию платформы Vulkan для Android, использование компиляторов шейдеров Vulkan и использование слоев проверки для обеспечения стабильности приложений, использующих Vulkan.
- Новости Vulkan . Описывает события, патчи, руководства и другие новостные статьи, связанные с Vulkan.