Files
sanctuary-beta/docs/shader-vulkan-beta138.md
T
2026-09-18 01:59:13 +02:00

4.9 KiB

SHADER-139 — Compatibilité Vulkan du shader beta.138

Socle beta.138, Minecraft 26.3, Java 25, branche codex/vulkan-shaders-beta139.

Le signalement initial concernait un bloom invisible même à 100 %. Le joueur indique ensuite que le rendu fonctionne de nouveau sur Windows et demande la compatibilité Vulkan. Les changements expérimentaux d'intensité ont été retirés : les shaders et les valeurs par défaut restent ceux de beta.138.

Contrat

Utiliser les mêmes pipelines RenderPearl sur OpenGL et Vulkan. Vérifier le backend réellement utilisé, car Minecraft peut retomber sur OpenGL lorsque Vulkan ne démarre pas. Tester les effets dans de nouveaux mondes ignorés, sans ouvrir de sauvegarde personnelle ni modifier le backend de l'instance Prism.

Le lancement des tests accepte désormais -PsanctuaryClientGraphicsBackend=vulkan ou opengl. Les tests de shaders refusent tout repli silencieux et consignent le nom du backend, du GPU et du pilote. Cette option concerne uniquement le client de développement.

Reproduction

JAVA_HOME=/chemin/vers/jdk-25 ./gradlew :sanctuary:runClientGameTest \
  -PsanctuaryClientTests=true -PsanctuaryPixelShadows122ClientTests=true \
  -PsanctuaryClientGraphicsBackend=vulkan \
  -PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true

Sur Windows, utiliser gradlew.bat avec les mêmes propriétés et Java 25. Ajouter -PsanctuaryClientImprovedTransparency=true pour tester la transparence améliorée ; le choix initial est restauré après le test. Pour les rayons et la météo, remplacer sanctuaryPixelShadows122ClientTests par sanctuarySunshaft137ClientTests. Pour isoler le bloom et le lens flare, utiliser sanctuaryBloom130ClientTests.

Diagnostic initial

Le client Vulkan démarre ici sur Apple M1 / MoltenVK 1.4.2, API 1.2.350. Le test du bloom réussit en 2 min 19 s : les masques des vingt minerais, les contrôles OFF/zéro, intensité/diffusion, l'occlusion, le rechargement, les torches, glowstone, lampes, lave, soleil et le lens flare sont vérifiés. Les mesures de référence du bloom sont identiques à celles d'OpenGL : 14649 pixels de minerai, gain du halo faible 218131, fort 1970502, gain solaire 7708. Log : build/shader139-vulkan-first.log.

Cela confirme cette combinaison précise ; ce n'est pas une validation des pilotes NVIDIA/AMD/Intel sous Windows. En cas de retour du problème, le logs/latest.log de la session Windows concernée est nécessaire pour relever le backend effectif, le GPU, le pilote et les éventuelles erreurs de pipeline.

Suite Vulkan

sanctuaryPixelShadows122ClientTests réussit en 8 min 50 s. Les contrôles couvrent ombres diurnes/nocturnes, feuillage, stabilité en temps réel, highlights CTM, bloom et lens flare, SSGI en déplacement et près des surfaces, PBR directionnel, rechargement, redimensionnement et interfaces FR/EN. Log : build/shader139-vulkan-suite2.log.

Le bloom et le lens flare réussissent aussi avec sanctuaryClientImprovedTransparency=true, en 1 min 45 s. Le backend est bien Vulkan, sa profondeur est en [0, 1] et l'option de transparence est active. Les mesures du bloom restent identiques. Log : build/shader139-vulkan-transparency.log.

La suite météo/rayons beta.138 n'a pas été rejouée sous Vulkan dans ce ticket ; les résultats ci-dessus portent sur les effets explicitement listés. Le joueur confirme que le retour à OpenGL rétablit l'effet sur Windows. Ce défaut particulier reste à reproduire à partir d'un journal récent.

Un premier lancement utilisait un nom de propriété incomplet et a exécuté la suite générale, échouant dans Blocodex avant les tests de shaders. Ce lancement n'est pas compté comme une validation Vulkan des shaders. La commande corrigée utilise sanctuaryPixelShadows122ClientTests.

Construction

./gradlew check build -x :sanctuary:runGameTest réussit ; le serveur GameTest dédié reste exclu conformément au refus EULA antérieur. Log : build/shader139-check-build.log. Le JAR reconstruit est strictement identique, octet pour octet, au JAR Sanctuary de la release beta.138. La distribution ne change pas et ne nécessite donc pas de nouvel assemblage.

Distribution

Ce ticket ajoute des options de lancement de tests et leur documentation. Les shaders de production et les réglages de beta.138 ne sont pas changés. Aucune nouvelle livraison binaire, aucun tag beta.139 ni mise à jour de l'instance personnelle n'est effectué pour une vérification seule.

Référence du moteur

Minecraft 26.3 compile les shaders OpenGL et Vulkan via ShaderC et expose RENDERPEARL_DEPTH_IS_ZERO_TO_ONE pour la convention de profondeur. Notes officielles Minecraft 26.3. Les effets Sanctuary transmettent déjà la convention du périphérique aux reconstructions de position ; aucun remplacement spéculatif n'est appliqué.