Вулкан

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.