Lancement d'une implémentation native de Direct3D sous Linux

Posté par  . Modéré par baud123.
Étiquettes : aucune
42
18
nov.
2010
Linux
Comme vous le savez sûrement, la gestion de toute la pile graphique a beaucoup évolué ces dernières années. Une des évolutions majeures dans ce domaine à été l'introduction de l'API Gallium3D, initialement développée par Tungsten Graphics (aujourd'hui rachetée par VMware).

Pour résumer, Gallium3D est une API de type middleware qui se situe directement au dessus du matériel et vise à en exposer les fonctionnalités de manière générique aux API orientées application comme OpenGL et Direct3D (D3D). Contrairement à Mesa 3D, dont il se veut le remplaçant, Gallium 3D n'utilise pas de backend spécifique à chaque matériel, mais délègue toute la partie dépendante du matériel à l'infrastructure DRI2 du kernel. L'ensemble forme ainsi une pile graphique plus cohérente et mieux segmentée, ce qui réduit la duplication de code/fonctionnalités et améliore les performances générales.

À l'heure actuelle, peu de pilotes supportent cette API. Parmi ceux la supportant, on retrouve principalement des pilotes libres pour Nvidia et ATI : Nouveau et les pilotes Radeon R300-R600. Les pilotes libres pour Intel ne l'implémentent pour l'instant que de manière partielle.

Dans une pile basée sur Gallium 3D, toutes les API applicatives se retrouvent à égalité vis à vis du matériel. Ainsi, OpenGL devient, pour une application, une des façons possibles d'exploiter la carte graphique.

C'est dans ce contexte que Luca Barbieri a décidé d'implémenter l'API Direct3D, version 10/11, directement au-dessus de Gallium 3D. Suite à son premier commit (12 septembre 2010), une discussion s'est ouverte sur liste mesa-dev. Direct3D devient ainsi une API graphique native sous Linux (ou tout système disposant de Gallium3D). L'avantage est double : la première utilisation qui vienne à l'esprit est bien entendu Wine. Pour rappel, Wine implémente actuellement une partie de Direct3D au-dessus d'OpenGL, c'est à dire que chaque appel à une fonction D3D est traduit en l'équivalent OpenGL, ce qui dans certains cas relève plus de l'émulation que de la traduction. Cette étape d'émulation pourra être éliminée. Ceci devrait largement améliorer les performances de Wine coté jeux. Le second avantage de la disponibilité de D3D sous Linux concerne évidement le portage des jeux en natif sur notre système préféré qui en sera grandement facilité.

Enfin, Direct3D est, selon le développeur, largement supérieur à OpenGL : "Thanks to a very clean and well-though design done from scratch, the Direct3D 10/11 APIs are vastly better than OpenGL and can be supported with orders of magnitude less code and development time, as you can see by comparing the lines of code of this commit and those in the existing Mesa OpenGL implementation." (extrait du changelog de son 1er commit). Il annonce de meilleures performances et une stabilité accrue pour les futures applications basées sur son implémentation de D3D grâce aux qualités intrinsèques de ce dernier.

NdM : Cette annonce est une très bonne nouvelle pour le jeu sous Linux, une très bonne application pratique de Gallium3D, mais reste à voir si dépendre de Microsoft ne va pas poser problème...

Aller plus loin

  • # Portage de jeux Direct3D ?

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

    C'est bien beau d'esperer que ça permettera de porter des jeux vidéos, mais les "grandes" maisons n'accepteront pas tant qu'il n'y aura pas une grande majorité de carte supportées, nVidia ne risque pas de passer à Gallium3D, et je ne pense pas que nouveau sera utilisé par les gamers avant longtemps.
    Après, ça n'en reste pas moins une très belle initiative, et les résultats sur wine pourraient être très intéressants.
    • [^] # Re: Portage de jeux Direct3D ?

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

      J'ai effectivement l'impression que ça ne va pas spécialement aider à porter les jeux.

      Bon déjà, si le code du moteur du jeu est pas complètement dégueulasse et que y'a un minimum d'abstraction, c'est pas un travail énorme de développer un backend OpenGL en parallèle au backend Direct3D.
      D'ailleurs, beaucoup de moteurs font ça (tous les jeux Blizzard qui tourne sur mac, les jeux Valve qui tournent sur mac, les jeux ID Software).

      En plus, avec la percée des platformes mobiles (Android, iPad/iPhone) qui utilisent OpenGL ES, les développeurs de jeux vidéos semblent être tout à fait capable de porter leurs jeux. Les Sims existe sur iPhone, Epic Games a sortit une démo technologique de leur moteur sur iPhone, ID Software a sortit Rage.

      Je crois franchement que les gros développeurs de jeu n'en ont franchement rien à carrer des 1% de part de marché de Linux. Et puis bon, comme le linuxien moyen est assez bidouilleur, ceux qui veulent jouer sous Linux s'en sortent avec Wine.

      C'est assez triste comme situation, mais on peut se tourner vers les éditeurs indépendants (s2games, humble indie bundle, etc..) et les quelques gros qui prennent la peine d'écrire des jeux portables.
      • [^] # Re: Portage de jeux Direct3D ?

        Posté par  . Évalué à 6.

        > Je crois franchement que les gros développeurs de jeu n'en ont franchement rien à carrer des 1% de part de marché de Linux. Et puis bon, comme le linuxien moyen est assez bidouilleur, ceux qui veulent jouer sous Linux s'en sortent avec Wine.

        Justement, ça sera toujours mieux pour les joueurs sous Linux si Wine utilise une implémentation native de Direct3D à la place de ce qu'ils ont actuellement.
        • [^] # Re: Portage de jeux Direct3D ?

          Posté par  . Évalué à 1.

          Dommage que pour le moment, ils aient pas trop l'air emballés...
        • [^] # Re: Portage de jeux Direct3D ?

          Posté par  . Évalué à 2.

          Il me semblait que Wine avait déjà implementé une grosse partie de DirectX dans le core de Wine, je me gourre ?
          • [^] # Re: Portage de jeux Direct3D ?

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

            Il me semblait que Wine avait déjà implementé une grosse partie de DirectX dans le core de Wine, je me gourre ?

            Extrait de la dépêche :

            Pour rappel, Wine implémente actuellement une partie de Direct3D au-dessus d'OpenGL, c'est à dire que chaque appel à une fonction D3D est traduit en l'équivalent OpenGL, ce qui dans certains cas relève plus de l'émulation que de la traduction.
            • [^] # Re: Portage de jeux Direct3D ?

              Posté par  . Évalué à 1.

              Au temps pour moi, j'ai toujours cru que les mecs s'étaient pris la tête à recoder le coeur de Direct3D dans Wine.

              Maintenant, Quid de savoir si les mecs de Wine ont envie de virer le code Direct3D et laisser un projet externe géré cela ...
      • [^] # Re: Portage de jeux Direct3D ?

        Posté par  . Évalué à 3.

        D'ailleurs, beaucoup de moteurs font ça (tous les jeux Blizzard qui tourne sur mac, les jeux Valve qui tournent sur mac, les jeux ID Software).
        Donc quelques cas exceptionnels qui font attention à la portabilité et à coder proprement. Je pense que la donne a changé avec les consoles de dernière génération et les mobiles, mais avant ça, la portabilité et coder proprement, ce n'était pas une priorité.
        Parmi ces cas exceptionnels, tu as celui de valve qui s'est bien retrouvé dans la merde avec le premier half life quand ils ont essayé de le porter et abandonné à 95% du port quand ils se sont rendus compte que les solutions réseaux qu'ils avaient choisi rendraient leur port mac incompatible en réseau avec les pcs (du "direct play" inside j'imagine).

        Dans les cas que tu cites ensuite, tu as les jeux EA qui à ma connaissance licencient la techno de cedega portée sur mac pour faire porter leurs jeux. Donc même s'ils n'en ont rien à foutre de linux, il y a des passerelles qui font que les améliorations des uns peuvent se retrouver à aider les autres.

        C'est assez triste comme situation, mais on peut se tourner vers les éditeurs indépendants (s2games, humble indie bundle, etc..) et les quelques gros qui prennent la peine d'écrire des jeux portables.
        C'est vrai, mais si on veut être honnête jusqu'au bout, on peut se tourner vers les indé parce qu'ils ne poussent pas les moteurs graphiques dans leurs retranchements.
        • [^] # Re: Portage de jeux Direct3D ?

          Posté par  . Évalué à 4.

          > mais avant ça, la portabilité et coder proprement, ce n'était pas une priorité.

          Surtout qu'à l'époque on développait spécialement pour l'architecture et donc on optimisait à mort.
          Rien que pour les consoles, genre Megadrive ou SuperNes, il fallait exploiter à mort le chipset hardware sinon on était à l'ouest par rapport à son concurrent.

          Maintenant, les développeurs s'en foutent un peu plus (je dis pas totalement, il en reste qui veulent faire sortir les tripes de la console). Je me demande si c'est pas le syndrome de "j'ai de la place, je peux en foutre partout": Plus de RAM: on optimise plus la mémoire bouffée par le jeu; Plus de CPU: on essaye pas de trouver des subtiles hacks pour gagner quelques cycles...

          Bref, on s'fait vieux...
          • [^] # Re: Portage de jeux Direct3D ?

            Posté par  . Évalué à 6.

            >Rien que pour les consoles, genre Megadrive ou SuperNes, il fallait exploiter à mort le chipset hardware sinon on était à l'ouest par rapport à son concurrent.
            Je pense que ça prend du temps pour en arriver là. Les premiers jeux des consoles sont toujours à chier, techniquement, par rapport à ce qui se fait quelques années après. Je pense pas que ça ait changé, je pense même que c'est pire parce qu'ils mettent encore plus de temps à maitriser les bases du matos. Les meilleurs jeux sness sont arrivés en fin de vie de la console pour lui donner un nouveau souffle.

            Ce qu'il faudrait voir c'est combien de temps il faut à un développeur pour maitriser le matos actuel jusqu'au bout.
            Ce qui peut avoir changé la donne, c'est la durée de vie des consoles en tant que produit; s'ils mettent sur pied une nouvelle génération de console pour des raisons de guerre commerciale, on ne sera jamais arrivé au point où des gars auront eu simplement le temps matériel de maitriser tout le matos.
            Un autre point qui a changé la donne, c'est la durée de vie des consoles tout cours, microsoft a donné le ton avec ses xbox qui ont une durée de vie pitoyable, mais sony semble avoir suivi, les échos autour de moi c'est beaucoup de ps3 qui meurent au bout de quelques années. Donc combien de consoles il restera dans quelques années qui justifieront à des dév de continuer à travailler sur ce matos?

            On est dans le pire des pire attitudes consuméristes, alors que, dans l'temps, une console durait toute la vie, moi, j'vous l'dit.

            Sinon, question PC, c'est un peu l'inverse, la plupart des boites suivent la technique et développent en incorporant les dernières capacités de la mort, mais ça ne veut pas dire qu'ils maitrisent le matos un jour, ni même qu'ils le pourraient le faire vu la guerre des boites de composants, il faudrait qu'il développe plusieurs fois, pour chaque marque de matos, et ensuite spécifiquement pour des générations de périfs.
            C'est pas trop possible, bien qu'ils le fassent un peu avec les différentes configurations possibles dans les jeux.
            Par contre, c'est le design de gameplay et la durée de vie des jeux qui est passée à la trappe en faveur des graphismes, à part chez justement quelques boites comme blizzard ou valve, et chez les indés.

            C'est plus ce que c'était, mon jeune ami.
            • [^] # Re: Portage de jeux Direct3D ?

              Posté par  . Évalué à 2.

              "Ce qu'il faudrait voir c'est combien de temps il faut à un développeur pour maitriser le matos actuel jusqu'au bout.
              Ce qui peut avoir changé la donne, c'est la durée de vie des consoles en tant que produit; s'ils mettent sur pied une nouvelle génération de console pour des raisons de guerre commerciale, on ne sera jamais arrivé au point où des gars auront eu simplement le temps matériel de maitriser tout le matos."

              Il me semble justement que cela s'améliore. Je ne retrouve plus les sources ni les chiffres exacts, mais il me semble qu'a la sortie de la PS3 Sony avait annoncé une durée de vie de l'ordre de la dizaine d'années, ce qui devrait tout de meme laisser le temps aux developpeurs de maitriser le hardware.

              "Un autre point qui a changé la donne, c'est la durée de vie des consoles tout cours, microsoft a donné le ton avec ses xbox qui ont une durée de vie pitoyable, mais sony semble avoir suivi, les échos autour de moi c'est beaucoup de ps3 qui meurent au bout de quelques années."

              Etant donné que les consoles sont vendues à pertes, les constructeurs ont au contraire interet à faire en sorte qu'elles durent plus longtemps avant de tomber en panne.

              "On est dans le pire des pire attitudes consuméristes, alors que, dans l'temps, une console durait toute la vie, moi, j'vous l'dit."

              Certes, ma NES (Famicom) que j'ai eu à l'anniversaire de mes 8 ans fonctionne toujours 20 ans après (un peu capricieuse sur l'avalage de cartouches quand meme). Cela dit, sur les 15 dernières années, elle a du passer 14 ans et 10 mois au grenier...
              • [^] # Re: Portage de jeux Direct3D ?

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

                Il me semble justement que cela s'améliore.

                1986 nes
                1992 super nintendo
                1997 nintendo 64
                2002 gamecube
                2006 wii

                1987 master system
                1990 megadrive
                1995 saturn
                1999 dreamcast

                1995 playstation
                2000 playstation 2
                2007 playstation 3

                2002 xbox
                2005 xbox360

                J'ai pris en compte les sortis européennes (pour certaines machines c'est 2 ans après le Japon). En gros il y a eu maximum 6 ans entre 2 générations de console salon grand public. La wii a 4 ans, la PS3 4 ans et la xbox360 5 ans. On est tout à fait dans la moyenne.
      • [^] # Re: Portage de jeux Direct3D ?

        Posté par  . Évalué à 1.

        Je veux pas dire de bêtises mais il me semble que "les Sims" qui tourne sur des mobiles linux comme le Pre ou le Nokia N900 utilisent SDL et pas opengl es ... sur iphone je sais pas.
  • # Direct3d libre ?

    Posté par  . Évalué à -10.

    La question qui se posera sera de savoir si l'on souhaite faire tourner un logiciel propriétaire (Direct3D) sur un système libre.
    Pour ma part je n'utiliserai Gallium qu'avec OpenGL.
    Avec l'utilisation du DRI du noyau les performance seront probablement intéressante.

    Je salue cependant la possibilité de faire tourner Direct3D au dessus de Gallium qui est une belle prouesse.
    • [^] # Re: Direct3d libre ?

      Posté par  . Évalué à 10.

      Direct3D est une API qui a plusieurs implémentations libres sous Linux (l'une non native dans Wine, l'autre native dans Gallium). J'ai du mal à voir pourquoi tu considères ça comme un logiciel (déjà ça n'est pas un logiciel) propriétaire.

      C'est comme si je disais que la libc est propriétaire car il en existe des implémentations propriétaires.
      • [^] # Re: Direct3d libre ?

        Posté par  . Évalué à 9.

        les implementations ne sont pas proprio par contre la je suis a peu pres sur que cela viole des dizaines de brevets microsoft et ca c'est une tres tres tres mauvaise idee vu le patent troll que devient cette boite.
      • [^] # Re: Direct3d libre ?

        Posté par  . Évalué à -2.

        Le problème est l'implémentation qui ne peut être libre à cause du ou des brevets derrière.
        Donc oui je redis propriétaire en tout cas pour l'instant.
        Pour ce qui est de wine je ne suis pas sur que Microsoft les poursuivent mais ils pourraient.

        OpenGL est une solution bien plus libre dans les version inférieures à 3.
  • # Quand même bizarre...

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

    ... cette manie de certains systèmes libre qui consiste à "copier" Microsoft au lieu de faire fructifier le terreau fertile de l'innovation sans limite ?

    Oups, j'avais pas vu, je viens de marcher dans un troll phoronix ;)
    • [^] # Re: Quand même bizarre...

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

      Je suis d'accord avec toi. Nous ferions mieux de soutenir OpenGL alors qu'implémenter Direct3D sous Linux nous expose à des poursuites judiciaires pour violation de brevets. Le problème est un peu le même pour .NET.
  • # D3D is dead.

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

    Je vais même pas relever le troll énorme D3d > OpenGL, qui est juste faux depuis pas mal de temps.

    Mais surtout, pourquoi contribuer a faire survivre une API qui est deja game over ?

    Microsoft a perdu la guerre de la 3D sur les mobiles : victoire par KO d'OpenGL ES
    Microsoft a perdu la guerre de la 3D dans le browser : victoire par KO de WebGL

    D3D ne survit plus que par son inertie, alors ne commençons pas a l'aider. Arrangeons-nous plutôt pour que ceux qui développent déjà en OpenGL aient de grosses incitations a porter sous Linux (WOW, Steam, c'est a vous que je pense...)
    • [^] # Re: D3D is dead.

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

    • [^] # Re: D3D is dead.

      Posté par  . Évalué à 6.

      Le marché de la 3D sur mobile et sur le web réunis c'est ε face aux jeux vidéo 3D que ce soit en nombre d'utilisateur que financièrement.

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: D3D is dead.

        Posté par  . Évalué à 7.

        C'est le cas aujourd'hui.
        Si on ne veut pas être à la traîne demain, il faut arrêter de tout décider suivant ce qu'on a aujourd'hui.
        Le pompon serait que MS sorte une implémentation OpenGL ultra-performante pour son prochain Windows pendant que la communauté Linux rame pour terminer son Direct3D que plus personne n'utilisera d'ici là...
      • [^] # Re: D3D is dead.

        Posté par  (Mastodon) . Évalué à 3.

        Personnellement, je vois plus de monde jouer et acheter à des jeux vidéos sur leur iphone que sur un pc qui est devenu grandement marginal comme plate-forme de jeu.

        Et si l'on fait les parts de marchés entre les différentes consoles, en 2009 c'était environ ça :

        intendo Wii (45,37M de consoles) : 50%
        Microsoft Xbox 360 (27,24M) : 30%
        Sony PlayStation 3 (19,27M) : 20%

        Consoles portatives -
        Nintendo DS (96,69M) : 70%
        Sony PSP (42,86M) : 30%

        J'imagine sans être sûr que tout ce qui est nintendo ou sony utilise opengl et que les jeux xbox utilisent direct3d. Certe je n'en suis pas sur mais ça devient tout de suite plus maigrelet comme parts de marchés.
        • [^] # Re: D3D is dead.

          Posté par  . Évalué à 3.

          Pour information, Nintendo, c'est de "l'Open GL like".
          On retrouve pas mal de fonctionnalité d'OpenGL, certaines sont conforment, d'autres non et enfin d'autre sont cruellement manquantes.
          Les plate-formes Nintendos sont donc assez spécifiques alors que la Xbox ressemble beaucoup plus à un PC traditionnel.
        • [^] # Re: D3D is dead.

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

          je vois plus de monde jouer et acheter à des jeux vidéos sur leur iphone que sur un pc qui est devenu grandement marginal comme plate-forme de jeu.

          Oui c'est pour cela que world of warcraft va bientôt couler faut de joueurs et que Starcraft II s'est vendu qu'à quelques millions d'exemplaires.
          Les joueurs ne vont pas du PC vers l'iphone, ce n'est pas du tout le même type de jeux. Les joueurs vont du PC vers les consoles (PS3/xbox360), surtout depuis que les FPS sont jouables sur ces plateformes. Les seuls jeux qui restes sur PC sont les jeux utilisant massivement la souris ou le clavier (souris pour les jeux de stratégie, clavier pour les meuporgs).

          Les plateformes mobiles gagnent eux les nouveaux entrants, ceux qui ne jouaient pas aux jeux vidéos ou très occasionnellement. D'ailleurs les téléphones ne sont pas des vrais plateforme de jeu vu qu'ils ont autant d'autonomie que la vénérable game gear.
          • [^] # Re: D3D is dead.

            Posté par  . Évalué à 3.

            Tout à fait d'accord j'ajouterais que steam se porte très bien, ça montre que l’intérêt pour le jeux sur PC.

            Franchement dans mon entourage casser la barrière Directe3D, pourrait permettre de supprimer un certains nombre de dualboot Windows/Linux.

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

            • [^] # Re: D3D is dead.

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

              Si casser cette barrière signe la fin de Linux, il sera préférable de la laisser et les grands éditeurs n'ont qu'à se mettre à OpenGL ce qui est inévitable pour supporter de nombreux plateformes dont la majorité des smartphones.
          • [^] # Re: D3D is dead.

            Posté par  . Évalué à 5.

            Je suis d'accord avec toi sauf sur un seul point : les FPS sur consoles sont risibles de facilité et le pad est une vraie merde quand il s'agit de viser et d'être réactif.

            Rien ne vaut un clavier et une souris pour jouer à un FPS.
            • [^] # Re: D3D is dead.

              Posté par  . Évalué à 3.

              Je dois être trop vieux mais je trouve ça impossible de jouer à un FPS console.

              Pour moi viser à la souris est largement plus adapté qu'avec un stick.
              • [^] # Re: D3D is dead.

                Posté par  . Évalué à 1.

                C'est pas une histoire de vieillesse, sois-en rassuré :)

                D'ailleurs, les pads consoles sont tellement merdiques pour du FPS que les joueurs finissent par se retrouver avec des jeux solos où les ennemis ne tirent plus sur le joueur ou font exprès de le rater.

                Exemple:
                http://nofrag.com/2010/nov/04/36124/

                Le type qui met 5s à viser un ennemi cinq mètres devant lui... magnifiques :')
                • [^] # Re: D3D is dead.

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

                  Oui oui, je n'ai pas les chiffres mais je crois que les ventes de FPS sur console font jeu égale avec les FPS sur PC. Peut être la faute à des jeux beaux mais demandant l'acquisition d'une véritable machine de course, alors que pour les console une fois la PS3 acheté il n'y a rien à racheter pour faire tourner le dernier jeu.
                  Après le seul FPS que j'ai joué sur console c'est Metroïd prime sur wii. Et c'est vraiment un très bon jeu où les ennemies ne font pas semblant de te tirer dessus.
                  • [^] # Re: D3D is dead.

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

                    Justement sur Wii on peut espérer qu'ils ont bien exploité la Wiimote pour faire même mieux qu'avec une souris. Ça doit être absolument pas représentatif d'un FPS joué avec une manette orthodoxe.
                    • [^] # Re: D3D is dead.

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

                      Je suis vraiment pas convaincu qu'on va faire mieux avec une wiimote qu'avec une souris. Niveau précision, la wiimote ne sera jamais autant précise que la souris. Ne serait-ce que parce que le fait de devoir tenir la wiimote devant soi pour viser ça va te faire trembler après quelques seconds. Même si ce sont des tremblements faibles, par rapport à une souris, c'est énorme.

                      La souris a l'énorme avantage d'être très reposante pour les muscles (un peu moins pour les tendons mais c'est une autre histoire). Ca ne demande quasiment aucun effort et ça permet de faire des mouvements très petits et maîtrisés.

                      Après, on peut utiliser intelligemment la wiimote pour immerger le joueur. Si tu t'y crois et que tu tiens ta wiimote comme un pistolet devant ta télé, ça peut être super niveau immersion. En tout cas mieux qu'avec wasd et une souris :)

                      Donc à mon avis, on ne verra jamais un joueur de Quake 3 au pad/wiimote battre un joueur PC.
                      • [^] # Re: D3D is dead.

                        Posté par  . Évalué à 4.

                        Avec l'accessoire pour tenir la wiimote à deux mains, c'est à te dégoûter de jouer aux FPS avec une souris.

                        C'est plutôt précis quand même. Tu peux pas viser au pixel près, mais c'est plutôt réactif.

                        Envoyé depuis mon lapin.

                • [^] # Re: D3D is dead.

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

                  Le lien que tu poste là c'est juste un bitzemol totalement cheloux, le mec ne prends même pas le temps de viser pour tirer....

                  Pour avoir jouer à COD4 (un FPS représentatif), sur PC et sur console, les différences sont pas si marqués que ça, en vrac :

                  - Ton pc doit être une machine de guerre pour jouer correctement (ça n'as rien à voir sur une TV de 107cm)
                  - Les touches tombent plus naturellement sous la main avec une manette (surtout sur la PS3) que sur un clavier/souris
                  - Il faut plus de temps pour viser juste avec une manette, c'est problématique pour les missions spéciales chronométrer, pas tellement lorsqu'on joue à plusieurs, c'est moins rapide que sur PC et je préfère
                  - Sur PC on peut faire des LANs sauf quand ça utilise STEAM ou équivalent :p

                  Bref, je peux comprendre les gens qui jouent sur console à des FPS :p
                  • [^] # Re: D3D is dead.

                    Posté par  . Évalué à 2.

                    > - Ton pc doit être une machine de guerre pour jouer correctement (ça n'as rien à voir sur une TV de 107cm)

                    Ah ah, je joue à Battlefield Bad Company 2 avec une config qui a plus de deux ans (Q9300, une 4850...). Le tout tourne à 60 fps stable sur un 24" (61cm) et ça reste beau.

                    > - Les touches tombent plus naturellement sous la main avec une manette (surtout sur la PS3) que sur un clavier/souris

                    Les manettes ont tellement peu de contrôles que les développeurs sont obligés de bind plusieurs actions sur une touche en espérant qu'elles ne seront pas sollicitées en même temps.
                    C'est grâce à ça qu'on se retrouve avec une même touche pour ramasser un pack et désamorcer sur BFBC2, c'est très très chiant.

                    > - Il faut plus de temps pour viser juste avec une manette, c'est problématique pour les missions spéciales chronométrer, pas tellement lorsqu'on joue à plusieurs, c'est moins rapide que sur PC et je préfère

                    Pas grand chose à redire là-dessus par contre (même si toutes les fragmovies consoles sur cod7 que j'ai vu montrait des manchots qui vidaient leur chargeur dans le sol mais passons).

                    > - Sur PC on peut faire des LANs sauf quand ça utilise STEAM ou équivalent :p

                    Quand le type qui héberge a une connexion "ADSL2+ ready" ça pose pas vraiment de problèmes. Dans le pire des cas, à toi de jouer à des jeux qui n'utilisent pas Steam.
  • # fait ??

    Posté par  . Évalué à 4.

    C'est dans ce contexte que Luca Barbieri a décidé d'implémenter l'API Direct3D, version 10/11, directement au-dessus de Gallium 3D. Suite à son premier commit (12 septembre 2010), une discussion s'est ouverte sur liste mesa-dev. Direct3D devient ainsi une API graphique native sous Linux (ou tout système disposant de Gallium3D).

    L'implementation est deja finie ou j'ai mal compris ?? Oo
  • # Anciens jeux Windows

    Posté par  . Évalué à 1.

    Jusquà présent à moins de posséder une ancienne machine, les anciens jeux Windows devait rester dans leur belle boîte au contraire des anciens jeux Dos qui ont retrouvé un peu d'aura (enfin pour les nostalgiques) avec DosBox par exemple :-)
    La solution Wine ne fonctionnant pas très bien pour les jeux.
    Est-ce que ce portage couplé à Wine permettrait enfin de faire tourner d'anciens jeux Windows ?
    • [^] # Re: Anciens jeux Windows

      Posté par  . Évalué à 1.

      Ça m'étonnerait que ça aide beaucoup pour les vieux jeux.

      L'idée est d'implémenter Direct3D 10 ou 11, donc ça dépend ce que tu entends par vieux, mais tous les jeux qui utilisent les version 7, 8 ou 9, tu oublies! (Il me semble que Direct3D est apparu aux alentours de directx 7)
  • # suite

    Posté par  . Évalué à 5.

    J'avais été emballé par la news sous phoronix mais il faut avoir en tête que il faut que wine l'utilise ce qui n'est pas le cas et sur ce sujet les developpeurs de wine sont divisés.
    Pour faire cours, gallium ne supporte pas tout les matériel et c'est loin d'ètre le cas et d'autre part, ce state tracker n'est pas multi os.
    D'autre part, il y a enormément de boulot pour faire le lien entre wine et cette api. Il manque aussi :
    le compilo HLSL , D3DX et les effects.
    Bref, c'est pas demain la veille que l'on vera cela en place.

    lien:http://www.phoronix.com/scan.php?page=news_item&px=ODYzM(...)

    pour ceux qui dise que ca sert a rien de copier:
    Pourquoi réinventer la roue quand une idée est bonne et bien faite...?

    linux c'est pas une "copie" d'unix qui est maintenant mieux réalisé...
    L'important n'est pas d'être le premier à mettre en oeuvre mais le dernier en place.;)

    on passe son temps a réinventé/copié pour améliorer, c'est pour cela qu'il y a autant de langage de programmation (qui se resemble d'ailleurs)
  • # Jeux sous Linux ? Et les protections anti-copie ?

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

    La très grande majorité des jeux propriétaires sous Windows ayant des protections anti-copie (basée sur l'utilisation du CDROM, ou sur une vérification via une connexion Internet), je me demande si les éditeurs de jeux voient réellement la plateforme Linux comme un moyen de faire de l'argent.

    Déjà que sous Windows il existe toutes sortes de mécanismes de contournement des ces protections, sans même parler de patch/crack sur les binaires des jeux, les éditeurs de jeux risquent de voir dans les interfaces open-sources de Linux, un moyen supplémentaire de contourner leurs protection.

    Bref, même si Linux propose un mécanisme natif pour Direct3D, le fait que les mécanismes anti-copie des jeux peuvent être potentiellement plus "fragiles" sous Linux, risque fort de ne pas être suffisant pour attirer les éditeurs de jeux proprios sous Linux.
  • # DirectX ne se limite pas à Direct3D

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

    Les jeux Windows nécessitent DirectX, qui est un ensemble de "fonctionnalités" regroupant la vidéo (Direct3D), mais aussi le son, le réseau, les entrées, etc...

    Même si Linux pourrait avoir une implémentation efficace de Direct3D, il n'en reste pas moins que les autres aspects de DirectX ne sont pas encore implémentés, et que cela représente sans doute pas mal de boulot.

    Or, leur absence empêchera, vraisemblablement, le jeu de fonctionner correctement.

    A moins d'utiliser ce qui existe déjà dans Wine ?
  • # Direct3D supérieur à OpenGL ?!

    Posté par  . Évalué à 3.

    > Enfin, Direct3D est, selon le développeur, largement supérieur à OpenGL :

    Houla, il parle de quel partie de Direct3D ?
    Si c'est pour "les fonctions qui font tout sans avoir a se faire chier", oui effectivement, Direct3D est plus playskool que OpenGL.
    En terme de perf, je suis vraiment pas sûr;
    Carmack s'était déjà essayé à ce type de comparatif et avait déjà eu la conclusion que Direct3D s'était beaucoup amélioré depuis ces dernières années mais restait toujours en dessous des perfs d'OpenGL.
    • [^] # Re: Direct3D supérieur à OpenGL ?!

      Posté par  . Évalué à 7.

      J'ajouterais que comparer Direct3D10/11 à OpenGL en parlant de l'implémentation mesa de OpenGL, c'est un peu comparer Direct3D10/11 à OpenGL 2.1, vu qu'il ne me semble pas que Mesa aille au dessus (pas sans Gallium3d en tout cas).

      Du coup, c'est facile de dire que le design est bien plus clean dans Direct3D... Mais si on regarde bien, OpenGL3.0 apporte un design très différent de 2.0, et c'est encore accentué dans OpenGL 4.0.

      Pour ce qui est des perfs, je crois bien que NVIDIA développe ses cartes en ayant OpenGL en tête, et influence le design d'OpenGL pour ses cartes, donc ça devrait pas faire pencher la balance en faveur de D3D.
      • [^] # Re: Direct3D supérieur à OpenGL ?!

        Posté par  . Évalué à 2.

        Et surtout que j'imagine mal les constructeurs genre Sony, Nintendo, Sega (Dreamcast?) et Apple (pour ne citer qu'eux) utiliser à fond une API clairement moins performantes...
        Surtout qu'Apple pousse à fond sur OpenGL-ES et OpenCL
        • [^] # Re: Direct3D supérieur à OpenGL ?!

          Posté par  . Évalué à 2.

          Ca serait bien d'arreter de dire que Sony ou Nintendo utilisent OpenGL, alors que c'est complement faux.

          - Pour Sony, tres peu de devs utilisent la lib tout pourrie fournie par Sony (PSGL, qui ressemble a OpenGL, mais idem, c'est pas une implementation complete) et utilisent generalement une API differente (libgcm).
          - Pour la WII, ca ressemble a de l'OpenGL, mais en fait c'est different en dessous (GX)
          - Pour Sega, ca fait longtemps qu'ils font plus de hard, donc on s'en tape un peu. Et la Dreamcast, ca tournait sous Windows CE avec une version custom de DirectX, pas de chance :P

          En bref, c'est inspire d'OpenGL, mais c'est pas la meme chose. Et donc ca n'aide en rien la portabilite. Et comme ils ont chacun leur API custom plutot que du pur OpenGL, ca detruit un peu l'argument.

          Reste Apple et vu les perfs 3D pour les jeux avec leurs pilotes merdiques de chez merdique, on va se contenter de doucement rigoler... Ils utilisent bien OpenGL et investissent pas mal dessus, mais c'est certainement pas pour une soit-disant meilleure performance par rapport a des API concurrentes.

          Au final, quelque soit la lib utilisee, tu peux toujours arriver a exploiter a fond le matos en dessous. La question, c'est combien de temps et d'effort ca prend. Et pour ca, malheureusement, OpenGL est pas encore au niveau (et c'est pas la leeeeente evolution de l'API qui est la pour rassurer). Et pour ceux qui mettent en avant les versions 3 et 4, z'avez vu passer des pilotes OpenGL 4 libres dans un coin? Non? Ben voila...
          • [^] # Re: Direct3D supérieur à OpenGL ?!

            Posté par  . Évalué à 4.

            Bah alors, p'tit gars, t'as pas eu tes granolas ce matin ?
            (p'tit gars ... littleboy ... huuuuuuuuuuuuumouuuuuur !)

            > Pour Sony, tres peu de devs utilisent la lib tout pourrie fournie par Sony

            C'est moi où déjà tu te contredis avec ta première phrase ?
            De plus, si les devs n'utilisent pas le SDK et les libs fournies par SCEJ c'est pas le problème de cette dernière.

            Enfin, Sony utilise bien OpenGL et OpenGL ES pour certains matos:

            Je cite:

            At Sony Computer Entertainment’s PlayStation meeting the company president showed off the development kit hardware and confirmed and the choice of OpenGL ES as the graphics API in order to facilitate rapid developer adoption and content creation. The Sony Playstation 3 will be using OpenGL ES for the 3D graphics API, NVIDIA’s Cg shader language and tools (CG compiler, FX composer, ShaderPerf and PerHUD), and the development tools will also incorporate support for the COLLADA format for art asset interchange so that developers can share interactive 3D art among multiple platforms. This also opens the possibility that after the PS3’s launch, the platform could be opened to general development to anyone, not just game developers. (In marked contrast to Xbox).

            Je vois pas ce qu'il faut de plus.

            Pour ne pas être taxé de quoi que ce soit, je cite ceci:

            « The PlayStation 3 game console has an OpenGL implementation but it remains unused by most developers due to performance issues. »

            Ce qui va dans ton sens (« lib tout pourrie fournie par Sony ») mais qui te contredit (« has an OpenGL implementation »).

            Pour la libGCM, c'est effectivement la librairie développé pour faire des bisous directement au chipset RSX, certes.

            Pour PSGL, je ne fais que citer :

            PSGL is a 3D computer graphics API based on OpenGL ES »
            * Features:
            ** OpenGL ES 1.1 extensions (VBO, FBO, PBO, Cubemap)
            ** OpenGL ES 1.0:
            **** Supported by the PlayStation 3 as one of official graphics APIs [5] (the other one being low level libgcm library).
            **** The PlayStation 3 also includes several features of OpenGL ES 2.0


            Et enfin: http://www.khronos.org/developers/library/siggraph2006/OpenG(...)
            Et encore: http://www.khronos.org/opengles/ (regardez bien la photo vers la fin de page)

            Ah merde! ce que tu semble appeler "implémentation pas complète", c'est justement le type de chose que supporte OpenGL ES: l'utilisation par partie. (j'arrive plus à choper le PDF sur Khronos qui donne les différentes parties)

            En bref, Que Sony n'est pas fait la totalité de l'implémentation OpenGL, pourquoi pas, mais va pas raconter que c'est "faux".

            Pour la Wii/NDS/Gamecube, je te l'accorde, c'est fortement basé sur OpenGL mais ce n'est ni OpenGL ni même OpenGL ES. (je me souviens du SDK DS où ca puait le GL un peu partout mais ca n'avait que la ressemblance). Cependant, je doute que Nintendo n'est jamais utilisé OpenGL sur une de ses plateformes, parce que vu comment a été conçu la N64, quelque chose me dit qu'ils ont pas du réinventer la roue... (source? j'ai rien trouvé dessus)

            Pour Sega, tu remarqueras que j'ai notifié avec "Dreamcast" avec un gros point d'interrogation. Parce que à l'époque, Sega ne voulait pas "fixer" l'OS de Microsoft dans le coeur du système, c'est notamment pour cela que le Windows CE était embarqué dans chaque galette de la Dreamcast. (c'est aussi pour cela que l'OS dans le system core est SegaOS et non Windows CE. Notons que certains s'accordent pour dire que SegaOS n'était pas vraiment un OS mais plutôt un amas de lib et de "possibilité", genre "jump sur le systeme a tel endroit du disque" comme support de base); Bref, j'écarte Sega si cela te fait plaisir, il me semblait - à une époque révolue de toute façon - que certains développeurs n'utilisant pas WinCE et avait fait une implémentation basique d'OpenGL pour leurs jeux.

            > Et comme ils ont chacun leur API custom plutot que du pur OpenGL, ca detruit un peu l'argument.

            Non, vu qu'ils utilisent OpenGL ES.

            > [Apple] mais c'est certainement pas pour une soit-disant meilleure performance par rapport a des API concurrentes.

            Et donc pour quoi ?
            Je doute que ce soit pour la beauté du geste.

            > Au final, quelque soit la lib utilisee, tu peux toujours arriver a exploiter a fond le matos en dessous. La question, c'est combien de temps et d'effort ca prend.

            Merci de faire le professeur des écoles.
            Tout le monde ici (au moins les développeurs) sait très bien qu'il y a déplacement de curseur entre optimisation mais proche du matos ou bien un peu plus de "layer" mais moins proche du coeur, et donc des problèmes de performances qui peuvent se faire ressentir. Il n'y a pas besoin de faire Saint Cyr pour capter cela (ou Epitech... quoique...)

            > et c'est pas la leeeeente evolution de l'API qui est la pour rassurer

            Là, on est d'accord.
            Entre un DirectBidule qui, à chaque version, progresse furieusement et pousse ses petits camarades, et un OpenGL qui doit passer par 36 phases de validation, on peut toujours espérer voir les nouvelles versions arriver (tiens au fait, ca en est où de l'OpenGL version "class" ?)

            PS: tu veux un granola ? j'en ai plein mon tiroir
  • # API GPGPU

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

    J'ai pas encore regardé dans le détail, mais j'ai l'impression que la futur interface Gallium3D risque d'être l'unique API d'accès au GPU. Or une interface "pas 3D" pour du GPGPU est très certainement à envisager.
    Donc la question est simple... dans la nouvelle infrastructure des drivers de GPU, est-ce qu'il est prévu de pouvoir enregistrer une autre API que Gallium3D? Ça voudrait dire qu'il faudrait une API en dessous de Gallium3D qui permette l'utilisation d'une autre API (exemple une dont la sémantique est adaptée à du GPGPU) en parallèle de Gallium3D. Est-ce le DRI2?

    Personnellement, je "vois" une API native à une architecture de GPU sur lequel en enregistre des APIs avec des sémantiques spécifiques à des traitements:Gallium3D pour la 3D et/ou "GalliumGP" pour du GPGPU.
    • [^] # Re: API GPGPU

      Posté par  . Évalué à 3.

      Il me semble que Gallium3d étant le state tracker, l'implémentation GPGPU se fera au dessus.

      En effet, si je dis pas de bêtises, le state tracker est surtout là pour permettre la gestion de la mémoire, et n'enferme donc pas le driver au-dessus dans un point de vue graphique.
    • [^] # Re: API GPGPU

      Posté par  . Évalué à 6.

      (GPU HW)<->(KERNEL DRIVER)<->(GALLIUM-WINSYS)<->(GALLIUM-PIPE-DRIVER)<->(GALLIUM)<->(API OpenGL, Cairo, OpenVG, OpenCL, SuperPapyGPUAPIQuiEplucheLesPommes, ..)

      Gallium est concu pour permettre a plusieur API d'utiliser le GPU, l'idee est qu'on ecrit 1 fois un winsys et pipe driver par GPU et que grace a gallium on peut alors accelerer plusieurs API par dessus, que ca soit du rendu 3D ou du GPGPU ou l'api du père Cruchaud le pipe driver s'en fout.

      En gros gallium abstrait les GPU mordern, un peut comme un les sockets pour les network devices, et par dessus tu peux faire plein de trucs.
      • [^] # Re: API GPGPU

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

        mais alors que vient faire là le 3D de gallium3D? Un abus de langage? Si Gallium est générique et n'a pas de sémantique liée à la 3D, que vient faire le "3D" la dedans?
        Bon j'avoue que je suis pas encore rentré dans le détails de Gallium/Gallium3D/DRI2.

        Bon je mettais en avant le GPGPU, mais ça peut très bien être une API avec une sémantique pour faire les effets de physiques, ou du décodage vidéo tout simplement.

Suivre le flux des commentaires

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