Khronos publie la spécification de Vulkan 1.1 et de SPIR-V 1.3

Le , par LittleWhite, Responsable 2D/3D/Jeux
En 2016, Khronos avait publié la spécification de Vulkan 1.0, une bibliothèque graphique bas niveau (proche du métal), succédant à OpenGL, sans pour autant le remplacer. Ses objectifs sont de donner un meilleur contrôle sur le GPU (et ainsi réduire le surcoût des pilotes graphiques), de surpasser les limites d'OpenGL (notamment pour ce qui est des possibilités d'utilisations en multithread) et de permettre l'utilisation de code intermédiaire pour les shaders (sous la forme d'une seconde spécification qui est SPIR-V). Vous pourrez trouver plus d'information dans cet article de présentation.


Les nouvelles versions des spécifications Vulkan 1.1 et SPIR-V 1.3 visent à étendre les fonctionnalités des bibliothèques. Comme pour OpenGL, celles-ci étaient déjà disponibles au travers d'extensions qui pouvaient ou ne pas être supportées par l'ensemble du matériel compatible Vulkan. En intégrant ces extensions dans le cœur de la spécification, cela assure aux développeurs leur disponibilité et permet de formaliser leur contenu.
Ainsi, cette version 1.1 apporte les sous-groupes d'opérations (« subgroup operations ») améliorant ainsi le partage et la manipulation des tâches parallèles. De plus, il est maintenant possible d'utiliser des ressources non accessibles ou non copiables dans les opérations d'affichage ou du rendu (notamment pour la lecture de contenu multimédia protégé). Les extensions intégrées dans le cœur permettent quant à elles de :
  • faire un rendu simultané de plusieurs vues d'images ;
  • d'utiliser plusieurs GPU dans un même système ;
  • d'assurer l'interopérabilité entre API et entre processus pour des rendus avancés (notamment pour la réalité virtuelle) ;
  • d'avoir un accès 16 bits à la mémoire ;
  • de supporter les dispositions mémoire du HSLS ;
  • d'afficher et de traiter des flux directement en YCbCr.


Du côté de SPIR-V, la nouvelle version permet aussi le support des sous-groupes d'opérations ainsi que de nouvelles optimisations de compilation.

La mise à jour des spécifications est aussi l'occasion d'offrir des outils plus performants pour les développeurs. Il est possible de compiler des shaders GLSL et HLSL au format intermédiaire. Le SDK Vulkan de LunarG pour Windows et Linux est évidemment compatible avec Vulkan 1.1. Il est maintenant possible d'utiliser la fabrique de couches Vulkan (« Vulkan Layer Factory ») pour accélérer le développement de couches, d'utiliser la couche de simulation de périphérique pour simuler différentes capacités cibles ou encore d'utiliser la couche assistante pour être guidé dans le développement et les bonnes pratiques.
L'outil RenderDoc, permettant de déboguer le rendu d'une application supporte Android et est maintenant capable d'afficher l'assembleur et des informations de performances avec les constructeurs le permettant.

À l'occasion de cette annonce, Khronos indique que les tests de compatibilité seront publiés en open source (en continuité avec le mouvement d'ouverture des ressources liées à OpenGL et Vulkan). Déjà les constructeurs AMD, Arm, Imagination, Intel Corporation, NVIDIA et Qualcomm ont des pilotes compatibles avec cette nouvelle version. Il est aussi à noter que Vulkan est supporté par la plupart des moteurs de jeux vidéo : Unreal, Unity , Source 2, CryEngine, Xenko, Serious Engine et qu'il a été souvent rapporté que la bibliothèque permet des performances meilleures que celles d'OpenGL.

Votre opinion

Avez-vous utilisé Vulkan ? Quels ont été vos ressentis à propos de cette bibliothèque ?
Sinon, allez-vous vous pencher sur cette bibliothèque ?

Ressources

Developpez.com recherche des volontaires pour compléter les ressources françaises sur Vulkan. C'est l'occasion de mieux découvrir cette nouvelle bibliothèque. Si vous êtes intéressé, contactez-moi (que ce soit pour la rédaction, ou ne serait-ce que pour faire la traduction de ressources en anglais).

Source

Annonce officielle
Annonce du nouveau SDK


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -