Mantle : une nouvelle bibliothèque graphiques pour mieux contrôler le GPU
Visant à se débarrasser des obstacles compliquant la vie des développeurs

Le , par LittleWhite, Responsable 2D/3D/Jeux
Durant le « Developer Summit » de AMD, le constructeur a donné de plus amples explications sur sa nouvelle bibliothèque : Mantle.
Le but d'AMD en proposant une nouvelle bibliothèque bas niveau permettant aux développeurs de jeux vidéo de se débarrasser des obstacles leur compliquant la vie.
Frostbyte Engine 3, le moteur développé par Dice utilise déjà cette nouvelle bibliothèque dans Battlefield 4. Grâce à Mantle, les développeurs ont un meilleur contrôle sur le GPU et la mémoire graphique tout en conservant un surcoût faible. Toutefois, la bibliothèque n'est disponible que pour Windows et que pour les récentes puces de la firme.


Mantle se place un niveau en-dessous de DirectX ou OpenGL. Les développeurs ne vont pas pour autant revenir à la programmation en assembleur pour les puces graphiques mais auront ainsi un contrôle plus fin sur la carte graphique.

Le problème qu'ont les bibliothèques actuelles est au niveau du surcoût des commandes de rendu. Cela peut s'expliquer par les vérifications des paramètres et des erreurs ou encore, la traduction en commande native pour le GPU.
D'après AMD, les jeux actuels se limitent à une moyenne de 3 000 à 5 000 appel à des commandes de rendu (10 000 pour les codes optimisés), alors qu'avec Mantle, il sera possible d'atteindre 100 000 appels de ce genre.

Pour cela, AMD fait en sorte de conserver une bibliothèque simple permettant de visualiser facilement son fonctionnement. Malgré tout, son utilisation ne sera pas simplifié, mais permettra aux développeurs 3D de ne pas être surpris par des comportement cachés. Afin de gagner des performances, Mantle mise sur la réutilisation de données, du précalcul une meilleure gestion de la mémoire et un contrôle sur la génération des commandes de rendu.


Son fonctionnement est finalement simple : l'application génère des commandes qui iront dans la queue du GPU. La différence est dans le fait que la répartition des commandes n'est plus laissé au pilote, mais au développeur. Le second avantage est de proposer un multi-threading efficace. Finalement, la bibliothèque permet la gestion de plusieurs GPU et ainsi, de déterminer où les commandes de rendu doivent être exécutées.

En plus de tout cela, Mantle introduit un nouveau objet : le pipeline monolithique. Celui-ci permet de sauvegarder l'intégralité de la configuration de la carte graphique (les états, les shaders...) et devrait permettre de nouveaux types de rendu jusqu'à présent inaccessibles.

Mantle améliore l'utilisation de la mémoire graphique en la simplifiant. Il n'y a plus que deux zones distinctes : les zones mémoires et les zones de rendus. Mantle permet de donner un contrôle plus précis de la mémoire à l'utilisateur. Comme il sait exactement ce qu'il souhaite, permettant ainsi des optimisations plus précises.

Finalement, AMD annonce avoir besoin d'outils efficaces, mais que cela est sur une bonne voie, sachant que la bibliothèque intègre directement des mécanismes de débogage et de validation. Mantle n'est pas prévu pour être limité à une unique architecture. Le constructeur précise que la base se limite à des fonctions relativement générique et donc, pouvant être supporté par d'autres constructeurs. Toutefois, Mantle utilise la mémoire virtuelle unifiée qui n'est pas disponible chez tous les constructeurs.

Votre opinion

Que signifie cette nouvelle technologie pour vous ?
Subissez-vous les contraintes des bibliothèques comme DirectX et OpenGL ?
Êtes-vous intéressé par la technologie Mantle ?

Source

Hardware


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de stardeath stardeath - Membre expert https://www.developpez.com
le 14/11/2013 à 22:28
Que signifie cette nouvelle technologie pour vous ?
Subissez-vous les contraintes des bibliothèques comme DirectX et OpenGL ?
Êtes-vous intéressé par la technologie Mantle ?

heu j'ai énormément de mal à comprendre le but de ce truc, c'est quand même amd/nvidia/intel qui écrivent les drivers dx/ogl pour leurs cartes graphiques restrictives alors soit :
- les apis (dx/ogl) sont "mal" désignées, dans ce cas ça peut se justifier d'avoir une nouvelle api ;
- chez amd ils sont incapables d'écrire un pilote pour leur propre matos.

loin de moi de penser réellement ça, mais vu que visiblement il n'y a pas moyen de tester mantle, pour l'instant je me demande ce qui les empêche de faire la même chose avec dx/ogl.

