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