• [^] # Re: Victoire \o/

    Posté par (site web personnel) . En réponse au journal Nvidia arrête le support de son pilote opensource nv. Évalué à 7.

    les pilotes vesa, si j'ai bien compris, ont pour but d'être compatible avec toutes les cartes graphiques. Il n'y a que la 2D et ont beaucoup de problème en 2D (mauvaise résolution, visionnage d'un film déconseillé etc).

    VESA est implémenté dans un BIOS (celui du PC ou celui de la carte graphique, je sais pas trop). C'est un mode très restreint offrant une compatibilité maximale. Par restreint j'entend : aucune accélération matérielle (plus il affiche de pixels, plus c'est lent : oubliez le 1024x768 en 32 bits/pixel, pour un film c'est juste inutilisable car un film c'est 24 images / seconde), peu de résolutions disponibles (pas de 16/10 par exemple, aujourd'hui courant avec les écrans LCD et PC portables), etc.

    Il y a un seul pilote VESA (pour Xorg), c'est le même pour toutes les cartes graphiques vu que l'API est volontairement standardisée.

    les pilotes nouveau ont pour but d'être compatible avec les cartes nvidia. La partie 2D est semble-t-il, fonctionnelle. Il est depuis décembre intégré au noyau (ça montre que le code doit être bien écrit, bravo les dév!). La partie 3D est beaucoup moins fonctionnel, certaine carte ne fonctionne pas encore. De plus il manque aussi des fonctionnalités (les effets kikoolol ou compiz), de l'optimisation (voir http://www.phoronix.com/scan.php?page=article&item=nouve(...) ).

    Nouveau implémente correctement l'API EXA ce qui offre d'excellentes performances 2D. EXA est aujourd'hui l'API la plus utilisée, c'est utilisé pour la composition (Xrender, effets graphiques).

    Pour la 3D : elle fonctionne très bien pour les modèles de carte Nvidia les plus courants, mais supporte moins bien les cartes anciennes ou récentes. Voir la matrice de compatibilité :
    http://nouveau.freedesktop.org/wiki/FeatureMatrix

    Après oui je pense qu'il reste de la place pour l'optimisation. C'était déjà un travail pharaonique de faire l'ingénierie inverse de tous les GPU Nvidia : il y a une tripotée (genre Nouveau vise à gérer tous les GPU sorti depuis 10 ans) et un pilote 3D est autrement plus complexe qu'un pilote d'un clavier :-) Nouveau a également du attendre qu'un consensus soit trouvé entre les différents gestionnaires de mémoire dans le noyau (TTM vs truc Intel dont j'ai oublié le nom), que Gallium 3D soit écrit et stabilisé, a beaucoup été aidé par mmiotrace qui a aussi été développé pendant que Nouveau se montait, etc. Autrement dit, la 3D s'est beaucoup améliorée dans Linux/Xorg depuis que Nouveau est né, et Nouveau n'est y pas étranger.

    les pilotes nv sont écrit par nvidia. Le code est très mal écrit (pas parce que les dév de nvidia code comme des pieds ils utilisent un moyen pour rendre peu lisible le code, c'est mesquin et ça montre l'idéologie étrange de nvidia). Il supporte assez bien la 2D.

    Si je ne me trompe pas : nv implémente l'ancienne API 2D (XAA), qui est moins performante et aujourd'hui désuette. nv n'accélère pas complètement la 2D, et bien sûr n'offre aucun support 3D.

    Le code a été obscursi pour protéger la propriété intellectuelle de Nvidia (sûrement exigé par les avocats Nvidia), et non pas parce qu'ils ne savent pas coder. L'idéologie n'est pas étrange, juste incompatible avec le libre :-) Dans l'embarqué, les pilotes matériels sont encore moins libre (ex: Poulso !).

    --

    Note : il existe un seul pilote VESA, un seul pilote Nouveau et un seul pilote nv :-)