Logiciels libres et la 3D

L’année 2007 a plutôt été mouvementée pour la communauté du Libre, cela est notamment vrai pour le domaine graphique.



- AMD/Ati a libéré les premières spécifications de ses cartes graphiques, et ce n’est pas encore fini.
- Le framework Gallium3D utilisant Mesa3D pour implémenter le frontend OpenGL, va être utilisé afin de simplifier le développement de pilotes de périphériques, mais aussi et surtout d’adopter une architecture plus adaptée aux cartes graphiques récentes. Et la dernière version 7.0 est sortie il y a peu de temps, la version supporte enfin OpenGL 2.x.
- Le branchement à chaud d’un écran sans configuration est fonctionnel grâce à l’implémentation toute nouvelle de XRandR (X Resize and Rotate Extension), ce qui permet enfin le branchement aisé d’un projecteur ou d’un second écran.
- OpenGL se dote de nouvelles spécifications, pour la future version 3 de l’API.
- La sortie d’un pilote libre pour les cartes graphiques NVidia, obtenu par reverse-engineering, à défaut d’avoir obtenu le soutien de NVidia.

Détails

Dans le domaine graphique, pour le logiciel libre, cela a toujours été difficile, notamment les dernières années. Les spécifications manquaient pour beaucoup de matériel, les pilotes propriétaires ne supportaient pas directement le matériel neuf (ce qui est encore le cas pour NVidia, qui n’a toujours pas livré de pilote Linux pour la GeForce 9600GT). Ensuite OpenGL commençait à se faire abandonner pour l’API concurrente (Direct3D), qui se trouve être plus complète pour le moment au niveau des fonctionnalités. Il faut aussi noter que la principale implémentation libre d’OpenGL (Mesa3D) est tombé en désuétude pendant un long moment.

OpenGL 3

PNG - 25 ko

Cette liste peut paraître impressionnante, mais il y a quelque chose qui pour le moment reste flou. L’annonce d’OpenGL et de ses nouvelles spécification s’est faite il y a déjà quelques mois, or depuis plus aucune nouvelle. Tout du moins pas de pré-version ou une version quelconque apportant des informations concrètes. Pourtant il avait aussi été annoncé que l’interaction avec la communauté serait de mise, mais pour le moment on ne peut pas dire que cela soit le cas, aucune information ne nous est parvenu. Le seul morceau qui a été lâché nous vient d’un post sur le forum d’OpenGL.org, qui date de la fin d’octobre 2007, et qui nous explique que les spécifications rencontrent quelques difficultés et que forcément ils vont remettre la sortie de celles-ci à plus tard.

Il est vital pour le maintien de la communauté de donner quelques informations, voire un signe de vie, mais visiblement la communication est coupée. Il serait aussi très important de donner une date de sortie, même si approximative, afin de savoir vers ou l’on se dirige. L’équipe d’OpenGL ne se montre pas assez communicative sur le sujet, et les problèmes évoqués n’ont jamais été expliqués. La situation actuelle est à vrai dire pas vraiment celle qu’on aurait pu espérer.

Il est certain qu’il y a du monde derrière le développement de ces nouvelles spécifications, et il y aussi beaucoup de personnes intéressées par cette technologie, pas seulement des particuliers, des grandes entreprises (Google, IBM, par exemple). Mais le fait que l’équipe ne communique pas avec la communauté est plutôt regrettable. On peut sans doute remettre cela sur le fait qu’OpenGL n’est pas seulement une technologie, mais aussi un produit. D’abord développé par l’entreprise SGI, OpenGL a ensuite été confié à l’ARB (OpenGL Architecture Review Board) et enfin c’est aujourd’hui le Khronos Group qui s’en occupe.

AMD/Ati

PNG - 5.6 ko

Que ceux qui s’inquiétaient lors de la promesse de publication d’AMD des spécifications de ses cartes, se rassurent. AMD n’a en effet pas tardé à tenir ses promesses et ce sont plus de 900 pages de spécifications qui ont été données par Matthew Tippett à la fin du X Developer Summit à David Airlie.

Rappelons le, Matthew Tippett occupe le poste de Engineering Manager dans la section Linux Core Engineering chez AMD, tandis que David Airlie est impliqué dans plusieurs projets open source, dont le Direct Rendering Infrastructure (DRI).

Ce dernier a été contacté par AMD il y a plusieurs mois afin de concrétiser ce projet. Il ne s’agit pour l’instant que des spécifications 2D des cartes basées sur les chipsets M56 et rv630, mais d’autres documentations, dont des spécifications 3D, sont à venir et nous en sommes tous très impatients. De plus, ces documentations sont fournies sans qu’il soit nécessaire aux développeurs de signer un NDA (Non Disclosure Agreement).

