Вулкан

Android поддерживает Vulkan — малозатратный кроссплатформенный API для высокопроизводительной 3D-графики. Как и OpenGL ES (GLES) , Vulkan предоставляет инструменты для создания высококачественной графики в реальном времени в приложениях. Преимущества использования Vulkan включают снижение нагрузки на ЦП и поддержку языка SPIR-V Binary Intermediate .

Поставщики систем на кристалле (SoC), такие как независимые от GPU поставщики аппаратного обеспечения (IHV), могут писать драйверы Vulkan для Android. OEM-производителям необходимо интегрировать эти драйверы для конкретных устройств. Для получения подробной информации о том, как драйвер Vulkan взаимодействует с системой, как должны быть установлены инструменты, специфичные для графического процессора, и о требованиях, специфичных для Android, см . раздел Реализация Vulkan.

Разработчики приложений используют Vulkan для создания приложений, которые выполняют команды на графическом процессоре со значительным сокращением накладных расходов. Vulkan также обеспечивает более прямое сопоставление возможностей современного графического оборудования по сравнению с EGL и GLES, сводя к минимуму возможность ошибок драйверов и сокращая время тестирования разработчиками.

Для получения общей информации о Vulkan обратитесь к обзору Vulkan или просмотрите список ресурсов .

Вулкан компоненты

Поддержка Vulkan включает следующие компоненты.

Вулкан компоненты

Рисунок 1. Компоненты Vulkan

Название компонента Провайдер Описание
Слои проверки Vulkan Android (в НДК) Библиотеки, используемые при разработке приложений Vulkan для поиска ошибок в использовании приложения Vulkan API. После обнаружения ошибок использования API эти библиотеки следует удалить.
Вулканская среда выполнения Андроид Собственная библиотека libvulkan.so , которая предоставляет собственный API Vulkan.

Большая часть функций Vulkan Runtime реализована с помощью драйвера, предоставленного поставщиком графического процессора. Vulkan Runtime оборачивает драйвер, предоставляет возможности перехвата API (для отладки и других инструментов разработчика) и управляет взаимодействием между драйвером и зависимостями платформы.
Вулкан Драйвер SoC Сопоставляет Vulkan API с аппаратно-зависимыми командами графического процессора и взаимодействием с графическим драйвером ядра.

Модифицированные компоненты

BufferQueue и Gralloc поддерживают Vulkan:

  • Буферная очередь. Дополнительные значения перечисления и методы в BufferQueue и интерфейсе ANativeWindow позволяют Vulkan Runtime подключаться к BufferQueue через ANativeWindow .
  • Граллок. Дополнительный интерфейс позволяет Gralloc определить, можно ли использовать данный формат для конкретной комбинации производитель/потребитель без выделения буфера.

Подробнее об этих компонентах см. BufferQueue и gralloc . Дополнительные сведения об ANativeWindow см. в разделе EGLSurfaces и OpenGL ES ).

Ресурсы

Используйте следующие ресурсы, чтобы узнать больше о Vulkan:

  • Загрузчик Vulkan ( libvulkan.so ) на platform/frameworks/native/vulkan . Содержит загрузчик Android Vulkan, а также некоторые связанные с Vulkan инструменты, полезные для разработчиков платформ.
  • Реализация Вулкана . Предназначен для IHV графических процессоров, пишущих драйверы Vulkan для Android, и OEM-производителей, интегрирующих эти драйверы для конкретных устройств. В нем описывается, как драйвер Vulkan взаимодействует с системой, как следует устанавливать инструменты, специфичные для графического процессора, и требования к реализации для Android.
  • Руководство по графическому API Vulkan . Включает информацию о том, как начать использовать Vulkan в приложениях для Android, о платформе Android с рекомендациями по дизайну Vulkan, об использовании компиляторов шейдеров Vulkan и об использовании уровней проверки для обеспечения стабильности приложений, использующих Vulkan.
  • Новости Вулкана . Охватывает события, исправления, учебные пособия и другие новостные статьи, связанные с Vulkan.