surtout que mis à part avoir une soupe de polygones, de textures et de jouer avec, je ne vois pas ce qui peut poser problème avec les apis classiques.
Avatar de I_Pnose I_Pnose - Membre chevronné https://www.developpez.com
le 15/11/2013 à 9:02
Citation Envoyé par stardeath  Voir le message
Que signifie cette nouvelle technologie pour vous ?
Subissez-vous les contraintes des bibliothèques comme DirectX et OpenGL ?
Êtes-vous intéressé par la technologie Mantle ?

heu j'ai énormément de mal à comprendre le but de ce truc, c'est quand même amd/nvidia/intel qui écrivent les drivers dx/ogl pour leurs cartes graphiques restrictives alors soit :
- les apis (dx/ogl) sont "mal" désignées, dans ce cas ça peut se justifier d'avoir une nouvelle api ;
- chez amd ils sont incapables d'écrire un pilote pour leur propre matos.

loin de moi de penser réellement ça, mais vu que visiblement il n'y a pas moyen de tester mantle, pour l'instant je me demande ce qui les empêche de faire la même chose avec dx/ogl.

surtout que mis à part avoir une soupe de polygones, de textures et de jouer avec, je ne vois pas ce qui peut poser problème avec les apis classiques.

Ce que j'ai compris du bousin, c'est que visiblement l'abstraction apportée par DirectX et OpenGL limite le nombre d'appel de commandes GPU, et qu'avec une telle API, débarrassée de tout un tas de mécanismes de contrôle et d'assistance, on se retrouverait avec quelque chose de plus efficace. Bref, je pense que c’est totalement indépendant des pilotes (et de leur qualité intrinsèque).
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux https://www.developpez.com
le 15/11/2013 à 9:28
En fait, les implémentations faites dans les pilotes de carte graphique font que les premières lignes de code de chaque fonction vérifient les cas d'erreur.
Prenons glDrawArray :

Vous voyez quatre erreurs possible :
GL_INVALID_ENUM is generated if mode is not an accepted value.

GL_INVALID_VALUE is generated if count is negative.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array and the buffer object's data store is currently mapped.

GL_INVALID_OPERATION is generated if a geometry shader is active and mode is incompatible with the input primitive type of the geometry shader in the currently installed program object.

Les premières lignes de l'implémentation de cette fonction vont vérifier ces cas, pour pouvoir retourner les erreurs adéquates. Et cela est vrai pour la majorité des fonctions. Du coup, AMD estime qu'il y a une grande partie du temps perdu dans ce genre de traitement.

La seconde idée est de dire : le pilote fait des optimisations, mais celles-ci sont généralistes. Un développeur de jeu, expert en programmation GPU pourra, à l'aide de Mantle (et donc, d'un accès plus direct au GPU), faire les optimisations que lui, pense bonnes et non des optimisations génériques qui peuvent ne pas améliorer les performances. C'est un meilleur contrôle sur le GPU, mais c'est un contrôle qui sera réserver pour l'élite, si on peut dire. Un développeur indépendant n'a aucun intérêt à utiliser Mantle, à vrai dire.

Mantle est actuellement en Alpha et est réservé aux développeurs "proches de AMD", notamment les gars chez Dice. Ils espèrent avoir une bonne documentation pour Mars 2014 et une bêta ouvert toujours à plus de monde. Mais personnellement, je pense que cela sera vite réservé à simplement des développeurs pro (des studios de développement). La version finale est prévu pour le second semestre 2014. Entre temps, le support sera disponible dans tous les pilotes.
Avatar de peace haine love peace haine love - Membre à l'essai https://www.developpez.com
le 15/11/2013 à 10:24
Est-ce qu'AMD cherche créer avec la bibliothèque Mantle l'équivalent de ce qu'a fait NVidia via la bibliothèque CUDA ?
Avatar de Errata Errata - Membre régulier https://www.developpez.com
le 15/11/2013 à 11:51
Citation Envoyé par peace haine love  Voir le message
Est-ce qu'AMD cherche créer avec la bibliothèque Mantle l'équivalent de ce qu'a fait NVidia via la bibliothèque CUDA ?

AMD supporte déjà OpenCL, qui est le pendant "ouvert" de cuda et fonctionne sur tous les différents hardware.
Tout ce que j’espère c'est que Nvidia va suivre l'idée et proposer aussi une lib bas niveau sur sont hardware (qui colle de façon similaire a Mantle).
Ça permettrait de faire des implémentation libre d'openGL plus optimisé ainsi que débuggé et qui fonctionnerais de façon uniforme quelque soit les plateformes !
Offres d'emploi IT
Architecte systèmes études & scientifiques H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)
Consultant sap finance/controlling H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)
Architecte sécurité des systèmes d'information embarqués H/F
Safran - Ile de France - 100 rue de Paris 91300 MASSY

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -