Вулкан

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

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

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

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

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

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

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

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 . Предназначено для производителей графических процессоров, разрабатывающих драйверы Vulkan для Android, и OEM-производителей, интегрирующих эти драйверы для конкретных устройств. В нем описывается, как драйвер Vulkan взаимодействует с системой, как следует устанавливать инструменты, специфичные для графического процессора, и требования к реализации, специфичные для Android.
  • Руководство по графическому API Vulkan . Содержит информацию о начале работы с Vulkan в приложениях Android, платформе рекомендаций по проектированию Vulkan для Android, использовании компиляторов шейдеров Vulkan и использовании слоев проверки для обеспечения стабильности приложений, использующих Vulkan.
  • Новости Vulkan . Здесь вы найдете информацию о событиях, обновлениях, обучающих материалах и других новостях, связанных с Vulkan.