Couverture de l'article Vulkan, le nouvel OpenGL en mieux ?
Retour aux articles

L'agence

WanadevStudio

Vulkan, le nouvel OpenGL en mieux ?

OpenGL, ça a déjà 25 ans ! Et en 25 ans, il s'en passe des choses... Alors voici un petit article de veille sur Vulkan, le nouvel OpenGL, mais en mieux !

En quoi Vulkan est il l’évolution d’OpenGL ?

Quelques petits rappels, c’est quoi OpenGL ?

  • Une API de rendu 3D. En gros plein de fonctions qui permettent de faire de la 3D : afficher de la géométrie, changer sa couleur, mettre une texture dessus, etc.
  • Multi-OS : ça fonctionne aussi bien sur Windows que sur Linux.
  • Évolutif, grâce à un système d’extensions : si les cartes graphiques de demain embarquent de nouvelles fonctionnalités, celles-ci ne tarderont pas à devenir une extension OpenGL qui, si elles sont disponibles sur notre ordinateur, seront exploitées par les jeux les plus récents.

Ou plus brièvement ça sert à faire de la 3D sur un PC en utilisant la carte graphique. Ce qui donc nous intéresse ici énormément, compte-tenu de notre activité intimement liée à du développement 3D avec WebGL.

Un peu d'histoire autour d'OpenGL

@ D’un point de vue historique, OpenGL est né à l’aube de la 3D, en 1992. Étant donné que tout ceci était nouveau pour l’époque, on a fait quelques bourdes sur le chemin qui nous mène à aujourd’hui (et à Vulkan).

Pour commencer, OpenGL était géré par le consensus ARB (Architecture Review Board). L’ ARB c’est un regroupement de plein de boîtes pour lesquelles OpenGL a un enjeu. Donc en gros elles payent pour avoir un siège au sein de ce consensus, et pouvoir participer à l’élaboration des nouvelles versions d’OpenGL, donner leurs avis, restrictions, etc.

Le but de ce consensus c’est aussi qu'OpenGL soit disponible gratuitement sur un maximum de machines.

Plus tard, en 2006, l’ARB a voté pour que la gestion d’OpenGL soit transférée au Khronos Group. Le Khronos Group qui s'occupait déjà d’OpenGL ES (la version embarquée d’OpenGL), OpenCL (une bibliothèque pour faire du calcul parallèle), et bien d’autres choses relatives au monde de la 3D et du GPU.

Et Vulkan dans tout ça ?

Pour ce qui est de ce qu’est Vulkan, c’est étonnement simple. Vulkan c’est comme OpenGL, ça sert à faire de la 3D.

En tout cas c’est ce qu’on ce dit quand on entre pas dans les détails. Mais nous on veut savoir en quoi c’est une évolution, donc les différences, alors allons-y.

Le Khronos Group et Vulkan, une affaire qui marche depuis le début

Le Khronos Group, c'est solide. Et Vulkan, c'est de la 3D. Donc l'association des deux donnera un bon terreau pour faire grandir Vulkan.

Les shaders, c'est mieux sur Vulkan

@ Un des grands problèmes avec OpenGL, c’était les shaders, c’était un peu de la magie : on donnait le code tel quel à notre application OpenGL et bam ça modifiait notre géométrie, notre couleur, notre forme, notre lumière, etc...

Donc ça marchait, hein... mais le problème c'est que nous ne pouvions pas voir la version compilée. Donc nous ne pouvions pas optimiser notre code, nous n'avions aucun contrôle sur la sortie et le code était entièrement compilé par le driver, ce qui prend du temps. Bref tout ça c’est pas terrible.

Des erreurs à ne pas reproduire

On a commencé par faire un compilateur vers un langage intermédiaire (le fameux SPIR-V), donc on fournit notre GLSL (le langage de shader d’OpenGL) au compilateur et en sortie on obtient du spir-v binarisé.

@ Ce qu'on y gagne ? Ça simplifie le driver, et on gagne du temps puisque tout est compilé en amont. En plus de ça un ensemble d’outils ont été développés pour donner davantage de contrôle aux développeurs.

On peut vraiment tout faire avec une sortie SPIR-V binarisée, la dé-binariser pour la modifier, la transpiler vers du HLSL (langage de shader DirectX concurrent d’OpenGL et Vulkan développé par Microsoft), bref nous sommes enfin libres.

Vulkan apporte aussi une nouvelle philosophie bien fraîche et bien plus bas niveau

Depuis le temps qu’OpenGL est là, les ordinateurs ont bien changé. Nous avons désormais des CPU multi-cœurs, des cartes graphiques complètement programmables, etc.

