À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Vulkan
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Android est compatible avec Vulkan, une API multiplate-forme simple d'utilisation pour les graphismes 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, comme la réduction des coûts liés au processeur et la prise en charge du 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 l'interaction d'un pilote Vulkan avec le système, sur la façon d'installer des outils spécifiques au GPU et sur les exigences spécifiques à Android, consultez la section 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 du matériel graphique actuel par rapport à EGL et GLES, ce qui réduit les possibilités de bugs de pilote et réduit le temps de test des développeurs.
Pour en savoir plus sur Vulkan, consultez la présentation de Vulkan ou la liste des ressources.
Composants Vulkan
La prise en charge de Vulkan comprend les composants suivants.

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 d'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 de GPU. Vulkan Runtime encapsule le pilote, fournit des fonctionnalités d'interception d'API (pour le débogage et d'autres outils de développement) 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 les interactions 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 d'énumération 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 particulière 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
Pour en savoir plus sur Vulkan, consultez les ressources suivantes:
-
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 plates-formes.
- Implémentation de 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 Comprend des informations sur les premiers pas avec Vulkan dans les applications Android, la plate-forme de consignes de conception 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.
- Actualités Vulkan Couvre les événements, les correctifs, les tutoriels et d'autres articles d'actualités liés à Vulkan.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Vulkan\n\nAndroid supports\n[Vulkan](https://www.khronos.org/vulkan/), a\nlow-overhead, cross-platform API for high-performance 3D graphics. Like\n[OpenGL ES (GLES)](https://www.khronos.org/opengles/),\nVulkan provides tools for creating high-quality, real-time graphics\nin apps. Advantages of using Vulkan include reductions in CPU overhead and\nsupport for the [SPIR-V\nBinary Intermediate](https://www.khronos.org/spir) language.\n\nSystem on chip vendors (SoCs) such as GPU independent hardware vendors (IHVs)\ncan write Vulkan drivers for Android. OEMs need to integrate these\ndrivers for specific devices. For details on how a Vulkan driver interacts with\nthe system, how GPU-specific tools should be installed, and Android-specific\nrequirements, see [Implementing\nVulkan.](/docs/core/graphics/implement-vulkan)\n\nApplication developers use Vulkan to create apps that\nexecute commands on the GPU with significantly reduced overhead. Vulkan also\nprovides a more direct mapping to the capabilities found in current graphics\nhardware compared to [EGL](https://www.khronos.org/egl) and GLES,\nminimizing opportunities for driver bugs and reducing developer testing time.\n\nFor general information on Vulkan, refer to the\n[Vulkan\nOverview](http://khr.io/vulkanlaunchoverview) or see the list of [Resources](#resources).\n\nVulkan components\n-----------------\n\nVulkan support includes the following components.\n\n**Figure 1.** Vulkan components\n\n| Component name | Provider | Description |\n|--------------------------|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Vulkan Validation Layers | Android (in the NDK) | Libraries used during the development of Vulkan apps to find errors in an app's use of the Vulkan API. After API usage errors are found, these libraries should be removed. |\n| Vulkan Runtime | Android | A native library, `libvulkan.so`, that provides a native Vulkan API. Most of Vulkan Runtime's functionality is implemented by a driver provided by the GPU vendor. Vulkan Runtime wraps the driver, provides API interception capabilities (for debugging and other developer tools), and manages the interaction between the driver and the platform dependencies. |\n| Vulkan Driver | SoC | Maps the Vulkan API onto hardware-specific GPU commands and interactions with the kernel graphics driver. |\n\nModified components\n-------------------\n\nBufferQueue and Gralloc support Vulkan:\n\n- **BufferQueue.** Additional enum values and methods in BufferQueue and the `ANativeWindow` interface enable Vulkan Runtime to connect to BufferQueue through `ANativeWindow`.\n- **Gralloc.** An optional interface lets Gralloc discover whether a given format can be used for a particular producer/consumer combination without allocating a buffer.\n\nFor details on these components, see\n[BufferQueue and\ngralloc](/docs/core/graphics/arch-bq-gralloc). For details on `ANativeWindow`, see\n[EGLSurfaces and OpenGL\nES](/docs/core/graphics/arch-egl-opengl)).\n\nResources\n---------\n\nUse the following resources to learn more about Vulkan:\n\n- [Vulkan Loader](https://android.googlesource.com/platform/frameworks/native/+/android16-release/vulkan/#) (`libvulkan.so`) at `platform/frameworks/native/vulkan`. Contains Android's Vulkan loader, as well as some Vulkan-related tools useful to platform developers.\n- [Implementing Vulkan](/docs/core/graphics/implement-vulkan). Intended for GPU IHVs writing Vulkan drivers for Android and OEMs integrating those drivers for specific devices. It describes how a Vulkan driver interacts with the system, how GPU-specific tools should be installed, and Android-specific implementation requirements.\n- [Vulkan Graphics API Guide](https://developer.android.com/ndk/guides/graphics/index.html). Includes information on getting started with using Vulkan in Android apps, Android's Vulkan design guidelines platform, using Vulkan's shader compilers, and using validation layers to help ensure stability in apps using Vulkan.\n- [Vulkan News](https://www.khronos.org/#slider_vulkan). Covers events, patches, tutorials, and more Vulkan-related news articles."]]