Developpez.com - Rubrique 2D-3D-Jeux

Le Club des Développeurs et IT Pro

La prochaine version d'OpenGL pourrait intégrer Mantle

Et ainsi être aussi performante que Direct3D 12

Le 2014-08-16 19:22:56, par LittleWhite, Responsable 2D/3D/Jeux

C'est au cours du SIGGRAPH 2014, la plus grande conférence liée aux technologies de l'imagerie par ordinateurs que AMD a déclaré donner un accès entier à Mantle pour l'élaboration de la prochaine version d'OpenGL. En effet, Khronos a lancé un appel à la participation pour élaborer ce que serait le futur d'OpenGL. Il est évident, au vu des dernières annonces liées à Mantle, Direct3D 12 et même Metal que Khronos doit travailler pour réduire le coût côté CPU du pilote graphique. Grâce à AMD, ils ont de précieux outils et une base de connaissance afin de parfaire cette tâche.

La prochaine version de OpenGL sera une réécriture complète de la bibliothèque. La tendance actuelle est de donner aux développeurs un accès complet au matériel. Dans ce domaine, AMD avait fait les premiers pas avec sa bibliothèque, Mantle, une bibliothèque bas niveau (en dessous de Direct3D ou OpenGL) et qui avait été utilisée dans le jeu Battlefield 4. Microsoft et Apple ont suivi cette piste permettant ainsi d'optimiser les programmes en enlevant les goulots d'étranglement côté CPU.


Durant le SIGGRAPH 2014, AMD indique que les fonctionnalités de Direct3D 12 ont pour inspiration le travail effectué sur Mantle. Actuellement, 75 développeurs chez AMD travaillent sur cette bibliothèque. Même si on peut croire que la bibliothèque deviendra inutile lorsque les nouvelles versions d'OpenGL et de DirectX 12 viendront, la vision de la firme n'en est pas la même. En effet, DirectX possède une évolution lente, alors que AMD pourra mettre facilement Mantle à jour afin de supporter les dernières fonctionnalités matérielles des cartes graphiques. De plus, DirectX 12 est annoncé comme étant uniquement compatible avec Windows 8, alors que Mantle peut aussi fonctionner sur Windows 7.

Finalement, Mantle devrait arriver sur les cartes graphiques professionnelles (FirePro) prochainement.

Votre opinion

Pensez-vous que la direction prise par les concepteurs de bibliothèques graphiques est la bonne ? Le CPU était-il vraiment problématique pendant le rendu ?
Croyez-vous qu'avec la possible complexification des bibliothèques (toujours plus bas niveau), tous les développeurs de jeux vont se tourner vers les moteurs comme ceux d'Epic Games ou Unity et qu'il n'y aura plus de moteurs originaux ?
Les cartes graphiques vont-elles, à terme, devenir indépendantes du CPU ?

Voir aussi

Mantle, une nouvelle bibliothèque graphique pour mieux contrôler le GPU
WWDC : Apple dévoile Metal, une nouvelle bibliothèque graphique pour améliorer les performances de rendu CPU sur les périphériques iOS
DirectX 12 a été présenté à la GDC 2014

Source

TechReport.com
  Discussion forum
