Effervescence autour de la pile graphique libre

Posté par  . Édité par Benoît Sibaud. Modéré par Florent Zara. Licence CC By‑SA.
125
2
avr.
2011
Serveurs d’affichage

Ces derniers temps ont été très riches en événements dans le monde graphique libre.

Une première phase du remodelage intégral de la pile graphique de nos systèmes libres avait commencé par DRI2, apportant notamment la possibilité à un compositeur tel que Compiz de rediriger le rendu OpenGL d’une fenêtre (Redirected Direct Rendering), puis le Kernel Mode Setting (KMS) permettant de transférer la gestion des modes vidéo et de la mémoire vidéo du pilote graphique X.Org (DDX) vers le noyau, et enfin, Gallium3D, le cadriciel de Tungsten Graphics, permettant la mise en commun de nombreuses fonctionnalités auparavant implémentées dans chaque pilote graphique.

Très récemment, le noyau 2.6.38 a apporté le kernel page flipping, permettant l’arrivée du futur serveur d’affichage Wayland développé par Kristian Høgsberg (également auteur de DRI2 et de AIGLX) et popularisé par Mark Shuttleworth (qui souhaite son adoption dans Ubuntu dès l’année prochaine). Les bibliothèques graphiques GTK+ 3 et Qt 4 ont déjà des back-ends permettant le fonctionnement expérimental des applications GNOME 3 ou KDE 4 sous Wayland…

Parmi les plus récents événements, de nombreux étudiants ont proposé des projets en lien avec la pile graphique libre utilisée par GNU/Linux à l’occasion de l’édition 2011 du Google Summer of Code (GSoC). Ces projets sont plus précisément des « state trackers » pour Gallium3D :

  • un étudiant belge du nom de Denis Steckelmacher (alias steckdenis), a proposé rien de moins qu’un state tracker OpenGL 4.1, entièrement récrit. Ce projet ayant été jugé bien trop ambitieux par les développeurs Mesa / Gallium3D dans le cadre du GSoC, ces derniers lui ont proposé de travailler sur le remplacement des représentations intermédiaires propres à Gallium3D (Mesa IR) par une sémantique [GLSL] plus standard. Après coup, cette idée n’a pas fait non plus l’unanimité au sein des développeurs, avec notamment deux sociétés, Intel et LunarG travaillant actuellement sur ces fameuses représentations intermédiaires. Denis Steckelmacher a finalement décidé de travailler sur Clover, le state tracker OpenCL, permettant d’exploiter la puissance des GPU pour le calcul intensif, avec pour objectif obtenir un state tracker fonctionnel réalisant, dans un premier temps, les calculs OpenCL sur le processeur en utilisant LLVMpipe, un moteur de « rendu OpenGL » logiciel basé sur LLVM (Low Level Virtual Machine).

  • un étudiant français, Émeric Grange (alias Emeric_), participerait également au GSoC 2011, avec pour projet le développement d’un décodeur vidéo WebM / VP8 accéléré via les [[shaders]] des processeurs graphiques. Tout cela serait placé dans un state tracker Gallium3D, qui exposerait ses fonctions aux lecteurs multimédias comme VLC, MPlayer et Totem (via un greffon GStreamer) à travers l’API VDPAU de NVIDIA.
    Ce state tracker pourrait constituer un bon point de départ pour la prise en charge générique du décodage matériel d’autres formats vidéo, tels que le MPEG 4 ASP (DIVX < 7) et MPEG 4 AVC (H.264) ou le MPEG 2 (déjà pris en charge par le state tracker XvMC). À noter que, comme pour la gestion des textures compressées S3TC, la gestion de ces formats devra faire l’objet d’une analyse des brevets / licences impliqués.

Certes, tout n’est pas rose du côté de la pile graphique Linux, mais au moins ça bouge et ça avance plutôt dans le bon sens. Voir ci-dessous pour les détails.