Вулкан

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробную информацию об этих компонентах см. в разделах BufferQueue и gralloc . Подробности об ANativeWindow см. в разделах EGLSurfaces и OpenGL ES ).

Ресурсы

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

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