Вулкан

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 включает в себя следующие компоненты.

компоненты 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.