Aller au contenu

AMD Mantle : une API graphique testée en profondeur

    1650445204

    API, abstraction et manteau : une introduction à l’API

    L’API Mantle d’AMD est un sujet polarisant dans le monde du jeu sur PC. Il y a beaucoup d’opinions, beaucoup d’informations, beaucoup de spéculations et une poignée de faits connus à passer au crible. Nous voulons raconter toute l’histoire, et nous voulons le faire correctement. Malheureusement, il est presque impossible de discuter de ce sujet sans recourir au jargon de l’industrie, alors commençons par le tout début et posons quelques définitions, plantons le décor, identifions où nous en étions et comment nous en sommes arrivés là.

    Qu’est-ce qu’une API ?

    L’acronyme API signifie interface de programmation d’application. Le mot clé ici est l’interface. Une API est conçue pour permettre aux applications de s’interfacer ou de communiquer entre elles.

    Un bon exemple de cela est la fonctionnalité copier-coller de Windows. Lorsque vous copiez un paragraphe de texte de votre navigateur dans le presse-papiers, puis collez ce texte dans un traitement de texte, vous avez appliqué la puissance d’une API. Les développeurs de votre navigateur ont inclus la prise en charge de la demande (ou de l’appel) de l’API pour copier, tandis que les programmeurs du traitement de texte ont inclus la prise en charge de l’appel de l’API pour coller. Ces deux programmes communiquent entre eux via l’API.

    L’avantage d’une API est que les développeurs de logiciels n’ont pas à coder un support spécifique pour chaque application possible. S’il n’y avait pas d’API, tous les logiciels d’édition de documents dans le monde devraient contenir un code unique pour interfacer quelque chose comme la fonctionnalité copier-coller avec tous les autres logiciels d’édition de documents dans le monde. Ce modèle serait impossible à maintenir.

    Le mauvais côté? Une API n’est pas aussi efficace que le codage d’un support spécifique pour la communication directe entre logiciels. Le prix de la commodité est une utilisation accrue du matériel et des ressources de traitement. 

     OK, qu’est-ce qu’une API graphique ?

    Puisqu’une API existe pour fournir une interface de communication entre les applications, une API graphique communique entre une application et un pilote de carte graphique.

    Le nom du jeu ici est la compatibilité. Au lieu de coder un moteur de jeu pour prendre en charge plusieurs chemins d’interface avec des pilotes de carte graphique spécifiques, les développeurs de jeux peuvent se concentrer sur la communication avec l’API. L’API appelle alors le pilote graphique, qui implémente ses instructions sur la carte graphique. De cette manière, les API graphiques peuvent être considérées comme l’une des couches d’abstraction entre le système d’exploitation et le matériel.

    Si le but d’une API graphique est la simplicité et la commodité, pourquoi y a-t-il plus d’une API ?

    OpenGL a ses racines dans Iris GL propriétaire de SGI, qui a été publié au début des années 1980. Dans un geste surprenant, la société l’a présenté sous la forme d’une norme ouverte appelée API OpenGL (Open Graphics Library). Les concurrents de SGI ont obtenu l’accès en échange du partage de la charge de maintenance et de mise à jour du code.

    Microsoft a même siégé au comité de révision de l’architecture OpenGL jusqu’en 2003, date à laquelle la société a retiré son soutien en faveur de son API propriétaire DirectX, qui est désormais plus prolifique. Actuellement, DirectX est utilisé dans Windows et les Xbox, il est donc facile de justifier le choix de l’API de Microsoft du point de vue d’un développeur qui souhaite tirer le meilleur parti de ses ressources disponibles.

    Cela dit, John Carmack est un résistant célèbre que nous avons vu prouver qu’OpenGL peut toujours être utilisé pour exécuter des jeux PC haut de gamme (comme Rage). De plus, OpenGL est important car il peut être utilisé sur toutes les plates-formes : Windows, Mac et Linux. Android, Windows Phone et l’iPhone utilisent OpenGL ES (Open GL pour les systèmes embarqués). Alors que les jeux sur les appareils mobiles gagnent en importance, OpenGL aussi.

    Quel est le problème avec DirectX 11 et OpenGL ? Pourquoi le monde a-t-il besoin d’une autre API graphique ?

    Deux normes en désaccord sont déjà assez mauvaises. Il semble contre-intuitif d’en ajouter un autre. Alors, comment les API existantes ne répondent-elles pas aux attentes des développeurs ?

    DirectX et OpenGL ont été créés au cours du millénaire précédent. C’était une époque avant que les processeurs multicœurs dans les appareils grand public ne soient possibles. Récemment, certains développeurs ont exprimé leur inquiétude quant au fait qu’ils sont gonflés, sujets à l’instabilité et qu’ils évoluent mal (ou pas du tout) sur des plates-formes bien threadées. De plus, aucune API n’est parfaite. Avez-vous déjà dû mettre à jour un pilote graphique pour qu’un jeu fonctionne correctement ? Chaque fois que cela se produit, l’API graphique a échoué dans son rôle de couche d’abstraction.

    En plus de cela, la rumeur disait que Microsoft envisageait d’arrêter le développement de DirectX en 2013. Dans une interview avec c’t, Roy Taylor d’AMD a été cité comme disant : « Un nouveau DirectX a encore et encore rafraîchi l’industrie, les nouvelles cartes graphiques ont besoin de plus processeurs et plus de RAM. Mais il n’y a pas de DirectX 12. C’est tout. Pour autant que nous sachions, il n’y a pas de plans pour DirectX 12 ». En outre, un e-mail Microsoft divulgué a déclaré que la plate-forme de développement multiplateforme XNA Game Studio n’était pas en développement actif et que DirectX n’évoluait plus en tant que technologie. Microsoft s’est ensuite rétracté et a affirmé qu’il s’agissait d’un malentendu, mais sans plans publiés pour DirectX 12, la communauté des développeurs devenait nerveuse.

    Microsoft Xbox One

    Sony PlayStation 4

    AMD affirme avoir été poussé à la création d’une nouvelle API qui résoudrait ces problèmes à la demande de développeurs désenchantés par l’état de DirectX et d’OpenGL. De plus, comme les APU et les GPU AMD pilotent la Xbox One, la PlayStation 4 et de nombreux PC, la société est dans une position unique pour proposer une API qui pourrait potentiellement être exploitée sur plusieurs plates-formes.

    Comment Mantle s’améliore-t-il par rapport à OpenGL et DirectX ?

    Mantle est associé aux expressions « bas niveau » et « plus proche du métal ». Mais qu’est-ce que cela veut vraiment dire? En termes simples, la réponse est le minimalisme. Il est plus petit, plus simple et par conséquent plus rapide que DirectX 11 et OpenGL. La nouvelle API d’AMD est censée faire moins d’hypothèses sur la façon dont les développeurs veulent rendre une scène donnée. Cela met plus de contrôle sur les ressources entre les mains du développeur, au lieu de l’API, ce qui permet une meilleure optimisation.

    Dans cette optique, Mantle a le potentiel d’être plus efficace. De plus, Mantle est capable d’exécuter des soumissions de tirages entièrement parallèles afin de répartir les charges de travail sur plusieurs unités d’exécution CPU. Si l’API est capable d’utiliser efficacement plus de ressources de traitement, les processeurs plus lents avec plusieurs unités d’exécution peuvent constituer moins de goulot d’étranglement.

    En termes simples, AMD affirme que Mantle a le potentiel d’augmenter les performances sur les systèmes dotés de processeurs hôtes multicœurs plus lents. Là où le CPU n’est pas un goulot d’étranglement, Mantle pourrait même réduire la consommation d’énergie du GPU.  

    AMD prétend être un grand partisan de l’open source. Est-ce que Mantle est une API open source ?

    Mantle n’est pas open source, et AMD ne prétend pas non plus qu’il le sera un jour à l’avenir. La société affirme qu’elle mettra le SDK Mantle à la disposition de tous d’ici la fin de 2014 sans frais de licence ni restrictions une fois le programme bêta fermé terminé.

    Pour clarifier, l’accès au SDK n’est pas la même chose que l’open source. Mais cela signifie qu’en théorie, Nvidia et Intel pourraient écrire un pilote compatible Mantle. En réalité, je pense que c’est peu probable. Mais je garderai mon analyse de la situation pour notre conclusion. Le fait est qu’AMD veut garder le contrôle de Mantle pour l’optimiser pour l’architecture GCN et permettre l’adoption rapide par les développeurs de nouvelles fonctionnalités matérielles, ce qui n’est pas pratique pour les API génériques comme DirectX et OpenGL.

    D’accord, je pense que je maîtrise les bases de Mantle. Et maintenant?

    Eh bien, nous voulons mettre Mantle à l’épreuve et voir exactement ce qu’il peut faire. Alors qu’AMD promet qu’un certain nombre de développeurs travaillent sur la prise en charge de Mantle pour des titres à venir tels que Civilization : Beyond Earth, Star Citizen et Dragon Age : Inquisition, au moment de la rédaction de cet article, seuls trois jeux sur le marché prennent actuellement en charge l’API d’AMD. : Battlefield 4, Thief et Plants vs. Zombies : Garden Warfare. Étant donné que Plants vs. Zombies: Garden Warfare n’a pas de fonctionnalité de référence Mantle disponible et qu’il utilise le même moteur Frostbite qui alimente Battlefield 4, nous nous concentrerons sur les deux premiers titres compatibles Mantle.

    0 0 votes
    Rating post
    S’abonner
    Notification pour
    guest
    0 comments
    Commentaires en ligne
    Afficher tous les commentaires
    0
    Nous aimerions avoir votre avis, veuillez laisser un commentaire.x