12 points par GN⁺ 2026-02-20 | 3 commentaires | Partager sur WhatsApp
  • Minecraft Java Edition fait passer son moteur de rendu graphique d’OpenGL à Vulkan
  • L’arrêt des mises à jour d’OpenGL utilisé depuis les années 1990 et la fin du support sur macOS sont à l’origine de ce changement
  • Vulkan est pris en charge nativement sur Windows et Linux ; sur macOS, il est pris en charge via une couche de traduction, sans perte de performances
  • Cette transition devrait permettre une amélioration de la qualité visuelle et du framerate
  • Après des tests parallèles d’OpenGL et de Vulkan dans les snapshots, OpenGL devrait être retiré une fois la stabilité assurée

Bringing modern rendering to Java

  • Dans Minecraft: Java Edition, les préparatifs pour Vibrant Visuals se poursuivent, avec une refonte et une modernisation du code de rendu
    • Les mises à jour précédentes ont déjà permis d’améliorer la structure du code de rendu
    • Le projet entre désormais dans une phase où la technologie de base du rendu elle-même est remplacée
  • La technologie de rendu du jeu doit passer d’OpenGL à Vulkan
    • L’objectif est d’ouvrir de nouvelles possibilités sur le plan graphique et des performances
    • La communauté du modding et certains joueurs devraient en ressentir les effets

What are we changing?

  • Actuellement, Java Edition utilise l’API graphique OpenGL, conçue dans les années 1990
    • Le jeu repose sur OpenGL depuis ses débuts
  • OpenGL avait été choisi parce qu’il permettait de prendre en charge Linux, Windows et macOS
    • Le jeu a été conçu pour pouvoir tourner sur presque tous les PC et Mac
  • OpenGL n’a plus été mis à jour depuis 9 ans, est en état de Deprecated sur macOS, et finira par ne plus pouvoir y être exécuté
  • Pour rester compatible avec macOS, il fallait rester sur une ancienne version d’OpenGL, ce qui compliquait la modernisation de la base de code
  • Il est donc nécessaire de quitter OpenGL pour que Java Edition continue de fonctionner sur la plupart des PC, y compris sous macOS et Linux

Introducing: Vulkan

  • Vulkan est une API graphique utilisée sur le marché depuis plus de 10 ans, adoptée par les principaux fabricants de matériel
  • Elle est prise en charge nativement sur Windows et les versions récentes de Linux ; sur macOS, elle peut être prise en charge via une couche de traduction, sans perte de performances
  • À long terme, elle ouvre la voie à de meilleures performances et à davantage de possibilités fonctionnelles
    • Elle fournit la base nécessaire à la mise en œuvre de Vibrant Visuals
  • Si votre GPU a plus de 10 ans, il est possible qu’il ne prenne pas en charge Vulkan

What does this mean for modders?

  • Le passage d’OpenGL à Vulkan aura un impact sur les mods de rendu basés sur OpenGL
  • Le travail d’adaptation à Vulkan devrait demander plus d’efforts qu’une simple compatibilité avec une version standard
  • Il est recommandé à la communauté du modding de réduire sa dépendance à OpenGL
    • Il est conseillé de réutiliser autant que possible l’API de rendu interne
    • Si nécessaire, des discussions techniques directes avec l’équipe de développement sont possibles
  • Des échanges techniques ont lieu sur le canal Discord Vibrant Visuals
    • Ce n’est pas un canal d’annonces, mais un espace de discussion technique approfondie entre développeurs

What does this mean for players?

  • Certains mods pourraient être affectés pendant la transition
    • Les créateurs de mods auront besoin de temps pour publier des mises à jour
  • Dans de futurs snapshots, OpenGL et Vulkan seront proposés en parallèle
    • Il sera possible de choisir le moteur de rendu dans les snapshots comme dans les versions stables
    • Des travaux seront menés en parallèle pour garantir la stabilité et limiter les bugs
  • Les bugs doivent être signalés via bugs.mojang.com

When is this happening?

  • L’objectif est d’introduire Vulkan dans les snapshots de test pendant l’été
  • Pendant la période de test, il sera possible de basculer entre OpenGL et Vulkan
  • Une fois la stabilité et les performances validées, l’implémentation OpenGL sera supprimée
    • Une annonce préalable sera faite avant ce retrait
    • La configuration minimale requise sera mise à jour

Vulkan and Vibrant Visuals

  • La modernisation du moteur de rendu est une étape clé de la feuille de route de Vibrant Visuals
  • Le passage à Vulkan devrait élargir les possibilités d’amélioration graphique et renforcer les capacités en matière de performances
  • Une réduction des bugs liés aux pilotes est attendue
  • L’un des objectifs principaux est d’assurer la pérennité de l’exécution sur macOS
    • Afin de garantir que les joueurs sur tous les systèmes d’exploitation pris en charge puissent en bénéficier de la même manière

