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

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 Vulkanest 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.

Dans la même rubrique

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 23 |

Actu en image