Pour puiser un maximum de toutes ces évolutions, Vulkan a adapté une philosophie très bas niveau où nous avons un contrôle total sur la carte graphique.

Nous développons vraiment directement ce que doit faire la carte graphique et comment elle va le faire. Tout cela était auparavant le travail du driver, aujourd’hui c’est celui du développeur. En gros : c'est plus précis, plus fin.

Aussi il faut noter que le travail de la carte graphique est asynchrone. Ce qui veut dire que lorsque nous lui demandons d'exécuter une tâche, le processeur va faire autre chose en même temps. La parallélisation des tâches, forcément, c'est mieux.

@ Ainsi, avec une application Vulkan, on peut utiliser toutes les ressources du processeur, sans jamais attendre que la carte graphique finisse une tâche longue.

Vulkan : l’unification du mobile et du bureau.

La dernière grosse évolution de Vulkan (et pas la moindre) est l’unification de l’API 3D utilisée pour le mobile (OpenGL ES), et de celle utilisée pour les PC (OpenGL).

@ Avant il y avait donc deux APIs, donc deux spécifications différentes, ce qui demandait soit de faire une version mobile et une version PC de l’application, soit de faire une version du moteur pour le mobile, et une autre pour le PC.

Ce double développement pour un fonctionnement PC / Mobile est désormais de l’histoire ancienne, car Vulkan fonctionne aussi bien sur mobile que sur PC. Bien sur, il y a des choses qui vont être un peu différentes sur mobile mais une partie du boulot de portage de l’un à l’autre n’est plus à faire.

Vulkan, OpenGL en mieux ?

Pour faire bref :

  • Vulkan n'a pas fait les mêmes erreurs qu'OpenGL ;
  • Il est puissant car il y a plus de maîtrise ;
  • Les évolutions seront plus intéressantes
  • Unification des développements Mobile / Desktop