David Airlie indique également sur son site que la société Novell est en train de développer un pilote basé sur ces documents et qu’il devrait être disponible d’ici la semaine prochaine.

Après tant d’années de rétro ingénierie sur les nouvelles puces ATI (postérieures au R200), un représentant d’AMD vient d’annoncer rien de moins que les spécifications des puces r500 et suivantes sont mises à disposition. Les précédentes ont un pilote libre suffisamment stable et fonctionnel. Ce n’était pas le cas des pilote r500. Ces puces ont la particularité de ne plus avoir de matériel dédié à la 2D. Le travail de rétro ingénierie était donc laborieux. L’annonce d’AMD tombe à point. De plus, AMD fournit un squelette de pilote, laissant le soin à la communauté de faire le reste. L’annonce a été faite durant le Kernel Summit qui se tient du 4 au 6 septembre 2007 à Cambridge et c’est Linux Weekly News qui nous fait part de la bonne nouvelle.

Pas de libération de pilote propriétaire, mais bien mieux ! Cette annonce sonne comme une suite logique du rachat d’ATI par AMD en juillet 2006. AMD était connu pour son ouverture et son soutien au logiciel libre. Un an plus tard, AMD réalise le rêve de nombreux développeurs et utilisateurs de logiciels libres.

Pour AMD, c’est tout bon, il s’impose face à nVidia dans la communauté du logiciel libre avec l’assurance de voir toutes les distributions supporter intégralement son matériel sans bidouille. On sait aussi qu’AMD s’oriente vers une plateforme où converge CPU, GPU et PPU en ajoutant des instructions spécifiques aux jeux d’instructions x86 (comme pour x86_64).

Nouveau, pilote libre pour cartes graphiques NVidia

Nouveau est un projet visant à écrire un pilote X.org libre et complet pour les cartes graphiques Nvidia. L’objectif est de supporter l’accélération 2D et 3D pour toutes les cartes NVidia depuis les NV04 (TNT) aux dernières G80 (Geforce 8), et de supporter les architectures x86-64, PPC et x86.

À l’exception des NV5x, le pilote 2D relativement bon. Durant un temps, la sortie d’une version uniquement 2D du pilote était envisagée, mais c’est aussi la un point faible du pilote : elles fonctionnent en 2D de la même façon qu’avec le pilote nv. Et en ce qui concerne la 2D, elle est plus performante que nv (voire que le pilote propriétaire dans certains cas) sur les cartes NV1x (Geforce 1) à nv4x (Geforce 6xxx et 7xxx) ; l’accélération 2D étant réalisée par programmation directe du moteur 3D. La famille en retrait à ce niveau est celle des NV5x (geforce 8xxx) mais ça devrait changer dans un futur pas trop lointain. La sauvegarde/restauration des terminaux virtuels marche sur la plupart des cartes sauf, encore une fois, sur les NV5x.

Tout cela est bien beau mais je vous entends demander : « Et la 3D alors ? »

La réponse courte est simple : la 3D n’est pas fonctionnelle.

La réponse longue, c’est que sur les NV4x, il y a un pilote 3D très expérimental qui fonctionne. C’est à dire qu’on peut jouer à un certains nombres de jeux utilisant l’openGL (openarena, neverball, ppracer, ...) mais qu’il ne faut pas s’attendre à des performances exceptionnelles (c’est mieux que le rendu software quand même) et que des plantages surviennent assez régulièrement. Enfin, son utilisation n’est pas triviale.

La feuille de route montre que la prochaine étape importante sera Quake. Elle n’est pas trop loin pour les NV4x, un peu plus pour les autres cartes, d’autres problèmes étant sur le chemin. La première estimation d’automne/hiver 2007 pour une première version n’était finalement pas si mauvaise si on ne regarde que la partie 2D.

Sources de l’article

- Mjules qui a permis de bien compléter l’article ;p
- Blog de Liquidat, source de départ
- Le post sur le forum OpenGL.org
- Page OpenGL chez SGI
- Journal LinuxFr faisant le point sur le projet Nouveau
- Journal LinuxFr AMD1
- Journal LinuxFr AMD2
- Journal LinuxFr AMD3
- Phoronix.com à propos d’AMD
- La vérité sur AMD par Phoronix.com
- Xorg 7.4 par Phoronix.com

Brèves




Article sous GNU Free Documentation licence - Jeuxlinux.fr