Tout sur les cartes 3D sous Linux

Posté par  . Modéré par Fabien Penso.
Étiquettes : aucune
0
17
nov.
2000
Serveurs d’affichage
Il y a déjà eu un certain nombre d'articles sur le support des cartes 3D sous Linux (souvent annoncés ici par moi) mais je n'ai jamais trouvé l'article idéal qui parlait à la fois de toutes les options possibles, des avantages et inconvénients, de la configuration, etc...

N'écoutant que mon courage (!), je vous ai concocté un petit article que j'espère assez complet sur le sujet :-)

Au menu : une petite histoire de la 3D sous Linux, comment ça marche une carte 3D, quelques considération sur la sécurité, comment on configure Utah-GLX, DRI ou le driver NVidia.

Comme tout article sur le sujet qui se respecte, il y a aussi des tests comparatif d'une Matrox G400Max, et de NVidia TNT2 et GeForce II MX sur 2 machines : un bi PIII 550 et un bi PII 266. J'en profite pour étudier l'influence du SMP sur les performances 3D.

Les tests sont réalisés avec les classiques Quake III et Unreal Tournament mais aussi OpenUniverse et FlightGear.

Bonne lecture :-)


PS : Si vous trouvez qu'il manque des infos ou qu'il y a des erreurs dans cet article, n'hésitez pas à me le dire ici ou par email. Personne n'est parfait et cet article est fait pour évoluer.

Aller plus loin

  • # Tiens ...

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Je disais qu'on pouvait gagner un abonnement annuel à linux+, bah serge l'aura.

    Juste pour dire qu'on ne fait pas que parler en l'air :)
  • # Question

    Posté par  . Évalué à 0.

    "...la Voodoo 1 étant une carte vidéo à part entière shuntant la carte 3D normale lors d'un affichage 3D..."
    je comprend ± bien le send de la phrase: faut-il comprendre qu'une carte faisant l'affichage 2d était obligatoire et que la sortie de celle-ci passait par une Voodoo Graphics faisait seulement la 3D ??

    Si non, je crois que y a erreur.
    • [^] # Re: Question

      Posté par  . Évalué à 0.

      Aussi : "Sans carte 3D, le processeur calcule tout et envoie l'image à la carte vidéo. Même avec un processeur très rapide, il faudrait environ 3 à 5 secondes de calcul par image pour un jeu moderne comme Quake III !"

      C'est dûr à dire vu que Q3 marche pas sans carte 3D, mais c'est pas un brin exagéré? Me semble que y a encore pleins de jeux avec une qualité visuelle proche de Q3 pouvant rouler sur un moteur software (mais j'avoue que c'est plus en 320*240 que 1600*1200). J'ai tort?

      Cela dit, globalement, c'est vraiment fort. Bravo!
      • [^] # Re: Question

        Posté par  . Évalué à 0.

        Si tu comptes le lissage des textures (bilinear/trilinear filtering) et les eclairages locaux dynamiques avec lightmap, je pense que tu arrives facile a ce qu'il dit.
      • [^] # Re: Question

        Posté par  (site web personnel) . Évalué à 1.

        Il me semble qu'avec la première version, on pouvait quand même le démarrer à partir du moment ou les libs Mesa étaient présentes... Mais je me gourre peut-être...

        C'est possible avec Unreal est c'est abominable, surtout vu la lourdeur d'UT. Je crois qu'on doit être à presque 8 s par image. Comme même les menus du jeu sont en GL, il faut être trèèès patient pour simplement bouger la souris vers File-Quit si on l'a lancé par erreur avec un GL soft !

        Il faut dire aussi que Mesa est un OpenGL complet et non pas un renderer 3D soft allégé pour les jeux.
    • [^] # Re: Question

      Posté par  (site web personnel) . Évalué à 1.

      Les Voodoo 1 et 2 avaient leur propre frame buffer.

      Quand tu lançais une appli 3D, la Voodoo coupait le signal de la carte 2D normale (qui passait à travers la Voodoo grace à un petit cable allant de la prise VGA en sortie de la carte 2D a l'entrée VGA de la Voodoo) et affichait le contenu de son propre frame buffer. Avec 2 écrans, on pouvait avoir l'affichage 2D d'un côté et 3D de l'autre.

      Je n'ai jamais trop compris pourquoi ils n'ont jamais développé un driver vidéo 2D pour ces cartes... Surement une limitation du hard.

      Ca a existé en fait sous le nom de Voodoo Rush mais la carte était un peu différente (et plus chère).
      • [^] # Re: Question

        Posté par  . Évalué à 0.

        Sinon sur la voodoo2 y'a eu la Banshee qui faisait la 2d aussi je crois.
      • [^] # Re: Question

        Posté par  . Évalué à 0.

        "Avec 2 écrans, on pouvait avoir l'affichage 2D d'un côté et 3D de l'autre"

        Vraiment!!?!?!!!!!!
        Je cours essayer ça tout suite!
        • [^] # Re: Question

          Posté par  . Évalué à 1.

          Doups, pas identifié depuis le début, moi qui chiâle tout le temps contre les anonymes... :-\
      • [^] # Re: Question

        Posté par  . Évalué à 0.

        euh, Serge, il y a bien un driver 2D pour les cartes Voodoo 2 (et peut être 1). Il est disponible pour XFree 4.0. Par contre, il est assez lourd : je crois que toutes les données 2D sont passees en Glide par le CPU, puis la carte les retransforme en 2D. Il s'agit du driver drv_glide. Il me semble qu'il est limite a du 1024x768 en 16bits.

        Ce driver a un gros avantage : permettre un Dual-Head très peu couteux. Une carte 2D, et une Voodoo sur la meme machine, deux écrans, un peu comme ta combinaison 2D/3D sur deux écrans différents.

        Il résoud de plus un problème qui limite l'accès au Dual-Head : l'initialisation des cartes videos par le BIOS. En effet, la plupart des BIOSes n'initialisent que la première carte qu'ils trouvent. Avec la combinaison Voodoo + Carte video, le BIOS initialise la carte video, normalement, et la Voodoo est initialisée comme une carte d'extension multimédia.

        Enfin, si vous avez deux écrans et un peu de temps, testez, ca vaut le coup.

        Gwen - gwen@pris-and-gwen.net
        • [^] # Re: Question

          Posté par  (site web personnel) . Évalué à 1.

          Ben 1024x768 ent 16 bits avec des Voodoo2, c'est avec 2 cartes en SLI. Sinon, c'est limité à 800x600.

          Je ne conaissais pas ce driver. Il fallait oser le faire et ça doit être du délire ! (pire que tout Star Wars en Lego ou en ASCII :-)
          • [^] # Re: Question

            Posté par  . Évalué à 0.

            En fait, j'avais testé cela avec les betas de XFree (3.96). Le "driver status" pour 3Dfx precise bien :

            4.0.1:

            Support for Voodoo 1 and Voodoo 2 via glide on platforms where glide is available (Linux and FreeBSD(?)). Support is provided by the "glide"
            driver (requires Glide 2x).

            Support (including acceleration) for Voodoo Banshee and Voodoo 3. Support is provided by the "tdfx" driver.

            Dans les archives de mailing lists, on doit trouve r un ou deux posts relatifs au driver glide. Ce driver n'est pas inclus dans la RH7, peut etre sur Mandrake qui est plus reactif de ce point de vue.

            Maintenant, après, tu peux acheter un tapis de souris plus large, et puis essayer de ne pas perdre ton pointeur... Attention aussi, tous les WMs ne réagissent pas forcément très bien à cela. Enlightenment je crois etait assez bien (j'ai teste ca fin 99, début 2000).

            Autre doc à regarder : toutes les docs relatives au dual head avec XFree.
          • [^] # Re: Question

            Posté par  . Évalué à 0.

            wsdggggggggggggggggggggggg
  • # T&L

    Posté par  . Évalué à 0.

    Tu parles des cartes 2eme generation comme GeForce qui font les projections 3d -> 2d.

    Le nom du truc c'est T&L pour Transform and Lightning, donc je suppute (sans connaitre) que la carte fait les transformations (peut-etre meme les transformations dans l'espace 3d?) et les eclairage (locaux, dynamique..?)
    • [^] # Re: T&L

      Posté par  (site web personnel) . Évalué à 1.

      Exactement. Mais c'était chiant à écrire donc j'ai racourci en transformations 3d->2d :-)
  • # Article

    Posté par  . Évalué à 0.

    Peut-on récupérer l'article en un seul bloc
    quelque part (HTML, PS, TXT, peu importe) ?
  • # Beau travail

    Posté par  (site web personnel) . Évalué à 1.

    C'est du bel ouvrage et Serge Rossi est coutumier du fait. Son histoire de l'informatique http://histoire.info.online.fr/(...) mérite votre visite.
    Bravo Serge !
    • [^] # Re: Beau travail

      Posté par  . Évalué à 1.

      Entièrement d'accord, excellent article, il mérite amplement son abonnement Linux +.
      Merci bcp, et j'espère que les initiatives de ce genre se multiieront à l'avenir.

      Bravo !
      • [^] # Re: Beau travail

        Posté par  . Évalué à 1.

        Je suis même d'avis que ce cher Serge devrait avoir un joli score de 2.
  • # a propos des nvidia et des entrées/sorties video

    Posté par  . Évalué à 0.

    il est indiqué dans l'article :

    >Sous Linux, c'est uniquement là pour faire joli
    >puisqu'aucun driver ne supporte les composants
    >spécifiques (non NVidia)
    >s'occupant des capacités d'entrée sortie de
    >signal vidéo...

    mais quelqu'un à commencé à s'en occuper
    http://sourceforge.net/projects/rivatv/(...)
    http://drama.obuda.kando.hu/~fero/cgi-bin/rivatv.shtml(...)

    donc s'il y a des gens que ça interesse y a du boulot apparement avant que ce soit totalement utilisable

    avis aux amateurs...

  • # BSD?

    Posté par  . Évalué à 0.

    Ca marche sous BSD tout ca?
    :)
    • [^] # Re: BSD?

      Posté par  (site web personnel) . Évalué à 1.

      Ben si tu utilises BSD, j'attends tes informations et surtout expériences sur le sujet pour compléter l'article ;-)


      Sans avoir testé, à priori d'aprés ce que j'en ai vu dans les mailing lists, Utah-GLX fonctionne sur BSD mais ça n'est pas la voie de la simplicité !

      Dans le même ordre d'idées, certains ont réussi à faire tourner Utah-GLX sur Linux Alpha et Linux PPC mais c'est loin d'être aussi simple à mettre au point que sur PC (ou Utah-GLX n'est déjà pas le plus simple des drivers à mettre en place).
  • # hephep..

    Posté par  (site web personnel) . Évalué à 1.

    Pour le radeon, je crois qu'il y a xig qui viennent de sortir des drivers linux.
    (pour ceux qui veulent savoir où ça se trouve cherchez radeon sur freshmeat.net)
    Le seul problème apparent, c'est leur licence. c'est propriètaire. :/
    Cela dit, ils annoncent quand même des benchs qui montre que le radeon dépasse la geforce... Alors pesez le pour et le contre mais.. dans l'article vu que les drivers nVIDIA ont été testés.. pkoi le driver radeon ? :p
    • [^] # Re: hephep..

      Posté par  (site web personnel) . Évalué à 1.

      La première raison est simple :

      Je n'ai pas de Radeon et je n'ai pas envie d'acheter une license chez Xig uniquement pour faire des tests ! Je suis un particulier moi, pas un journal qui se fait préter du matos pour les tests !


      J'ai fait le choix de ne pas parler de Xig vu que c'est non seulement propriétaire (closed source) mais payant.

      Le driver pour la Radeon est à 89 $. En plus, ça ne marche qu'avec la Radeon. Si on veut changer de carte, il faut racheter une license en fonction de la carte. Par exemple, une G400, c'est 49 $ et une G400 Dual Head, c'est 129 $ !

      Y'a des phrases marrantes : "The License Key for v1.1 (authorizing use on one computer)..." et "The mechanics of how to go about getting the free upgrade to v2.0 will be explained at that time, since the licensing scheme in v2.0 may be different than the one we are presently using in v1.1."

      Les drivers NVidia au moins sont gratuits ! Leur but, c'est de vendre des cartes.

      D'après les développeurs, ils auraient bien voulu être open source mais des licenses sur une partie du code intégré rend cela impossible.

      Les benchs XiG avec leurs drivers sont un peu bidon :

      http://www.XiG.COM/Pages/CardMfgrs/ATI-RADEON-Intro.html(...)

      Ils comparent une GeForce II GTS 32 Mo avec une Radeon 64 Mo (!). Sans même parler du fait qu'ils testent plus la carte 3D que le driver lui même...

      Tous les tests ne sont pas à l'avantage de la Radeon. Par exemple, Quake III (mode High mais en 1024x768 ?) tourne à 85 images/s avec le driver Xig et à 95 images/s avec la carte NVidia.

      De toutes façons, le driver Radeon est pour très bientôt avec DRI dans XFree 4 et là, ça me semble très nettement plus intéressant ! Ce sera la première carte de nouvelle génération supportée en 3D par XF 4.
      • [^] # Re: hephep..

        Posté par  . Évalué à 1.

        Juste pour preciser que la Radeon est supportee en 2D sous XFree 4.0.1f:

        http://www.xfree86.org/cvs/changes.html(...)

        Pour la 3D, ca attendra 2001, pas avant (d'apres des posts des 2 developpeurs dans dri-devel).

      • [^] # Re: hephep..

        Posté par  (site web personnel) . Évalué à 1.

        autant pour moi.. je pensais que "free but restricted" ou un truc dans ce genre (j'ai pas lu jusko bout).. clairement 89$ pour un driver il peuvent se les mettre où je pense très fort.
        • [^] # Re: hephep..

          Posté par  (site web personnel) . Évalué à 1.

          Heuuu... oui, en gros, c'est un peu ça :-)

          Et puis le coup de la license qu'il faut racheter si on change de carte vidéo, c'est limite foutage de gueule !
  • # la comparaison SMP/UP

    Posté par  . Évalué à 1.

    J'avais cru comprendre que quake 3 supportait le biproc, mais il faut initialiser une variable dans la console de Q3.
    Ceci pourrait expliquer les performances moindres en SMP...
    • [^] # Re: la comparaison SMP/UP

      Posté par  . Évalué à 1.

      Effectivement je crois qu'en console avec un
      \r_smp 1
      \vid_restart
      ca active le support smp

      Depending on the time of day, the French go either way.

      • [^] # Re: la comparaison SMP/UP

        Posté par  . Évalué à 1.

        Seulement sous Win2k, la version Linux n'a pas de SMP activable (info provenant des developpeurs Loki sur #lokigames :)
        peut-etre dans la prochaine version 1.25...
  • # Autes applications 3D sous linux

    Posté par  . Évalué à 0.

    Très bon article.

    Il serait intéressant de tester aussi des applications autres que des jeux. Je pense notamment à des applications de CAD, des applications en Open-Inventor ou en Performer.
    En particulier, l'application perfly, livree avec Performer (disponible sur le site de SGI), dispose d'une fonction d'affichage des performances. A noter aussi, qu'une prochaine version de Performer pour Linux, la 2.4, intégrant le support du SMP, devrait être disponible bientôt...

    Il serait aussi intéressant que l'article propose des pointeurs vers des informations plus générales sur la 3D (par exemple fonctionnement détaillé du pipe graphique, définitions de terme : tri-lnear filtering, ...) qui ne concernent pas directement le sujet.


    Sur la forme, puisque l'article est amené à évoluer, il serait utile que la page d'introduction comporte aussi la date de dernière modification.

    • [^] # Re: Autes applications 3D sous linux

      Posté par  (site web personnel) . Évalué à 1.

      Pour ce qui est des applis testées, j'aurais pu utiliser Performer effectivement mais ensuite, tout dépend de la scène qu'on utilise : plein de polygones et on va favoriser les cartes dotées du T&L hard et à l'opposé, on va surtout favoriser le fill rate.

      Il fallait choisir des applis a tester et j'ai simplement pris les plus répandues.

      Le classement restera toujours à peu prés le même.

      Pour les autres idées, je vais en tenir compte et essayer de rajouter tout ça.

      Pour la date de dernière modif, j'ai déjà fait une dizaine de petites retouches depuis avant-hier soir donc en ce moment, c'est la date dur jour :-)
  • # Publication dans une revue

    Posté par  . Évalué à 1.



    Est-ce que la publication dans une revue de l'article est à l'ordre du jour ? Je ne l'ai pas encore lu (mais j'y vais immédiatement après), mais je pense que ça ouvrirait des horizons à beaucoup d'utilisateurs qui pensent encore que 3D sous Linux == bidouilles et casse-tête. Je ne sais pas exactement comment ça se passe, mais il me semble avoir compris en tout cas que c'est possible dans Linux Mag ...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.