Quelques liens complémentaires

  • Couverture de l'article #2 - Module Federation et Vue à l'ère de l'IA : retour de la MadVue 2026
    #2 - Module Federation et Vue à l'ère de l'IA : retour de la MadVue 2026

    Il y a 3 mois

    Voici la seconde partie de mon retour sur la MadVue 2026, la conférence Vue.js qui s'est tenue à Madrid le 22 mai 2026. Si vous avez manqué le début, la première partie est juste ici :

    Après les fondations de l'application Vue moderne, on change d'échelle et d'époque. Dans cet article, on va voir comment partager des composants entre plusieurs applications Vue avec Module Federation, puis trois talks consacrés à Vue et l'intelligence artificielle : faire générer une interface en direct par un LLM, préparer son projet Vue pour les agents, et enfin apprendre le frontend à l'ère de l'IA.

    C'est parti !

    Photo de Louis GOURAIN auteur de l'article

    Louis GOURAIN

    Lire la suite
  • Couverture de l'article #1 - Temps réel, URLs typées, formulaires et toolchain : retour de la MadVue 2026
    #1 - Temps réel, URLs typées, formulaires et toolchain : retour de la MadVue 2026

    Il y a 3 mois

    Le 22 mai 2026, je me suis rendu à Madrid pour la MadVue 2026, la conférence espagnole dédiée à l'écosystème Vue.js. Une journée dense, neuf talks, et une tendance de fond très claire : entre une grosse moitié orientée IA et expérience développeur et une autre consacrée aux fondations qui rendent nos applications soutenables.

    Dans cette série de deux articles, je reviens sur l'ensemble des talks. En les lisant, vous aurez l'impression d'y avoir assisté.

    Cet article est le premier des deux, vous pourrez retrouver chaque partie de cette série ici :

    Dans ce premier article, on pose les fondations d'une application Vue moderne : on verra comment faire du temps réel proprement, comment en finir avec le parsing manuel des paramètres d'URL, un tout nouveau modèle pour construire ses composants de formulaire, l'avènement d'une toolchain JavaScript unifiée (Oxc, Rolldown), et ce qui nous attend avec Nuxt 5.

    Beaucoup de sujets à traiter, alors c'est parti !

    Photo de Louis GOURAIN auteur de l'article

    Louis GOURAIN

    Lire la suite
  • Couverture de l'article #4 - Construire un DOM Virtuel, les différentes méthodes de rendu et bien écrire ses tests : retour de la Vue.js Amsterdam 2023
    #4 - Construire un DOM Virtuel, les différentes méthodes de rendu et bien écrire ses tests : retour de la Vue.js Amsterdam 2023

    Il y a 3 ans

    Pour la première fois, Wanadev s’est rendu à la plus grosse conférence annuelle autour de Vue.js : la Vue.js Amsterdam 2023. J’ai eu l’honneur d’assister à la 5ème édition, couronnée par le retour d’Evan You, le créateur de Vue.js et Vite, en personne.

    Dans cette série de quatre articles, je vais vous faire revivre ces deux jours de conférences. En les lisant, vous aurez l’impression d’y avoir assisté !

    Cet article est le troisième des quatre, vous pourrez retrouver chaque partie de cette série ici :

    Dans cet article nous allons voir comment construire un Virtual DOM, on parlera des différentes façons de faire du rendu dans le web, de comment écrire des bons tests et plein d’autres choses.

    Beaucoup de sujets à traiter, alors, c’est parti !

    Photo de Louis GOURAIN auteur de l'article

    Louis GOURAIN

    Lire la suite
  • Couverture de l'article #3 - Vue.js en 2023, l'avenir de Vue Router, les patterns avec Pinia  : retour de la Vue.js Amsterdam 2023
    #3 - Vue.js en 2023, l'avenir de Vue Router, les patterns avec Pinia : retour de la Vue.js Amsterdam 2023

    Il y a 3 ans

    Pour la première fois, Wanadev s’est rendu à la plus grosse conférence annuelle autour de Vue.js : la Vue.js Amsterdam 2023. J’ai eu l’honneur d’assister à la 5ème édition, couronnée par le retour d’Evan You, le créateur de Vue.js et Vite, en personne.

    Dans cette série de quatre articles, je vais vous faire revivre ces deux jours de conférences. En les lisant, vous aurez l’impression d’y avoir assisté !

    Cet article est le troisième des quatre, vous pourrez retrouver chaque partie de cette série ici :

    Dans cet article on va parler de Vue en 2023, de patterns Pinia, du futur de vue-router, de l’écosystème Vue et de TypeScript avec Vue.

    Beaucoup de sujets à traiter, alors, c’est parti !

    Photo de Louis GOURAIN auteur de l'article

    Louis GOURAIN

    Lire la suite
  • Couverture de l'article #2 - Nuxt.js, l'art de la composition, accessibilité : retour de la Vue.js Amsterdam 2023
    #2 - Nuxt.js, l'art de la composition, accessibilité : retour de la Vue.js Amsterdam 2023

    Il y a 4 ans

    Pour la première fois, Wanadev s’est rendu à la plus grosse conférence annuelle autour de Vue.js : la Vue.js Amsterdam 2023. J’ai eu l’honneur d’assister à la 5ème édition, couronnée par le retour d’Evan You, le créateur de Vue.js et Vite, en personne.

    Dans cette série de quatre articles, je vais vous faire revivre ces deux jours de conférences. En les lisant, vous aurez l’impression d’y avoir assisté !

    Cet article est le second des quatre, vous pourrez retrouver chaque partie de cette série ici :

    Dans cet article on va parler de Nuxt en 2023, d’un client Mastodon fait avec Nuxt, d’expérience développeur sur Nuxt, de Nitropack, de CSS-in-TS, de comment concevoir ses composants Vue.js, d’accessibilité et de maintenance d’écosystème open-source en entreprise.

    Beaucoup de sujets à traiter, alors c’est parti !

    Photo de Louis GOURAIN auteur de l'article

    Louis GOURAIN

    Lire la suite
  • Couverture de l'article #1 - NPM Package, PlayWright, Google LightHouse : retour de la Vue.js Amsterdam 2023
    #1 - NPM Package, PlayWright, Google LightHouse : retour de la Vue.js Amsterdam 2023

    Il y a 4 ans

    Pour la première fois, Wanadev s’est rendu à la plus grosse conférence annuelle autour de Vue.js : la Vue.js Amsterdam 2023. J’ai eu l’honneur d’assister à la 5ème édition, couronnée par le retour d’Evan You, le créateur de Vue.js et Vite, en personne.

    Dans cette série de quatre articles, je vais vous faire revivre ces deux jours de conférences. En les lisant, vous aurez l’impression d’y avoir assisté !

    Cet article est le premier des quatre, vous pourrez retrouver chaque partie de cette série ici :

    Dans cet article, nous allons parler de Rock’n Roll, voir comment créer son package NPM, découvrir PlayWright pour tester ses applications de bout en bout, parler de commerce international, déconstruire les idées reçues sur Google Lighthouse et aborder le sujet de la performance sous Vue.js.

    Beaucoup de sujets à traiter, alors c’est parti !

    Photo de Louis GOURAIN auteur de l'article

    Louis GOURAIN

    Lire la suite