Developpez.com - Rubrique 2D-3D-Jeux

Le Club des Développeurs et IT Pro

La spécification de Vulkan 1.2 est disponible :

Un aperçu des nouvelles fonctionnalités de la bibliothèque bas niveau de rendu et de programmation sur GPU

Le 2020-01-18 11:50:35, par LittleWhite, Responsable 2D/3D/Jeux
Vulkan est une bibliothèque bas niveau permettant de faire des rendus graphiques et de la programmation sur GPU. La spécification définit une bibliothèque multiplateforme ayant un faible impact sur les performances (impact inférieur à celui d'utiliser OpenGL). Aussi, Vulkan permet un accès plus bas niveau aux fonctionnalités de la carte graphique.
La nouvelle version de la spécification est maintenant publiée. Ainsi, Vulkan 1.2 apporte :
  • 23 extensions maintenant intégrées à la spécification (faisant qu'une implémentation compatible Vulkan 1.2 aura obligatoirement ces nouvelles fonctionnalités) ;
  • de meilleures performances ;
  • une bibliothèque plus facile à utiliser.

Plus précisément, cette nouvelle version ajoute les sémaphores chronologiques (timeline semaphore) (anciennement, l'extension VK_KHR_timeline_semaphore), un modèle mémoire formel, l'indexation des descripteurs et un meilleur support des shaders écrits en HLSL (langage de Microsoft pour les shaders).


Déjà, Vulkan 1.2 est supporté dans les derniers pilotes des constructeurs NVIDIA (pilote Windows 441.99, pilote Linux 440.48.02), AMD (Radeon Software Adrenalin 2020 Edition 20.1.2), Imagination Technologies (puces IMG A-Series), Mali (architectures Bifrost et Valhall) et Stadia. Vous pouvez aussi retrouver la présentation de Vulkan 1.2 ici.

Votre opinion

Utilisez-vous Vulkan ?
Pensez-vous qu'il est toujours utile d'utiliser OpenGL ?

Source

Annonce officielle
  Discussion forum
14 commentaires
  • SkyZoThreaD
    Membre expérimenté
    Utilisez-vous Vulkan ?
    Non malheureusement, Il est beaucoup trop complexe et manque cruellement de documentation abordable pour le commun des codeurs :'(
    Pensez-vous qu'il est toujours utile d'utiliser OpenGL ?
    Bien-sûr. Tant qu'il n'y a pas besoin d'afficher des millions de polygones et des materials à 34 shaders... ça tourne bien OGL
  • Jbx 2.0b
    Membre chevronné
    Utilisez-vous Vulkan ?

    Alors pour ma part je m'y suis mit depuis 2 mois environ, et comme dit plus haut, il est effectivement très complexe. Comme j'avais pu le voir dans une présentation, utiliser OpenGL c'est un peu jouer avec des cubes pour enfants, et comparativement Vulkan c'est un peu comme construire soit-même sa voiture (pour ceux qui pensent que j'en rajoute, essayez par vous même ).

    Après bien entendu tout dépend ce qu'on veut faire avec... si on a une application avec un seul pipeline, un cycle de vie de ses objets simple (toute la vie de l'appli, quoi), on peut s'en sortir "assez rapidement". Pour ma part j'essaie de mettre au point une abstraction simple avec implémentation OpenGL et Vulkan, avec possibilité de créer, supprimer des objets à la volée... et bah je pense que j'en ai encore pour un bon moment ! Mais si je me suis mit c'est uniquement par curiosité, vu que pour au boulot on utilise des frameworks haut niveau, donc j'ai tout mon temps. Et puis l’intérêt c'est qu'on apprends beaucoup sur l'architecture GPU, et ça peut aider sur d'autres projets (même OpenGL d'ailleurs).

    Pensez-vous qu'il est toujours utile d'utiliser OpenGL ?

    Alors oui parce que OpenGL est encore la référence quand on bosse en milieu industriel & scientifique. Il est caché derrière la plupart des solutions 3D, ou utilisé directement.
    Néanmoins avec des choix comme celui d'Apple de le passer en deprecated on voit qu'il est un peu attaqué. Même si je pense personnellement que c'est stupide, vu qu'il remplit son rôle parfaitement: à savoir avoir une API simple, multiplateforme qui offre des performances correctes, sans complexité superflue.
    Parce qu'il faut bien se rendre compte que développer une application Vulkan dans une petite entreprise est un poids énorme à supporter en terme de développement et maintenance. Et qu'à mon avis il vaut mieux une application mal optimisée en OpenGL qu'une incompréhensible en Vulkan...

    Un petit schéma pour bien se rendre compte

  • dragonjoker59
    Expert éminent sénior
    Utilisez vous Vulkan ?
    Oui, tous les jours depuis 2 ans, je fignole Ashes pour le support des versions d'OpenGL entre 3.2 et 4.2.
    J'ai porté Castor3D en Vulkan.

    Pensez-vous qu'il est toujours utile d'utiliser OpenGL ?
    Malheureusement oui, ne serait-ce que pour la maintenance.
    Je pense d'ailleurs qu'il faudrait que ce soit la seule raison de l'utiliser.
    Si on veut développer une application 3D, on n'a absolument aucune raison d'utiliser une API comme OpenGL ou Vulkan, on devrait utiliser un moteur 3D.
  • dragonjoker59
    Expert éminent sénior
    Envoyé par dancingmad
    Euh... pardon ? Sur quelles API tu crois que ces moteurs 3D sont basées ? Il y a encore plein de studios qui utilisent leur propre moteur et pour de bonnes raisons. Arrêtez de croire qu'utiliser un moteur tout fait comme Unity ou Unreal vont résoudre tous les problèmes du monde.
    Je ne vois aucun intérêt d'utiliser OpenGL/DirectX/Vulkan, si l'objectif n'est pas de développer un moteur 3D (dixit celui qui en développe un depuis maintenant 13 ans...).
    Si on ne veut pas créer un moteur 3D, on en utilise un tout fait, c'est tout (Ogre3D, Irrlicht, ou que sais-je).

    Envoyé par dancingmad
    Non le problème aujourd'hui c'est que d'une part OpenGL est un foutoir sans nom et que sortir un jeu qui fonctionne sur toutes les cartes graphiques est un énorme casse-tête
    Raison de plus pour ne pas développer de moteur 3D si ce n'est pas ton besoin (je répète : on en utilise un qui s'occupe de tout ce foin).

    Envoyé par dancingmad
    OpenGL ne fonctionne plus que sur Windows, Linux et Android.
    Excusez du peu de plateformes supportées...

    Envoyé par dancingmad
    Du coup si on développe un jeu PC qui sortira peut-être plus tard sur Consoles ou sur Mac le mieux c'est encore de faire du DirectX qui est une bien meilleure API.
    Clairement, DirectX est tellement supporté sur les consoles autres que XBox (et encore, c'est pas du vanilla D3D)... et sur MacOS... et sur Android... et sur iOS... (tu remarqueras que je n'ai pas cité Linux, car grâce à Valve on a Proton)
  • LittleWhite
    Responsable 2D/3D/Jeux
    Après, même si OpenGL est déprécié, il est loin de disparaître. Il y a des solutions d'implémentation OpenGL au dessus Vulkan :
  • Kannagi
    Expert éminent sénior
    Sinon il y'a aussi Ashes pour faire du Vulkan un peu partout (il peut utiliser OGL en interne) :
    https://github.com/DragonJoker/Ashes
    Et fait par un de nos membres qui est Dragonjoker !
  • yildiz-online
    Expert confirmé
    Unity et Unreal ne sont pas des moteurs 3D, ce sont des moteurs de jeu.

    On peut faire un moteur de jeu custom avec un moteur 3d existant.
  • wax78
    Modérateur
    Y'a pas une erreur avec la version du driver windows ?

    Vulkan 1.2 support is available in Windows driver version 441.99 and Linux driver version 440.48.02
  • LittleWhite
    Responsable 2D/3D/Jeux
    En effet. Mon doigt a du glisser .
  • Kannagi
    Expert éminent sénior
    Pour ma part , je ne me suis pas mis sur Vulkan , mais j'aimerais bien si j'ai le temps !
    OpenGL utile ?
    Grande question , même si avec le temps la rétrocompatibilité rendra OGL de plus en plus complexe à maintenir !