Signification de la mise à jour

  • Cette transition constitue une étape importante pour Minecraft Java, qui adopte une pile graphique moderne
  • Elle renforce les fondations techniques du moteur du jeu, en préparant une structure plus favorable à l’extension future et à l’ajout de fonctionnalités
  • Le passage d’OpenGL à Vulkan s’inscrit aussi dans le renouvellement générationnel des API graphiques à l’échelle de l’industrie du jeu vidéo

3 commentaires

 
GN⁺ 2026-02-20
Commentaires sur Hacker News
  • J’espère qu’avec le temps, la surcharge CPU sur le thread principal va diminuer
    Si les jeux portés de DX11 à 12, ou d’OpenGL à Vulkan, ont gagné en performances, ce n’est pas seulement grâce au changement d’API, mais parce qu’ils ont pu exploiter la capacité à traiter les draw calls en parallèle
    Dans Minecraft, le CPU est le goulot d’étranglement avant même que le GPU n’atteigne sa limite de rendu, donc j’espère que ce changement laissera aussi plus de marge CPU dans l’environnement de modding

    • J’utilise Unigine Heaven pour benchmarker mes systèmes Linux
      Juste pour voir, j’ai lancé la version Windows via Proton, et les performances ont augmenté de 30 %
      J’imagine que c’est grâce au multithreading de la bibliothèque dxvk utilisée par Proton
    • Vulkan offre des fonctionnalités permettant d’exécuter certains calculs directement sur le GPU, donc cela pourrait aider à accélérer le rendu voxel
  • Je trouve que c’est un bon choix que Minecraft Java Edition, réservé au desktop, puisse éviter les problèmes de pilotes Vulkan sur mobile
    Cela dit, pour une entreprise de la taille de Microsoft, je pensais qu’ils auraient les moyens de créer un RHI multiplateforme utilisant des API stables selon la plateforme (DX12, Metal)

    • Microsoft est grand, mais pas les studios Mojang
      Maintenir trois versions du renderer Java représente une lourde charge, et comme l’écosystème du modding est central, ce changement à lui seul risque déjà de provoquer pas mal de confusion
      Je ne pense pas qu’il faille compliquer encore davantage la maintenance des mods de shaders
    • Bedrock Edition utilise bgfx (source officielle)
    • Sur mobile, des launchers tiers utilisent ANGLE pour passer par des pilotes EGL ou Metal
    • Le choix entre Vulkan et DX12 n’est en réalité qu’une différence de façade
      On peut déjà faire tourner Vulkan sur macOS, donc je vois mal pourquoi choisir DX12 pour un nouveau projet
  • Sur mon vieux Acer C720 Chromebook (iGPU Intel HD4400), Vulkan n’est pas pris en charge, donc j’ai l’impression que Minecraft va casser
    C’était bien, avant, que ça tourne sur presque n’importe quel matériel

    • S’il est possible de basculer entre le rendu OpenGL et le rendu Vulkan, je pourrai sans doute continuer à jouer en OpenGL
    • On peut toujours lancer d’anciennes versions de l’édition Java, donc rien n’empêche de continuer à profiter de la 1.7.10
    • Avec les pilotes Mesa, ce chipset prend en charge certaines fonctionnalités Vulkan
    • J’utilise encore moi aussi un C720. Il est dans un boîtier pour du matériel SDR, et c’est vraiment l’un de mes ordinateurs préférés
    • C’est intéressant de voir qu’OpenGL a atteint la meilleure compatibilité sur autant d’appareils différents
  • Je me demande pourquoi ils ne déplacent pas les commentaires vers le post source (fil lié)

    • On dirait encore un exemple montrant qu’au final, le timing compte plus que le contenu
  • C’est intéressant de voir Microsoft se rapprocher davantage des standards Khronos qu’Apple
    Ils ont adopté SPIR-V comme format d’entrée et de sortie du compilateur de shaders DirectX, ce qui améliore l’interopérabilité avec Vulkan

    • Microsoft avait déjà adopté SPIR-V auparavant, en grande partie pour limiter les forks, notamment grâce à une partie du travail déjà effectuée par Google
      Apple était très mécontent de la manière dont OpenCL était géré, et Sony comme Nintendo ne s’intéressent presque pas à Khronos
      En pratique, les API Khronos souffrent d’un problème d’extensions en spaghetti, ce qui nuit à une portabilité complète
  • VulkanMod apporte de gros gains de performances, mais il n’est compatible qu’avec une petite partie des mods
    Si on peut un jour utiliser Vulkan dans des modpacks complets, ce sera vraiment enthousiasmant

  • J’aimerais que Vibrant Visuals arrive vite aussi sur Java Edition
    C’est dommage qu’il faille toujours passer par un mod pour utiliser des shaders

    • En réalité, depuis la 1.17, on peut directement inclure des shaders GL dans un resource pack
      L’installation peut se faire en glissant-déposant un fichier .zip, sans loader compliqué ni risque de sécurité
      C’est moins flexible qu’Aperture, Iris ou Optifine, mais les fonctionnalités sont assez proches
      Je me demande s’il sera aussi possible d’inclure des shaders Vulkan dans un resource pack. Cela dit, les limitations resteront peut-être plus strictes à cause du risque de casser certaines fonctions du jeu
    • Jouer à Java Edition sans mods, c’est un peu étrange. À ce compte-là, Bedrock n’est-il pas plus simple ?
  • Je ne savais pas qu’il existait des bindings Vulkan pour Java. J’imagine que ça passe par JNI
    Je suis aussi surpris qu’ils utilisaient encore OpenGL. Je ne connais pas bien l’état actuel de Minecraft, mais j’ignorais aussi qu’il existait une version desktop non-Java

    • JNI est désormais, en pratique, remplacé par la Foreign Function & Memory API
      La gestion mémoire est bien plus propre, et les bindings avec des fonctions externes (comme Vulkan) sont beaucoup plus simples
      À mon avis, c’est l’une des fonctionnalités les plus sous-estimées de Java récent
    • J’espère qu’ils utiliseront l’API FFM plutôt que JNI
  • Je me demande pourquoi ils continuent à maintenir deux versions du même jeu

    • À l’origine, ils voulaient basculer complètement sur Bedrock, mais comme l’API de modding était insuffisante et qu’il y avait beaucoup de bugs, Java reste toujours la version préférée
      Bedrock a presque rattrapé son retard sur les fonctionnalités, mais le remplacement complet a échoué
    • Java est au cœur de la communauté de modding, et s’en débarrasser risquerait de faire s’effondrer tout l’écosystème YouTube et Twitch
      Bedrock offre de bonnes performances et une bonne portabilité, mais de toute façon, sur console, le modding reste impossible
    • Si l’écosystème Java disparaît, le jeu lui-même pourrait en mourir
      90 % du contenu sur YouTube repose sur Java, donc Microsoft se concentre sur l’équivalence fonctionnelle
    • Le modding est limité sur Bedrock, et la communauté Java ne s’y intéresse pas
      Du point de vue de Microsoft, maintenir les deux versions pour maximiser les revenus est rationnel
    • Si Java était abandonné, beaucoup de joueurs, moi y compris, arrêteraient le jeu
  • J’espère qu’ils ont bien géré le problème des latences de compilation des shaders Vulkan

    • Le renderer de Minecraft dépend peu des PSO, donc il ne devrait pas y avoir de gros problèmes de micro-saccades liées aux états
      Ce n’est pas un système de matériaux complexe, mais un simple renderer voxel
    • Vulkan fournit tous les outils nécessaires pour éviter les latences causées par la compilation des shaders
      Les problèmes apparaissent surtout quand le moteur génère trop de combinaisons de shaders, ou quand certains états GPU spécifiques (par exemple le blending) provoquent une recompilation des shaders
      Dans les versions récentes de Vulkan, la plupart de ces états peuvent être gérés comme dynamic state, ce qui atténue le problème
      En revanche, certains états comme le blending peuvent encore entraîner une recompilation
      Autrement dit, si les développeurs évitent ces états dynamiques problématiques, ces latences peuvent être facilement évitées
    • À mon avis, ce n’est pas un défaut de Vulkan, mais plutôt un manque d’optimisation de la part des développeurs
      De nos jours, beaucoup de grands studios négligent l’optimisation technique
    • Vu de l’extérieur, on peut se demander si des shaders précompilés ne suffiraient pas à régler le problème
 
aer0700 2026-02-21

Minecraft a d’abord été développé en Java, puis après son rachat par Microsoft, il a apparemment aussi été recréé une fois en C++. Réimplémenter entièrement un jeu en changeant de langage de développement n’a certainement pas dû être une tâche facile ; c’est assez fascinant de se demander comment ils en sont arrivés là.

 
karikera 2026-02-24

On dirait qu’ils ont créé l’édition Bedrock dans un but d’optimisation pour le mobile..
Je me disais qu’ils finiraient peut-être par abandonner Java, mais au final on dirait qu’ils ont décidé de mettre à jour les deux.