Vulkan : premiers retours sur les bénéfices de la nouvelle bibliothèque
Des avantages dans les jeux, mais aussi pour les mobiles

Le , par LittleWhite

0PARTAGES

4  0 
Dès les premières informations sur Vulkan, la bibliothèque avait été annoncée bénéfique pour les performances de rendu 3D (tout comme pour DirectX 12). Toutefois, après la publication de la première spécification de la bibliothèque, il fallait encore convaincre le public des apports de cette technologie et surtout, pourquoi cette bibliothèque était aussi intéressante pour les développeurs que pour les joueurs.
NVIDIA, tout en annonçant la nouvelle série de cartes graphiques (GeForce GTX 1070, GeForce GTX 1080) a aussi dévoilé une vidéo de gameplay du jeu DOOM (iD Software). Le jeu supporte Vulkan et sur la GTX 1080, le jeu maintient les 60 FPS aisément. Une fois la limitation de la fréquence de rafraîchissement enlevée, le jeu est monté à 150 FPS, avec des pics à 200 FPS et des baisses ne descendant pas en dessous de 120 FPS.
La version YouTube a été capturée avec une GeForce Titan X (et vous pouvez récupérer la vidéo sans compression ici)


La bibliothèque est aussi disponible sur les plateformes mobiles. Samsung avait déclaré prendre en charge Vulkan sur le Galaxy S7. On comprend facilement qu'une bibliothèque plus proche du matériel et donnant un meilleur contrôle aux développeurs sur le GPU, tout en réduisant le surcoût des vérifications effectuées par les pilotes OpenGL puisse être bénéfique pour dégager de la puissance brute et donc plus efficace dans les rendus, mais cet aspect est loin d'être primordial pour les plateformes mobiles. C'est au cours de la Samsung Developers Conference (SDC) que le constructeur a dévoilé un autre intérêt pour la bibliothèque.
En effet, Samsung a redéveloppé TouchWiz (le lanceur d'application) pour utiliser Vulkan. Dès les premiers essais, il a été noté que la nouvelle implémentation permettait de réduire la consommation électrique (gain de 6 % par rapport à la version OpenGL ES). En d'autres termes plus quantifiables, cela peut augmenter la charge de 40 minutes.

Vulkan est bien là et la bibliothèque apporte bien les avantages attendus.

Votre opinion

Étiez-vous convaincu, dès le début, des intérêts de Vulkan ? Pourquoi ?
Quelles sont les choses qu'il reste à faire pour améliorer les performances des jeux et des applications mobiles ?

Voir aussi

Les ressources Developpez.com sur Vulkan

Source

Android Central
Tom's hardware

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Dabou Master
Membre expert https://www.developpez.com
Le 15/05/2016 à 10:01
Moi j'en dis surtout que le nouveau Doom a fusionné avec les anciens Quake ... Sérieux le shotgun double canon avec visée laser, le plasma gun, le rail gun, le quad damage ... C'était dans Doom ça avant ? Et puis la façon de sauter partout comme un lièvre sous acides, y'a du Q3 dans l'air non ?
2  4 
Avatar de Aiekick
Membre extrêmement actif https://www.developpez.com
Le 16/05/2016 à 9:24
si je comprends bien, le speedup de vulkan se situe au niveau de la supression des check.
donc ca ce situe au niveau du driver. ca ne change rien pour tout ce qui est traité dans le gpu, je pense par exemple aux shaders ?

je me fait un editeur pour faire des shaders comme ceux de shadertoy mais offline et pas limité donc a opengl es ou webgl. est ce que vulkan, peut me permettre de faire tourner les shader avec un meilleur fps ?
0  0 
Avatar de CrankFlash
Membre régulier https://www.developpez.com
Le 16/05/2016 à 10:22
Oui, Vulkan, comme DX12 permettent de meilleurs perfs CPU. Au niveau GPU ya rien qui change.
0  0 
Avatar de vampirella
Membre éclairé https://www.developpez.com
Le 16/05/2016 à 11:43
Il serait intéressant de noter que l'optimisation du compilateur de shader est encore dans les choux côté Vulkan : si certaines équipes de dév comme celles de Doom4 ou Dota2 puvent se permettre de dédier 2-3 dévs pour régler le souci, ce ne sera peut-être pas le cas pour toutes les boites.

En rapport : la comparaison sur Talos principle.
0  0 
Avatar de math_lab
Membre éprouvé https://www.developpez.com
Le 16/05/2016 à 12:09
Talos principle est un très mauvais exemple, les développeurs ont admis que le moteur n’était pas du tout optimisé pour vulkan et que c'est juste un portage rapide pour prouver que vulkan marche. Si le moteur est basé sur un modèle a la d3d11, faire un version vulkan/d3d12 sans une refonte complète du moteur n'apportera rien au niveau perfs. Si après on rajoute le fait que les drivers sont encore très jeunes, on arrive a des performances moindres. Il faut aussi savoir que les drivers de nvidia (et probablement amd) 'trichent' énormément et vont jusqu’à changer le renderer des jeux (shaders speciaux, formats differents, ordre d'execution différent) pour améliorer les performances (c'est pour ça qu'il y a toujours une grosse release de driver a la sortie d'un gros jeu). Il est donc fort probable qu'aucune de ces optimisations soient sur le driver vulkan.

J'avais vu une nouvelle analyse de Talos il y a quelque jours qui montrait que Vulkan était maintenant un poil plus rapide que les autres renderers, mais je me souviens plus du tout ou...
2  0 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 16/05/2016 à 12:20
Citation Envoyé par CrankFlash Voir le message
Oui, Vulkan, comme DX12 permettent de meilleurs perfs CPU. Au niveau GPU ya rien qui change.
Il ne faut pas oublier que c'est le CPU qui, dernièrement, ralentit le GPU. D'une part, OpenGL n'est pas prévu pour une utilisation multithread, alors que c'est la norme sur nos machines actuelles. D'une autre part, c'est le CPU qui envoie les données à jour (modèles 3D, scène, et tout un tas de trucs mis à jour fréquemment) au GPU. Si le CPU peine à nourrir le GPU, alors le GPU est sous utilisé. C'est de cette problématique que Vulkan et Direct3D 12 sont sortis (et apportent la solution d'un meilleur contrôle du GPU (contrôle plus bas niveau) et une surcouche pilote moins lourde (car, il y avait de sérieux problème aussi à ce niveau là et pas que de perfs).
1  0 
Avatar de Dabou Master
Membre expert https://www.developpez.com
Le 17/05/2016 à 10:58
Par rapport à ton message LittleWhite, j'en déduis qu'une application de modélisation 3D qui tourne sur OpenGL comme Blender aurait fort à gagner là dessus (après j'interprète peut-être mal).
J'imagine qu'un gros, très gros modèle 3D (disons au dessus de 2M de triangles) qu'on sculpte, avec une topologie dynamique en plus (au passage de la brosse on peut soit diminuer soit augmenter la concentration de triangles à un endroit donné), il doit y avoir énormément de données que le CPU a à envoyer au GPU. Or il s'avère que la plupart du temps le viewport semble bien plus malmener le CPU que le GPU, je me dis que c'est peut-être un goulot d'étranglement ?
Comme je pars peut-être dans un non-sens terrible, ma question serait :
à puissance CPU égale, vulkan apporte-t-il vraiment un plus non négligeable par rapport à OpenGL ?

Et pour les autres questions d'un type qui patauge complètement dans ce sujet habituellement :
- Est-ce que les logiciels de 3D sont un cas particulier ? (après tout le viewport a toujours un rendu vieillot par rapport aux jeux je ne comprends pas toujours pourquoi)
- Quand est-ce qu'OpenGL (ou dx) laisse place à "autre chose" ? (Dans le sens où j'imagine que quand on entre dans le renderer en "pré-calcul" on n'a plus vraiment affaire à ces bibliothèques ?)

PS. J'imagine que je suis pénible à tout rapporter à Blender ^^, mais pour ma défense j'essaie juste de comprendre pourquoi les développeurs semblent vouloir faire migrer des parties vers Vulkan (pareil ce que je dis n'a peut-être aucun sens et qu'on ne peut pas migrer des "parties" alors que j'avais cru (peut-être mal) comprendre que les bénéfices seraient quasi-inexistants pour ce logiciel, d'après des réponses à mes questions (peut-être mal posées ...) sur d'autres sujets parlant de Vulkan.
0  0 
Avatar de foetus
Expert éminent https://www.developpez.com
Le 17/05/2016 à 11:09
Regardes ici : Découvrir Vulkan et son architecture

En gros tu passes d'une pile d'instructions (machine à états globale) à un modèle où les développeurs se débrouillent avec la mémoire (avec un ensemble de tampons, de buffers et autres) et avec les synchronisations CPU-GPU.
1  0 
Avatar de super_navide
Nouveau Candidat au Club https://www.developpez.com
Le 17/05/2016 à 11:42
Hello je suis le développeur d'un moteur 3D donc je sais forcement de quoi je parle cf

L'apport de vulkan est surtout bien c'est vrai pour le multithread et surtout pour les compute shader et tous ce qui est calcul non lie directement a la 3D.
Mais c'est réellement pas indispensable avec l'augmentation du nombre de coeur sur les CPU tous les calculs de simulation physique et autre finiront par rivaliser en terme de performance avec les cartes graphique en plus il plus facile de développer des programme C++ sur le CPU que des shaders ... (qui sont des usine à gaz ).
Opengl bien maitrisé sera suffisant encore tres longtemps a encore beau jours devants lui.

La seul chose que serait efficace s'est de briser la barierre GPU et CPU et avoir un seul de type de processeur en quantité importante et non spécialisé.
Donc pour conclure Vulkan aurait pu être beaucoup mieux.... et OpenGL reste un standard eprouvé...
1  5 
Avatar de math_lab
Membre éprouvé https://www.developpez.com
Le 17/05/2016 à 11:42
Je pense pas que blender ait beaucoup a y gagner dans ce cas: envoyer de la géométrie au gpu, c'est pareil pour OpenGL et Vulkan. L’intérêt de Vulkan c'est pour tout ce qui est de paramétrer le rendu (quel objet afficher avec quel mode de rendu, avec quel paramètres), parce que le driver n'a plus a attendre le résultat de 40 commandes avant de pouvoir commencer a bosser (on envoi un gros buffer avec tout dedans, et on le réutilise d'une image a l'autre, donc le gros du travail n'est fait qu'une fois).

Dans cette vidéo on voit qu'Opengl s'en sort aussi bien que Vulkan jusqu’à ce que la camera recule et que le nombre d'objets augmente:
2  0 
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -

Partenaire : Hébergement Web