7 commentaires
  • qnop
    Membre régulier
    Bonjour :-).

    Tout d'abord, petite note humouristique, je trouve ça rigolo que les API graphiques comme OpenGL, DirectX, au fur et à mesure de leurs avancements, enlèvent une couche d'abstraction afin de permettre de travailler encore et encore à plus bas niveau (moi qui pensait que les shaders c'était déjà extrême, bien que tellement utile ). Au contraire, des framworks tel que Qt rajoutent des choses encore et encore à chaque mise à jour ^^. Puis même les extensions d'OpenGL rajoutent des choses, mais plus on avance, plus on enlève au final xD.

    Bref.

    Il est évident que le bottleneck principal est lié aux échanges entre la carte graphique et le processeur central. Surtout les drawcall ^^. Comme le montre d'ailleurs ceci : Reduce the driver overhead. Bien qu'OpenGL possède bien des fonctionnalité pour ça : Bindless, Sparse texture. Storage Buffer, SSBO ou encore multi draw indirect ^^, les compute shaders qui permettent de ne pas a avoir à utiliser de changement de contexte pour OpenCL

    Après, il faut voir aussi les quelques mauvais côtés, on va devoir recoder pleins de choses ^^. Puis d'après ce que l'on voit, pour les scènes extérieur avec Halo lumineux ou pluie, Mantle n'est pas encore à la hauteur apparemment d'après les tests sur Battlefield 4 ...

    Après, OpenGL se veut portable, si il intègre Mantle, va t'il pouvoir être utilisable sur du Nvidia (apparemment totalement anti Mantle, cherchant à optimiser au maximum leur driver).

    Voilà, après on ne demande qu'à voir
  • qnop
    Membre régulier
    L'assembleur n'étant pas portable, dans la majorité des cas, et encore plus particulièrement dans le cas des cartes graphiques, ayant chacune son propre jeu d'instruction, il ne faut surtout pas revenir à l'âge de l'assembleur :-).
  • forthx
    Membre éprouvé
    Envoyé par LittleWhite
    Pensez-vous que la direction prise par les concepteurs de bibliothèques graphiques est la bonne ? Le CPU était-il vraiment problématique pendant le rendu ?
    Oui il peut être problématique (pas systématiquement, mais c'est un des goulot d'étranglement possible connu).Je ne sais pas si la direction prise par les concepteurs de bibliothèques graphiques soit la bonne sur le long terme, a moins de conserver une interface générique comme OpenGL pour unifier le tout. Du peu que j'en sache, mantle est inutile pour des machines équipé de GPU non AMD (Mvidia, Intel,...). Ou simplement des machines qui n'utilisent pas Windows (ca en fait dans l'univers PC, console et terminal intelligent). Donc pour le moment je reste sceptique.

    Envoyé par LittleWhite
    Croyez-vous qu'avec la possible complexification des bibliothèques (toujours plus bas niveau), tous les développeurs de jeux vont se tourner vers les moteurs comme ceux d'Epic Games ou Unity et qu'il n'y aura plus de moteurs originaux ?
    Probablement pas, un moteur original est encore un moyen de se distinguer, voir représente la signature de certains studios. Même si un bon nombre de jeux ont effectivement des besoins graphiques moindres (en terme de puissance de calcul) et peuvent donc avantageusement être supporté par des moteurs comme unity.

    Envoyé par LittleWhite
    Les cartes graphiques vont-elles, à terme, devenir indépendantes du CPU ?

    Ca dépend de la notion d'indépendance. Elles le sont déjà un peu (exécution des shaders, programmation en CUDA, ...) mais compte tenu de la structure des ordinateurs, on est pas près de se passer de CPU, ne serai-ce que pour transmettre au GPU le code a exécuter et récupérer le résultats si résultats il y a.
  • Sahengette
    Membre régulier
    c'est bien qu'opengl reste dans la course en se mettant au niveau de son concurrent mais je ne sais pas si ce mantle sera une révolution.

    à force de vouloir toujours du plus bas niveau il risque d'y avoir des situations beaucoup moins gérable, l'exemple de Battlefield est flagrant, Frostbite est un moteur de grande envergure avec une équipe de développeur costaud, ca ne l'a pas empeche d'être un des moteurs les plus buggés (moins vrai aujourd'hui), optimiser une application 3D ne revient pas toujours à vouloir tout controler.
    si on ne sait pas exactement ce qu'on fait (et les meilleurs équipes d'experts ne sont pas à l'abri d'une erreur), la contre performance arrive d'autant plus vite avec des outils toujours plus bas niveau.
    enfin mantle n'est efficace que si le processeur n'est pas à la hauteur avec la carte graphique (et dans ce cas là il est vraiment trés efficace), mais si on a une configuration au top et que le processeur suit il n'apporte plus rien.

    AMHA ce qui manque à Opengl (ou à Direct3D) c'est des idées novatrices dans la manière de faire sans avoir à toujours être plus bas niveau, mantle c'est trés bien pour l'instant mais on ne peut pas descendre indéfiniment le contrôle de la carte graphique.

    bien plus facile à dire qu'à faire ca c'est sur ^^
  • Parce que les gens comprennent petit à petit que l'assembleur c'est l'avenir mec

    Gloire à l'assembleur, ya !
  • C'est vraie, j'avoue, c'est pour ça qu'Intel doit dominer le monde en matière de micro-processeur, imposer son langage de programmation avec sa fameuse syntaxe intel et ainsi écraser tout ses autre concurrents (ARM, AMD, ...)