La spécification d'OpenGL 4.6 est maintenant disponible
Le langage intermédiaire de shader, SPIR-V, intègre la spécification d'OpenGL


C'est à l'occasion du SIGGRAPH 2017, la plus grande conférence liée aux technologies de l'imagerie par ordinateurs que le consortium Khronos (NVIDIA, AMD, Intel, Apple...) a annoncé la publication de la spécification d'OpenGL 4.6. Cette nouvelle version intègre de nombreuses extensions dans le cœur d'OpenGL, ainsi si un pilote graphique indique supporter OpenGL 4.6, alors vous avez la certitude que la fonctionnalité est présente. De plus, la représentation intermédiaire pour les shaders, SPIR-V, introduite avec Vulkan est maintenant disponible au travers de la bibliothèque. Les applications OpenGL vont donc bénéficier des mêmes avantages que Vulkan : la possibilité d'embarquer un code intermédiaire, portable et facilement interprétable, pour les shaders et non plus directement du code source.

Plus précisément, les extensions suivantes sont intégrées dans la spécification :
  • GL_ARB_gl_spirv et GL_ARB_spirv_extensions pour le support de SPIR-V ;
  • GL_ARB_indirect_parameters et GL_ARB_shader_draw_parameters pour réduire le coût CPU du rendu de batch de géométries ;
  • GL_ARB_pipeline_statistics_query et GL_ARB_transform_feedback_overflow_query pour apporter à OpenGL les fonctionnalités de Direct3D permettant d'obtenir des statistiques ;
  • GL_ARB_texture_filter_anisotropic (basée sur GL_EXT_texture_filter_anisotropic) pour standardiser la fonctionnalité des filtres anisotropes afin d'augmenter la qualité visuelle des scènes texturées ;
  • GL_ARB_polygon_offset_clamp (basée sur GL_EXT_polygon_offset_clamp) pour supprimer les artefacts visuels appelés "light leak" associés au rendu des ombres ;
    Nom : K69JKyS.png
Affichages : 3358
Taille : 12,5 Ko
  • GL_ARB_shader_atomic_counter_ops et GL_ARB_shader_group_vote ajoutent des opérations intrinsèques ;
  • GL_KHR_no_error, une méthode pour indiquer au pilote que le code ne peut pas provoquer d'erreur et ainsi éviter la génération des erreurs.


De nouvelles extensions intègrent la version 4.6 :
  • GL_KHR_parallel_shader_compile qui permet aux applications de lancer la compilation de plusieurs shaders à la fois ;
  • WGL_ARB_create_context_no_error et GXL_ARB_create_context_no_error pour permettre la création de contexte WGL ou GLX sans erreur supportant l'extension GL_KHR_no_error.


Vous pouvez retrouver la spécification ici.

Évidemment, le support de cette nouvelle spécification va suivre très rapidement chez les constructeurs de carte graphique. NVIDIA propose déjà une version bêta de son pilote avec le support d'OpenGL 4.6. De plus, l'implémentation libre Mesa ne sera pas, pour la première fois du projet, trop en retard d'après David Arlie, développeur principal senior chez Red Hat et travaillant sur Mesa.


Votre opinion

Que pensez-vous de ces nouvelles fonctionnalités ? Lesquelles comptez-vous utiliser dès à présent ?
Utilisez-vous les dernières versions d'OpenGL et voyez-vous un intérêt à passer à la version 4.6 ?
Trouvez-vous appréciable cette mise à jour ou pensez-vous qu'il faille absolument passer à Vulkan dorénavant ?


Ressources

Tous les tutoriels sur OpenGL Moderne

Khronos publie la spécification d'OpenGL 4.5 et apporte le contrôle de fllush et l'accès direct aux états
Khronos publie la spécification d'OpenGL ES 3.1, la bibliothèque 3D pour les systèmes embarqués et mobiles intègre les compute shaders
Khronos publie la spécification d'OpenGL 4.4 et intègre les dernières technologies dans le coeur de la bibliothèque
Sortie des spécifications d'OpenGL 4.3 et OpenGL ES 3.0, annoncée par le groupe Khronos à la conférence SIGGRAPH 2012


Source

Khronos