Vulkan, une bibliothèque de rendu bas niveau (proche du métal) existe depuis 2016. Celle-ci est vue comme un successeur de OpenGL, car :
- elle permet de faire du rendu ;
- elle corrige des problèmes de conception d'OpenGL, permettant, entre autre de meilleures performances ;
- c'est une spécification ouverte, tout comme OpenGL, gérée par le même consortium.
Aujourd'hui, cette "nouvelle" bibliothèque (par rapport à OpenGL qui a été publié pour sa première version en 1994) passe en version 1.3. Cette spécification intègre, dans le coeur de la bibliothèque, les extensions suivantes :
- le rendu dynamique (VK_KHR_dynamic_rendering) ;
- de nouveaux états dynamiques (VK_EXT_extended_dynamic_state et VK_EXT_extended_dynamic_state2) ;
- une meilleure interface pour les mécanismes de synchronisation (VK_KHR_synchronization2) ;
- un meilleur contrôle de comment et quand les pipelines sont compilés (VK_EXT_pipeline_creation_cache_control) et un meilleur retour sur ce processus (VK_EXT_pipeline_creation_feedback) ;
- un meilleur contrôle sur les sous groupes (VK_KHR_buffer_device_address), avec la possibilités d'avoir des sous groupes de différentes tailles ;
- le support du produit scalaire (VK_KHR_shader_integer_dot_product) afin que celui-ci ne soit plus implémenté manuellement et ainsi, avoir de meilleures performances notamment dans les algorithmes de machine learning ;
Aussi, Vulkan 1.3 revoit un nouveau mécanisme de profil permettant aux développeurs d'avoir une meilleure vision du support d'une version et des extensions supportés par les appareils. Voici l'exemple d'un de ces profils, ici pour Android.
Cette annonce est accompagnée par une feuille de route. Par le biais de cette annonce, Khronos indique que la nouvelle version de Vulkan sera supportée par les constructeurs faisant partie du consortium et cela, pour une large gamme d’équipements : tablette, ordinateurs, consoles et téléphones. Le but étant d'assurer aux développeurs un accès uniforme à ces fonctionnalités et ainsi éviter une fragmentation du marché.
Finalement, mi-février arrivera la nouvelle version du SDK, avec notamment un outil permettant de créer un profil et de savoir quels sont les équipements le supportant.
Source
Lien menant à la spécification
Annonce officielle