tag:linuxfr.org,2005:/users/davy78LinuxFr.org : les contenus de Davy Defaud2011-05-06T17:49:30+02:00/favicon.pngtag:linuxfr.org,2005:News/280442011-04-02T09:48:37+02:002021-06-27T17:42:49+02:00Effervescence autour de la pile graphique libreLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>Ces derniers temps ont été très riches en événements dans le monde graphique libre.</p>
<p>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 (<em>Redirected Direct Rendering</em>), puis le <em>Kernel Mode Setting</em> (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.</p>
<p>Très récemment, le noyau 2.6.38 a apporté le <em>kernel page flipping</em>, permettant l’arrivée du futur serveur d’affichage <a href="https://fr.wikipedia.org/wiki/Wayland" title="Définition Wikipédia">Wayland</a> 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 <em>back-ends</em> permettant le fonctionnement expérimental des applications GNOME 3 ou KDE 4 sous Wayland…</p>
<p>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’<a href="http://www.google-melange.com/gsoc/program/home/google/gsoc2011">édition 2011 du <em>Google Summer of Code</em></a> (GSoC). Ces projets sont plus précisément des « <em>state trackers</em> » pour <a href="https://fr.wikipedia.org/wiki/Gallium3D" title="Définition Wikipédia">Gallium3D</a> :</p>
<ul>
<li><p>un étudiant belge du nom de Denis Steckelmacher (alias <a href="//linuxfr.org/users/steckdenis"><em>steckdenis</em></a>), a proposé rien de moins qu’un <em>state tracker</em> 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 <a href="_GL%20Shading%20Language_">[GLSL]</a> 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 <a href="http://www.phoronix.com/scan.php?page=news_item&px=OTA3Mw">travaillant actuellement</a> sur ces fameuses représentations intermédiaires. Denis Steckelmacher a finalement décidé de <a href="http://lists.freedesktop.org/archives/mesa-dev/2011-March/006223.html">travailler sur Clover</a>, le <em>state tracker</em> OpenCL, permettant d’exploiter la puissance des GPU pour le calcul intensif, avec pour objectif obtenir un <em>state tracker</em> 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 (<em><a href="https://fr.wikipedia.org/wiki/Low%20Level%20Virtual%20Machine" title="Définition Wikipédia">Low Level Virtual Machine</a></em>).</p></li>
<li><p>un étudiant français, Émeric Grange (alias Emeric_), participerait également au GSoC 2011, avec pour <a href="http://lists.freedesktop.org/archives/mesa-dev/2011-March/006241.html">projet le développement d’un décodeur vidéo WebM / VP8</a> accéléré via les [[<em>shaders</em>]] des processeurs graphiques. Tout cela serait placé dans un <em>state tracker</em> Gallium3D, qui exposerait ses fonctions aux lecteurs multimédias comme VLC, MPlayer et Totem (via un greffon GStreamer) à travers l’API <a href="https://fr.wikipedia.org/wiki/VDPAU" title="Définition Wikipédia">VDPAU</a> de NVIDIA.<br>
Ce <em>state tracker</em> 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 (<a href="https://fr.wikipedia.org/wiki/H.264" title="Définition Wikipédia">H.264</a>) ou le MPEG 2 (déjà pris en charge par le <em>state tracker</em> 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.</p></li>
</ul>
<p>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.</p>
</div><ul><li>lien nᵒ 1 : <a title="http://www.google-melange.com/gsoc/program/home/google/gsoc2011" hreflang="en" href="https://linuxfr.org/redirect/71544">Google Summer of Code 2011</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#toc-%C3%89tat-des-lieux-des-%C3%A9l%C3%A9ments-les-plus-notables-de-la-pile-graphique-libre">État des lieux des éléments les plus notables de la pile graphique libre</a></li>
</ul>
<h2 id="toc-État-des-lieux-des-éléments-les-plus-notables-de-la-pile-graphique-libre">État des lieux des éléments les plus notables de la pile graphique libre</h2>
<p>En ce qui concerne les pilotes proprement dits, le résultat est mitigé :</p>
<ul>
<li>chez ATI, le pilote Gallium3D, r300g (gérant les puces jusqu’à la série des R5xx, commercialement appelées X1xxx) a montré dans certains <a href="http://www.phoronix.com/scan.php?page=article&item=ati_r500_pflipper&num=4">bancs d’essais de <em>Phoronix</em></a> des résultats comparables, voire supérieurs dans quelques cas, à la dernière version de son pendant propriétaire FGLRX gérant ces puces. Ce qui est un joli symbole. Le récent pilote r600g, dédié aux Radeon HD, mûrit tout doucement, et John Bridgman (le responsable des pilotes libres chez AMD) a annoncé une <a href="http://www.phoronix.com/scan.php?page=news_item&px=OTI1OQ">possible prise en charge des nouveaux matériels synchronisée avec le pilote propriétaire</a>. Les performances restent encore <a href="http://www.phoronix.com/scan.php?page=article&item=ubuntu_1104_radeon&num=2">très en deçà</a> de celles du pilote propriétaire FGLRX ;</li>
<li>du côté de Nouveau — le pilote pour les puces NVIDIA créé par Stéphane Marchesin et développé en pure rétro-ingénierie —, si les fonctionnalités avancent sur tous les fronts, les performances sont au rendez-vous pour les puces GeForce 9xxx, mais toujours <a href="http://www.phoronix.com/scan.php?page=article&item=nouveau_fermi_nvc0&num=3">très loin de ce que les utilisateurs en attendent pour la toute dernière génération</a> baptisée « Fermi » (GeForce GT 4xx et 5xx) ;</li>
<li>chez Intel, les performances pour les GPU intégrés dans les processeurs <a href="https://fr.wikipedia.org/wiki/Arrandale" title="Définition Wikipédia">Arrandale</a> et <a href="http://fr.wikipedia.org/wiki/Sandy_Bridge">Sandy Bridge</a> sont en nette amélioration grâce à <a href="http://www.phoronix.com/scan.php?page=article&item=intel_snb_13lines&num=1">ce <em>patch</em></a> et <a href="http://www.phoronix.com/scan.php?page=article&item=intel_llc_caching&num=1">celui-ci</a>, mais encore, dans certains cas, en retrait de celles du pilote Windows. Ce qui est d’autant plus regrettable que ces puces graphiques d’entrée de gamme sont loin de tenir la comparaison avec celles d’ATI et de NVIDIA. Malgré l’investissement certain du n° 1 mondial des micro-processeurs dans le développement de pilotes graphiques libres, on peut toutefois regretter qu’Intel n’ait pas l’intention d’adopter l’architecture commune Gallium3D ;</li>
<li>chez VIA, le constat est toujours aussi navrant : plusieurs projets pilotes Gallium3D concurrents assez peu avancés, aucun support officiel de VIA malgré certaines déclarations remontant à plus de 2 ans. Bref : « <em>no (free) future for VIA!</em> » ;</li>
<li>dans le domaine de l’embarqué, l’obscurantisme semble de mise, à l’image d’Imagination Technology et son omniprésent PowerVR SGX que l’on retrouve dans très nombreux téléphones évolués — les <em>smartphones</em> — et tablettes tactiles, ainsi que dans les <em>netbooks</em> à base de <em>chipset</em> Poulsbo (pourtant estampillé Intel). La <a href="https://fr.wikipedia.org/wiki/Free%20Software%20Foundation" title="Définition Wikipédia">Free Software Foundation</a> a d’ailleurs déclaré que <a href="http://www.fsf.org/campaigns/priority-projects/index_html/#powervr">le développement d’un pilote libre pour PowerVR est un projet prioritaire</a>. Imagination Technology a fait <a href="http://www.phoronix.com/scan.php?page=news_item&px=ODk4Ng">quelques timides pas vers la lumière</a> en permettant la création d’un pilote minimaliste, à l’instar de ce que font les autres acteurs du marché, tout le code d’accélération 3D demeurant bien caché dans un binaire. Au delà de l’aspect philosophique et politique contraire au Libre, l’aventure du Poulsbo sous Linux, nous a clairement montré où menaient de telles pratiques (<code>> /dev/null</code>)…</li>
</ul>
<p>Du côté des moins bonnes nouvelles, citons également :</p>
<ul>
<li>XINPUT 2 (XI2) et <a href="http://fr.wikipedia.org/wiki/Multi-Pointer_X">Multi-Pointer X</a> (MPX), maintes fois reportés, devraient arriver dans la prochaine version du serveur X et apporter, entre autres, la prise en charge des écrans multi-tactiles ;</li>
<li>l’utilisation de KMS devrait permettre de ne plus faire tourner son serveur X en root (puisqu’il n’interagit plus directement avec le matériel), pour une plus grande sécurité ;</li>
<li>KMS, toujours, résout la plupart des problèmes liés à la mise en veille ;</li>
<li>un <em>state tracker</em> exposant l’API DirectX 10/11 de Microsoft, concurrente d’OpenGL, <a href="http://freegamer.blogspot.com/2011/01/gallium3d-directx-1011-recreated.html">est déjà fonctionnel</a>. Malheureusement, les développeurs de Wine qui pourraient être les plus grands bénéficiaires d’une telle API ne se sont pas montrés intéressés, essentiellement pour des raisons de portabilité du code de Wine.</li>
</ul>
<p>D’autres fonctionnalités sont en voie d’achèvement :</p>
<ul>
<li>
<a href="http://lists.freedesktop.org/archives/dri-devel/2011-March/009642.html">Linus est toujours autant agacé par les demandes d’intégration « post RC1 »</a> que lui fait parvenir Dave Airlie, le mainteneur du <a href="http://fr.wikipedia.org/wiki/Direct_Rendering_Manager">sous-système DRM</a> (<em>Direct Rendering Manager</em>) qui est la partie noyau de la pile graphique libre. En effet, selon lui, après la période impartie, seules des corrections de bogues devraient être acceptées. <a href="http://lists.freedesktop.org/archives/dri-devel/2011-March/009654.html">Dave</a> et <a href="http://lists.freedesktop.org/archives/dri-devel/2011-March/009663.html">Jérôme Glisse</a>, entre autres, ont servi leurs argumentaires à Linus. En gros, ils jugent qu’il serait dommageable de se limiter strictement à ces périodes de <em>merge</em>, vue l'immensité du travail à abattre, et parce que cela restreindrait, par exemple, l’ajout de la prise en charge de nouveaux matériels à une ou deux semaines tous les 4 mois environ ;</li>
<li>toujours pas d’implémentation d’OpenGL 3.x et encore moins 4.x. Plusieurs extensions sont toutefois <a href="http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt">déjà implémentées</a>. Là encore, les brevets semblent empêcher une implémentation libre de <a href="http://lists.freedesktop.org/archives/mesa-dev/2011-March/005725.html">certaines fonctions</a>, telle que la compression de texture S3TC. Après ne pas avoir évolué pendant des années, OpenGL voit ses nouvelles versions sortir bien plus vite que ses implémentations libres ;</li>
<li>si <a href="https://fr.wikipedia.org/wiki/OpenGL%20ES" title="Définition Wikipédia">OpenGL ES</a> 2.0, l’OpenGL allégé dédié à l’embarqué, a bien son <em>state tracker</em>, il ne semble pas encore apporter entière satisfaction à tout le monde. En effet, WebGL qui apporte la 3D à nos navigateurs dérive directement d’OpenGL ES 2.0, or comme <a href="//linuxfr.org/users/bjacob/journaux/firefox-4-et-pilotes-de-cartes-graphiques-sous-linux">Benoît Jacob, lui-même, l’a rapporté sur <em>LinuxFR</em></a>, de méchants plantages l’ont contraint à désactiver WebGL dans la version Linux de Firefox 4, pour tout autre pilote que le pilote propriétaire de NVidia.</li>
</ul>
<p>D’autres grands chantiers sont encore en friche :</p>
<ul>
<li>la gestion multi-GPU du serveur X. Dave Airlie a amorcé une telle fonctionnalité par l’intermédiaire de son <a href="http://airlied.livejournal.com/70480.html">switcheroo</a>, mais il ne s’agit uniquement que d’une possibilité de changer de GPU via un redémarrage du serveur X. Il a également travaillé sur <a href="http://airlied.livejournal.com/71734.html">PRIME</a> une preuve de concept où le serveur X exploite simultanément plusieurs GPU. Dans le domaine de la très haute performance graphique, seuls les pilotes propriétaires savent exploiter le <a href="SLI">[Scalable Link Interface]</a> de NVIDIA et le <a href="https://fr.wikipedia.org/wiki/CrossFire" title="Définition Wikipédia">CrossFire</a> d’ATI ;</li>
<li>le serveur X est encore incapable de travailler en <em>multithread</em> et les développeurs ont jeté l’éponge depuis longtemps, notamment <a href="http://vignatti.wordpress.com/2008/06/17/to-thread-the-x-server/">Tiago Vignatti</a>, jugeant que le rapport bénéfice / coût de développement n’en valait pas la peine ;</li>
<li>Wayland est encore un chantier à lui tout seul, mais pour contrer l’argument le plus courant de ses détracteurs, à savoir la perte de la transparence réseau native du protocole X11, Red Hat invoque son nouveau protocole maison, initialement conçu pour l’affichage des machines virtuelles : <a href="http://www.fr.redhat.com/virtualization/rhev/desktop/components/spice/" title="Simple Protocol for Independent Computing Environments">SPICE</a>. Il faut bien reconnaître que l’argument de la transparence réseau du protocole X11 n’est plus vraiment d’actualité, tant elle est aujourd’hui inadaptée, malgré l’intéressant travail effectué par NoMachine et sa <a href="https://fr.wikipedia.org/wiki/technologie%20NX" title="Définition Wikipédia">technologie NX</a> qui n’a pas su s’imposer.<br>
Wayland permet également de faire tourner un serveur X client (un peu comme sur MacOS X) ; les applications X11 pouvant indirectement tourner sur Wayland, elles pourront migrer progressivement vers son protocole propre, et d’autant plus facilement si elles utilisent, comme la majorité d’entre elles, les bibliothèques graphiques GTK+ et Qt (dans leurs dernières versions, bien sûr) ;</li>
<li>Le portage de la partie noyau de la pile graphique libre (<em>Kernel Mode-Setting</em>, GEM/TTM, DRI…) reste à finir sur les noyaux BSD. <a href="http://www.phoronix.com/scan.php?page=news_item&px=OTEzMg">FreeBSD est le plus en avance</a>. Ce portage devient urgent depuis qu’Intel a retiré le code de gestion des modes vidéo de ses derniers pilotes DDX X.Org (UMS — <em>User Mode Setting</em>), les rendant incompatibles avec des noyaux non-KMS. Quant aux autres systèmes libres comme Haiku et GNU/Hurd, tout reste encore à faire, même si des projets GSoC ont été proposés dès l’année dernière.</li>
</ul>
<hr>
<p><em>N. D. A. : merci à tous ceux qui ont participé à la rédaction de cette dépêche (fyah, Mjules, Arooo, baud123) et particulièrement à Emeric pour avoir apporté des précisions sur les points qui le concernent.</em></p>
</div><div><a href="https://linuxfr.org/news/effervescence-autour-de-la-pile-graphique-libre.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/85424/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/effervescence-autour-de-la-pile-graphique-libre#comments">ouvrir dans le navigateur</a>
</p>
Davy DefaudBenoît Sibaudhttps://linuxfr.org/nodes/85424/comments.atom