En novembre dernier, dans notre article sur la révolution des performances mobiles par l’outil de notre partenaire GameBench, nous abordions le cas de Vulkan, la nouvelle API graphique de Khronos Group, à l’image d’Open GL. À l’époque, les développeurs de jeux vidéo mobiles attendaient beaucoup de Vulkan, notamment sur l’aspect des meilleures performances, mais aussi sur le support du multi-plateformes pour faciliter la réalisation d’un jeu mobile et PC. Quelques mois plus tard, lors du MWC 2016, le Khronos Group a officiellement dévoilé les spécifications de Vulkan 1.0. L’occasion de revenir un peu plus en détail sur Vulkan ainsi que sur les API graphiques.
Qu’est-ce qu’une API ?
Pour commencer, qu’est-ce qu’une API (Application Programming Interface), une interface de programmation en français ? L’API est un ensemble de fonctionnalités (plus précisément classes, méthodes et fonctions) permettant aux développeurs de faire facilement le lien entre deux éléments, par exemple entre un site Internet et un service Web, comme le fait d’afficher des tweets sur une page. En fait, l’API facilite la vie des développeurs en leur proposant des fonctionnalités prêtes à l’emploi qui effectuent des actions automatiques, beaucoup plus longues et difficiles à réaliser sans API.
Qu’est-ce qu’une API graphique
Une API graphique est une interface de programmation spécifique, qui permet de créer des rendus 2D et 3D simplement et rapidement, en utilisant des fonctions prêtes à l’emploi qui seront traitées par la puce graphique, en passant par le pilote graphique qui traduira les fonctions en commandes à exécuter. En utilisant une API graphique (Open GL, Vulkan, DirectX, etc.), il est alors possible de créer des moteurs 3D. Ces moteurs 3D (Unreal Engine, Unity 3D, etc.) seront ensuite utilisés par les développeurs de jeux vidéo pour créer leurs titres.
Vulkan vs Open GL ES
Quelle est la différence entre Vulkan et Open GL ES ? Tout d’abord, Open GL ES est la version mobile d’Open GL, avec moins de fonctionnalités. Actuellement, lorsqu’un développeur veut sortir un titre sur PC et mobile, il doit utiliser un moteur 3D compatible avec Open GL pour PC et Open GL ES pour mobile.
Il existe toutefois des différences entre ces deux API avec moins de fonctionnalités sur mobile et il faut donc deux développements différents. Vulkan homogénéise le développement grâce à une seule version de l’API, avec beaucoup moins de modifications nécessaires pour les développeurs entre la version PC et la version mobile. Vulkan ne dispose pas de version dédiée au mobile, puisque l’API graphique est unifiée : les développeurs utilisent la même, que ce soit pour créer un moteur 3D à destination des PC ou des smartphones et tablettes.
Les avantages de Vulkan
Vulkan dispose de nombreux avantages face à Open GL ES. Pour clarifier la situation, Vulkan ne remplace pas Open GL ES qui continuera d’évoluer parallèlement à Open GL. Les développeurs auront donc le choix d’utiliser Vulkan ou Open GL (ES) pour la création de leur moteur 3D. Les deux principaux avantages de Vulkan tiennent à la hausse des performances et à la baisse de la consommation.
Vulkan permet une hausse des performances grâce à plusieurs facteurs. Le premier, c’est le passage beaucoup moins fréquent par le pilote graphique. Avec Open GL ES, chaque commande de rendu doit passer par le pilote, ce qui induit de la latence, une charge processeur supplémentaire (l’overhead) et donc une diminution des performances. Vulkan permet d’éviter de passer par le pilote pour certaines actions (gestion de la mémoire et des threads), c’est pour cette raison qu’on dit que Vulkan est une API de bas niveau : elle peut piloter directement le GPU.
L’API graphique Vulkan permet aussi d’augmenter les performances grâce à un meilleur support des processeurs multicœurs, en supportant par défaut de multiples threads. Ainsi, Vulkan peut optimiser l’utilisation d’un processeur doté de multiples cœurs pour mieux répartir la charge et tirer parti des performances maximales. C’est grâce à cette nouveauté qu’il est désormais possible d’afficher des milliers, voire des centaines de milliers d’objets sur une scène sans mettre à genoux le processeur, tout en conservant une bonne fluidité, exprimée en images par secondes (FPS).
Dans le cadre d’un jeu qui n’est pas trop gourmand en terme de ressources, Vulkan pourra tout de même diminuer légèrement la consommation de l’appareil puisque le processeur sera moins sollicité et utilisé de manière beaucoup plus optimisée.
Enfin, Vulkan devrait permettre de profiter de titres PC et mobiles de plus en plus similaires en termes de fonctionnalités et de graphismes. En effet, Vulkan va permettre aux développeurs de moteurs 3D d’utiliser une seule et même base commune pour les titres destinés aux PC et les titres destinés aux mobiles. Il subsistera bien évidemment encore quelques différences, notamment du fait de la présence d’un écran tactile sur mobile ou d’une puissance plus faible, mais celles-ci tendent à disparaitre.
Les inconvénients de Vulkan
Les avantages de Vulkan sont contrebalancés par quelques inconvénients, à commencer par une plus grande difficulté dans la création de scènes 2D ou 3D. En effet, Vulkan a créé SPIR-V, un nouveau langage de programmation plus complexe que les langages utilisés auparavant par les développeurs. Ce nouveau langage permettra toutefois aux développeurs de réaliser des moteurs 3D largement plus optimisés. En fait, la plupart des développeurs non expérimentés ou qui n’ont pas le temps pourront passer par des moteurs 3D ou des middlewares déjà prêts à l’emploi à l’image d’Unity (Hitman Sniper, Lara Croft Go, etc.), d’Unreal Engine (Real Boxing 2 Creed, Mortal Kombat X, etc.) ou de Marmalade (SimCity Buildit, Earn to Die 2, etc.).
Certains acteurs craignent que Vulkan finisse comme Android Extension Pack : au fond d’un tiroir. Pour le moment, aucun jeu mobile n’a encore été développé en utilisant Vulkan, mais ça ne saurait tarder, puisque l’ensemble des acteurs des moteurs 3D ou des middlewares ont affirmé travailler au support de Vulkan. Face à Vulkan, on trouve deux autres API graphiques de bas niveau : Metal sur iOS et DirectX 12 sous Windows. Le fait que ces trois API soient de type bas niveau devrait faciliter le portage entre les plateformes par rapport à l’utilisation d’une API de haut niveau. Vulkan ne devrait donc pas fragmenter l’écosystème des appareils capables de faire tourner des jeux vidéo, et c’est tant mieux.
Votre terminal supporte-t-il Vulkan ?
En revanche, pour pouvoir faire tourner un jeu supportant Vulkan sur un appareil mobile, il faut réunir trois conditions : un OS, un GPU et un pilote compatible. Le terminal en question doit disposer d’Android 6.0 Marshmallow ou d’un version ultérieure, d’un GPU (puce graphique) compatible, à l’image de certaines puces PowerVR d’Imagination Technologies (notamment PowerVR GX6450, GX6250, G6430 et G6230) ou Mali d’ARM (T760, T860 et T880), des Adreno des séries 400 et 500 de Qualcomm ou encore des Tegra X1 et K1 chez Nvidia.
Sur le papier, tous les GPU compatible Open GL ES 3.1 peuvent supporter Vulkan. Mais dans la pratique, il faut que le concepteur de la puce ait développé un pilote spécial, et surtout, que le constructeur du terminal déploie ce pilote par le biais d’une mise à jour. Normalement, tous les appareils dotés d’un Snapdragon 820 devraient être compatibles avec Vulkan, à l’image du Galaxy S7 de Samsung sur lequel on a pu voir une démonstration lors du MWC 2016.
Une vidéo pour mieux comprendre
Pour mieux comprendre les enjeux et les avantages de Vulkan, nous avons réalisé une vidéo dédiée avec quelques infographies animées qui devraient permettre de mieux saisir les principes d’API graphiques et les différences entre Vulkan et Open GL ES, mais aussi pour mieux comprendre la place de l’API graphique dans le processus de création d’un jeu vidéo, notamment face au moteur 3D, aux pilotes graphiques et au GPU.
Rendez-vous un mercredi sur deux sur Twitch, de 17h à 19h, pour suivre en direct l’émission SURVOLTÉS produite par Frandroid. Voiture électrique, vélo électrique, avis d’expert, jeux ou bien témoignages, il y en a pour tous les goûts !
Si tu veux un bf4 alors prend un PC.
on a pas les meme critères
Modern combat 5, World of Tank Blitz, Hitman sniper, the abandonned, oddworld, war thunder, godfire, half life 2 et j'en passe tellement il y en a.
Oui je sais...c'est peut-être un peu trop systématique... Quoique que sur le précédant message, je n'ai pas spécialement abusé...Je ne cite Mediatek qu'à la dernière phrase, j'ai même cité un Exynos avant. J'aime pas Qualcomm...ils ont éliminé TI ou STMicroélectronics des soc... Reste Intel...des soc vraiment pas dégueu...mais l'hégémonie d'Intel sur les PC, m'empêche de les défendre plus que de raison. Les Exynos, limités à Samsung...et à quelques Meizu, donc pas réellement en concurrence...ceci dit, sur le S7, je défends la version Exynos. A coté de ça, Mediatek, leur seul concurrent dans les faits (et c'est bien dommage), est systématiquement trollé (et sur certains points, il y a un fond de vrai...ils sont loin d'être tout blancs...et je commence à pas trop bien sentir X20 coté stabilité...on devrait en savoir un peu plus : présentation officielle demain) A part sur S810, Qualcomm n'a quasiment jamais été attaqué par la presse... Pourtant, il y en a à dire...en Throttling, pas que sur S810 Sur le Javascript et l'html5 en retrait de leurs coeurs Custom aussi bien Krait que Kryo. Sur la différence entre les résultats des benchs et la réalité d'utilisation... Je dis pas que ce sont de mauvaises puces...juste que leur supériorité est beaucoup moins flagrante que des tests trop souvent limités à des benchs laissent penser (c'est en train de changer tout doucement...on commence à voir les fps in-game de quelques jeux) Enfin, je trouve que Google les avantages beaucoup trop...cette année, 2 smartphones Nexus, on a S808 et S810...après on se plaint de la fragmentation de l'OS...Google voudrait l'organiser qu'ils ne s'y prendraient pas autrement. Mediatek? Google leur refourgue Android One...histoire de les maintenir dans leur image entrée de gamme... Je dis aussi du mal d'nVidia (uniquement sur leur soc, pas leur CG), sur ShieldTV, tests ultra-positifs...qui oublient presque tous d'indiquer qu'à coté d'un GPU monstrueux, il y a des accès disques en Random Read qui sont inférieurs à ceux d'un Galaxy SIII ! C'est comme mettre un disque dur IDE avec deux GTX980 en SLI! ...et quand on voit le Tegra 3 d'une Nexus 7 inutilisable sous Lollipop avec 4 Cortex A9 out-of-order alors qu'un Moto G avec 4 Cortex A7 in-order l'est parfaitement, il y a de quoi se poser des questions Tu t'appelles Qualcomm, nVidia, tu as des préjugés positifs dans la presse... Tu t'appelles Mediatek, les préjugés sont négatifs... Quand l'info est traitée...c'est à dire pas tout le temps. Quid de leur participation sur Vulkan, de leur partenariat avec Nokia ou Orange sur les objets connectés, presque pas vu sur les Medias français...bordel, un partenariat avec Orange, une boîte française! La recharge à distance, ils ont présenté un proto il y a 2ans...il y a bien eu quelques articles, une rumeur de la même techno chez Apple presque 2 ans plus tard fera beaucoup plus d'articles. Alors oui, j'exagère dans mes commentaires...pour essayer de compenser...je reste persuadé que ce traitement par la presse n'est pas forcément volontaire...
Ça devient gênant d'avoir systématiquement dans tes commentaires, forts intéressants au demeurant, des remarques péjoratives sur les produits Qualcomm et immédiatement après, une pub pour un SoC Mediatek. Clairement flippant tellement c'est systématique.
Je signalais simplement que la plupart des appareils à plus de 300€ matériellement capables de gérer Vulkan auront très probablement les mises à jour nécessaires au fonctionnement de l'API. Dans le cas de cette API et pour les appareils réellement concernés matériellement, je ne pense qu'on puisse parler d'une catastrophe comme tu le fais. Je te rejoins sur le fait que le client d'un 5c, s'en fout complètement d'avoir l'API Metal... Et je suis tout aussi d'accord sur l'importance des fonctionnalités...mais tu n'imagines même pas à quel point. Très franchement, le numéro de l'OS m'importe peu... Des dual-sim j'en utilise depuis Android 4.0... Alors que Google n'a intégré la fonction que depuis la version 5.1. Le capteur d'empreinte, je l'utilise en 5.0 alors qu'il n'est présent chez Google que depuis la version 6.0. Le gestionnaire de permissions, je l'ai utilisé sur Android 4.0...oh, Google ne l'a toujours pas intégré... Donc je maintiens : tant que j'ai la fonction qui me convient, l'absence de mise à jour n'est pas une catastrophe. La présence de la mise à jour est certes un plus très appréciable. Il y a également des choses curieuses...pourquoi Qualcomm, encensé pour ses GPU, n'a pas intégré OpenGL ES 3.1 (et par conséquent la compatibilité potentielle avec Vulkan) sur S800 et S801. Cette compatibilité existe sur Exynos 5250 (Nexus 10) qui est antérieur à S800. Ou pourquoi fin 2015, ils osent encore nous re-servir un S412 non compatible!...Mt6735 dans le même segment offre la fonction (après est-ce utile)
Procès à charge, comme d'habitude. Le client d'un 5C dans sa dernière année de commercialisation n'était pas un power user, tu le reconnais toi même. Il n'aura jamais l'utilité de métal et il ne se plaindra évidement pas car il sait qu'il a choisi l'entrée de gamme. Et le côté "castré", d'iOS 9, il ne le voit pas. Pour lui, iOS 9 correspond à de nombreuses améliorations ou ajout de fonctionnalités. Celles-ci : http://www.apple.com/fr/ios/whats-new/
Une exclu Tegra sera sans doute le premier jeu à exploiter Vulcan
ca fait un jeu, voilà c finis yen a 5 en tout merci ca commence a faire chier depuis le temps c plus tres drole
Il y a aussi les z3560, z3580 et plus récemment le z3570 présents sur différents zenfone 2. Ils sont équipés d'un power VR rogue G6430 compatible avec vulkan. Et Marshmallow doit arriver sur ces zenfone 2 ce mois-ci (sachant qu'il y a une phase de beta test depuis fin janvier). Je partage ton avis sur les nombreux appareils équipés de s615 qui ne seront pas mis à jour. C'est dommage car c'est sans doute sur ce genre de soc qu'on aurait vu les plus grosses différences.
Désolé mais 12 ou même 18 mois de mise à jour au mieux, ce n'est pas suffisant. Cherche autour de toi les terminaux en Marshmallow.
Ben moi par exemple j'ai le G Flex 2 qui a un S810 donc un GPU Adreno serie 400 et pour Android Marshmallow, on a aucune nouvelles encore... La misere!
"Le prochain qui me dit que c'est pas grave si les terminaux Android ont un suivi logiciel misérable..." Haha c'est vrai que je vois beaucoup de personnes aussi dire que les mises a jours Android ne sont pas indispensables mais maintenant ces personnes la peuvent plus trop parler...
Merci pour le lien. C'est bizarre, mais j'aime bien voir les démo techniques, je trouve ça sympa et parfois original !
Au top l'article, bien expliqué en images avec la petite vidéo de fin qui résume le tout en 2min ?
La mise à jour ne suffit pas... L'iphone 5c a beau être sous iOS 9, l'API Metal ne fonctionne pas dessus... La série 5 de power VR ne supporte pas l'API... Il s'agit quand même d'un appareil qui était vendu 350€ dans une version 8go il y a très peu de temps... En même temps avec une capacité de stockage aussi pauvre, je vois mal des gens jouer à des gros jeux 3d dessus ! On peut ainsi se poser la question de l'utilité d'un iOS 9 castré sur cet appareil... Ensuite, si tu prends s400, s410, s412, s600, s800, s801, toutes ces puces ne sont de tout de façon pas compatibles de la même façon que l'iPhone 5c. Restent les appareils à base de s805/810/820, Exynos 7420 ainsi que s615 et les Mediatek mt67xx... Pour les puces Qualcomm haut de gamme et Exynos, la plupart des appareils auront les mises à jour... Bien que Mediatek ait prévu des mises à jour en 6.0 pour toutes ses puces 67xx, il est par contre quasi certain que chez les petits fabricant chinois, il y ait peu de mises à jour (de même pour ceux qui ont utilisé du s615)... On parle d'appareils qui dépassent rarement les 200€. Mais Sony a par exemple annoncé Android 6.0 sur son C4 qui dispose d'une 6752 (la 2ème plus vieille puce de la série 67xx)... Le C4, on le trouvait à 180€...à comparer au prix du 5c. On peut considérer qu'à peu près tous les appareils vendus au dessus de 300€ et qui sont capables de faire fonctionner l'API disposeront d'Android 6.0
Les hauts de gamme ont un suivi logiciel. Ce n'est pas sur un entrée de gamme peu puissant que l'on joue. Pour moi ça ne coince pas, surtout si l'on considère que d'ici son adoption, la proportion de terminaux sous Android 6 aura largement augmenté !
"... pour pouvoir faire tourner un jeu supportant Vulkan sur un appareil mobile, il faut réunir trois conditions : un OS, un GPU et un pilote compatible. Le terminal en question doit disposer d’Android 6.0 Marshmallow ou d’un version ultérieure..." Et oui, l'absence de mise à jour est une catastrophe. Le prochain qui me dit que c'est pas grave si les terminaux Android ont un suivi logiciel misérable...
Et Real Racing par exemple ? Ce n'est pas un Pay to win et c'est beau graphiquement.
Très bon article, bravo !
Merci :) je vais regarder ça
Elle est a télécharger ici https://developer.nvidia.com/Vulkan C'est marrant deux minutes, mais ça n'a pas grand intérêt. Apparemment yen a une seconde (Choppers) qui est a venir et qui serait plus démonstrative en terme de d'effets visuels
Clair et intéressant. Merci !
Tu as fait comment pour voir cette demo stp ? :)
Pour l'instant la seule application du potentiel de Vulkan que j'ai pu voir est la démo avec les poissons sur ma Nvidia Shield TV. A 20000 objets 3D animés à l'écran, on est toujours au dessus des 50 images/s. C'est clair que c'est impressionnant mais maintenant, on veut des jeux!
super sauf que les jeux sur le play sont majoritairement MERDIQUES, et j'ai beau me balader dedans pendant des heures je trouve que des doublons à la con, des jeu chiants plein de pubs et des pay to win après le premier niveau tellement ca devient, dur, au final les jeux sympas sont des petit jeux format mobile qui s'en tapent de vulkan je sais pas quoi
Si ça continue ça va vraiment être l'année de linux !<i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
Ce contenu est bloqué car vous n'avez pas accepté les cookies et autres traceurs. Ce contenu est fourni par Disqus.
Pour pouvoir le visualiser, vous devez accepter l'usage étant opéré par Disqus avec vos données qui pourront être utilisées pour les finalités suivantes : vous permettre de visualiser et de partager des contenus avec des médias sociaux, favoriser le développement et l'amélioration des produits d'Humanoid et de ses partenaires, vous afficher des publicités personnalisées par rapport à votre profil et activité, vous définir un profil publicitaire personnalisé, mesurer la performance des publicités et du contenu de ce site et mesurer l'audience de ce site (en savoir plus)
En cliquant sur « J’accepte tout », vous consentez aux finalités susmentionnées pour l’ensemble des cookies et autres traceurs déposés par Humanoid et ses partenaires.
Vous gardez la possibilité de retirer votre consentement à tout moment. Pour plus d’informations, nous vous invitons à prendre connaissance de notre Politique cookies.
Gérer mes choix