Vulkan

Android est compatible avec Vulkan, une API multiplate-forme simple permettant la création de graphiques 3D hautes performances. Comme OpenGL ES (GLES), Vulkan fournit des outils permettant de créer des graphismes de haute qualité en temps réel dans les applications. L'utilisation de Vulkan présente des avantages tels que la réduction de la surcharge du processeur et la compatibilité avec le langage SPIR-V Binary Intermediate.

Les fournisseurs de systèmes sur puce (SoC), tels que les fournisseurs de matériel indépendants (IHV) de GPU, peuvent écrire des pilotes Vulkan pour Android. Les OEM doivent intégrer ces pilotes pour des appareils spécifiques. Pour en savoir plus sur la façon dont un pilote Vulkan interagit avec le système, sur la façon d'installer des outils spécifiques au GPU et sur les exigences spécifiques à Android, consultez Implémenter Vulkan.

Les développeurs d'applications utilisent Vulkan pour créer des applications qui exécutent des commandes sur le GPU avec une surcharge considérablement réduite. Vulkan fournit également un mappage plus direct des fonctionnalités disponibles dans le matériel graphique actuel par rapport à EGL et GLES, ce qui minimise les risques de bugs de pilote et réduit le temps de test des développeurs.

Pour obtenir des informations générales sur Vulkan, consultez la présentation de Vulkan ou la liste des ressources.

Composants Vulkan

La prise en charge de Vulkan inclut les composants suivants.

Composants Vulkan

Figure 1 : Composants Vulkan

Nom du composant Fournisseur Description
Couches de validation Vulkan Android (dans le NDK) Bibliothèques utilisées lors du développement d'applications Vulkan pour détecter les erreurs dans l'utilisation de l'API Vulkan par une application. Une fois les erreurs d'utilisation de l'API détectées, ces bibliothèques doivent être supprimées.
Environnement d'exécution Vulkan Android Une bibliothèque native, libvulkan.so, qui fournit une API Vulkan native.

La plupart des fonctionnalités de Vulkan Runtime sont implémentées par un pilote fourni par le fournisseur du GPU. Vulkan Runtime encapsule le pilote, fournit des fonctionnalités d'interception d'API (pour le débogage et d'autres outils pour les développeurs) et gère l'interaction entre le pilote et les dépendances de la plate-forme.
Pilote Vulkan SoC (System on Chip) Mappe l'API Vulkan sur les commandes et interactions du GPU spécifiques au matériel avec le pilote graphique du noyau.

Composants modifiés

BufferQueue et Gralloc sont compatibles avec Vulkan :

  • BufferQueue. Des valeurs et des méthodes enum supplémentaires dans BufferQueue et l'interface ANativeWindow permettent à Vulkan Runtime de se connecter à BufferQueue via ANativeWindow.
  • Gralloc : Une interface facultative permet à Gralloc de déterminer si un format donné peut être utilisé pour une combinaison producteur/consommateur spécifique sans allouer de tampon.

Pour en savoir plus sur ces composants, consultez BufferQueue et gralloc. Pour en savoir plus sur ANativeWindow, consultez EGLSurfaces et OpenGL ES.

Ressources

Consultez les ressources suivantes pour en savoir plus sur Vulkan :

  • Chargeur Vulkan (libvulkan.so) à platform/frameworks/native/vulkan. Contient le chargeur Vulkan d'Android, ainsi que certains outils liés à Vulkan utiles aux développeurs de plate-forme.
  • Implémenter Vulkan Destiné aux IHV de GPU qui écrivent des pilotes Vulkan pour Android et aux OEM qui intègrent ces pilotes pour des appareils spécifiques. Il décrit comment un pilote Vulkan interagit avec le système, comment les outils spécifiques au GPU doivent être installés et les exigences d'implémentation spécifiques à Android.
  • Guide de l'API de graphiques Vulkan Inclut des informations sur la prise en main de Vulkan dans les applications Android, les consignes de conception de la plate-forme Vulkan d'Android, l'utilisation des compilateurs de nuanceurs de Vulkan et l'utilisation des couches de validation pour assurer la stabilité des applications utilisant Vulkan.
  • Vulkan News Couvre les événements, les correctifs, les tutoriels et d'autres articles d'actualités liés à Vulkan.