AMD Mantle arrive, patch pour BF4 à 10h !
Publié le 30/01/2014 à 06:00 par Damien Triolet
Enfin ! Après quelques mois d'attente, la première version de l'API graphique Mantle est en approche avec un support intégré aux Catalyst 14.1 beta, un patch pour Battlefield 4 et la démo technique StarSwarm.
RappelDévoilée fin septembre lors de la présentation du GPU Hawaii et des Radeon R9 290/290X, l'API graphique propriétaire Mantle s'est fait quelque peu attendre. Il était au départ question de l'arrivée fin décembre d'un patch dédié pour Battlefield 4, EA-DICE s'étant investi dans le développement de Mantle, mais celui-ci a finalement été reporté d'un mois. Le délai n'est pas réellement lié à Mantle, même si tant AMD qu'EA-DICE ont eu un peu plus de temps pour peaufiner son implémentation, mais plutôt aux nombreux bugs qui ont affectés ce jeu et dont la prise en charge était prioritaire.
Les récentes rumeurs qui mentionnaient un nouveau report d'un mois étaient sans fondement et c'est aujourd'hui que débarque le support officiel de Mantle ainsi qu'un patch pour Battlefield 4 préparé par EA-DICE et la démo technique d'Oxide Games : StarSwarm.
Pour rappel, Mantle est une API graphique tout comme Direct3D ou encore OpenGL. Elle s'en démarque par un niveau d'abstraction différent qui propose un compromis orienté vers plus de liberté pour les développeurs et plus de performances, principalement en réduisant le surcoût CPU du traitement des commandes graphiques au niveau des API et des pilotes. Pour plus de détails à son sujet :
APU13: AMD Mantle : premiers détails
APU13: Frostbite & Mantle: proche de la PS4? 15 jeux...
APU13: Oxide fait exploser la limite CPU avec Mantle
Mantle est globalement une API de plus bas niveau que Direct3D et OpenGL, mais il ne s'agit pas de programmer le GPU dans un langage assembleur barbare, les shaders restent d'ailleurs identiques à ceux de Direct3D. Tout l'héritage et l'aspect rétrocompatibilité de ces API les ont alourdies, notamment en imposant de nombreuses vérifications à chaque commande pour s'assurer qu'elle respecte bien tout un tas des paramètres dont certains n'ont plus aucune base technique sur les GPU modernes.
Mantle profite pleinement de l'architecture unifiée des GPU GCN (depuis les Radeon HD 7000) et du support d'une mémoire virtuelle unifiée pour remettre l'API à plat et la simplifier autant que possible. Sous certains aspects, cela simplifie le travail des développeurs mais leur transfère une plus grande part de responsabilité en ce qui concerne la robustesse de leur moteur graphique.
Les gains principaux en termes de performances sont à chercher du côté CPU, à travers ces quatre points :
- Low-overhead validation and processing of API commands
- Explicit command buffer control
- Close to linear performance scaling from recording command buffers onto multiple CPU cores
- Reduced runtime shader compilation overhead
En d'autres termes, Mantle permet de réduire le coût CPU du rendu graphique et de mieux utiliser les CPU multicores pour le traitement de ce dernier. Des gains sont également possibles à travers une utilisation plus efficace du GPU :
- Reduction of command buffers submissions
- Explicit control of resource compression, expands and synchronizations
- Asynchronous DMA queue for data uploads independent from the graphics engine
- Asynchronous compute queue for overlapping of compute and graphics workloads
- Data formats optimizations via flexible buffer/image access
- Advanced Anti-Aliasing features for MSAA/EQAA optimizations
Il va cependant falloir plus de temps pour que les développeurs en tirent parti, soit parce que cela demande encore pas mal de recherche soit parce que cela correspond à des cas qui sont encore peu courants tels que le traitement simultané de tâches de types graphique et compute.
AMD insiste bien sur le fait que Mantle n'est pas sa vision de choses imposée aux développeurs mais bien une réponse à une demande de leur part. AMD indique travailler sur Mantle depuis 3 ans en étroite collaboration avec EA-DICE qui développe le Frostbite Engine exploité notamment dans Battlefied 4. La version alpha de Mantle, qui sert de base aux deux exemples rendus disponibles aujourd'hui, a ensuite été proposée à une poignée de développeurs dont Oxide Games. AMD fait même référence à un "consortium Mantle", laissant penser que les prises de décisions à son sujet se font au moins en partie par les développeurs.
Mantle reste une API propriétaire, actuellement spécifique aux Radeon, mais elle a été conçue pour pouvoir être étendue à d'autres architecture si nécessaire. Nous estimons cependant nulles les chances que Nvidia accepte de rejoindre une initiative d'AMD et/ou que ce dernier ne pose pas des conditions difficiles à accepter.
Les pilotes Catalyst 14.1 betaTout d'abord, AMD s'apprête à distribuer ce qui permet à Mantle de fonctionner, soit un pilote qui intègre son support : les Catalyst 14.1 beta. Initialement ce pilote devait être rendu public ce matin à 6h. AMD nous a indiqué hier soir qu'il y aurait probablement un retard de quelques heures mais s'est ravisé ce matin : suite à des problèmes de dernière minute la sortie du pilote prévu est annulée et un nouveau est en préparation. AMD promet ce pilote rapidement pour la presse, peut-être aujourd'hui, mais il ne sera rendu public que 24h plus tard. Vous pourrez alors les télécharger via ce lien :
Catalyst beta
Au niveau de l'implémentation, si toutes les pistes étaient sur la table au départ, AMD a opté pour l'intégration classique d'un pilote Mantle dans ses pilotes Catalyst, en opposition, par exemple, à l'intégration d'une DLL directement dans les jeux. Nous avions au départ pensé que cette solution serait proposée par AMD pour éviter qu'une mise à jour des pilotes ne vienne modifier le comportement de Mantle et poser un problème dans certains jeux.
AMD nous explique cependant que Mantle est une API tellement simple qu'il n'y a pas de changement de comportement significatif possible après une mise à jour du pilote qui servira plutôt à ajouter des fonctionnalités ou à optimiser les performances. Pour s'assurer qu'un développeur ne construise pas son code autour d'un bug, ce qui pourrait alors poser problème une fois ce bug corrigé, Mantle intègre directement dans l'API ce qu'AMD appelle le "validation layer". En plus d'être fonctionnel, le code des développeurs devra se conformer aux exigences de ce "validation layer" pour que l'application puisse passer au stade de production.
Ces Catalyst beta intègrent une version alpha de Mantle qui est accompagnée de plusieurs limitations :
- Pas de support direct de CrossFire X
- Pas de support des plateformes Enduro / PowerXpress
- Support limité des GPU GCN "1.0"
Le support des plateformes Enduro viendra plus tard, tout comme des facilités d'utilisation du multi-GPU. En attendant, les développeurs restent libres d'implémenter eux-mêmes le multi-GPU, ce que permet de faire Mantle, par ailleurs avec des possibilités d'optimisation plus poussées. AMD publiera et actualisera la liste des limitations sur cette page :
Mantle Known Issues
Rappelons qu'AMD a fait évoluer légèrement son architecture GCN, notamment en y intégrant un support complet de la mémoire unifiée virtuelle. Celles-ci étant à la base de l'API Mantle, ces GPU plus récents se trouvent avantagés et AMD a optimisé en priorité pour le cas de figure qui leur correspond. Ces GPU, que nous qualifions de GCN "1.1", sont Bonaire, Hawaii et Kaveri et correspondent à ces produits :
- Radeon HD 7790
- Radeon R7 260/260X
- Radeon R9 290/290X
- APU A-Series 7000
Les autres GPU GCN, niveau "1.0", se contentent d'un support partiel de la mémoire unifiée, suffisant selon AMD pour une compatibilité totale avec Mantle, mais il faudra probablement un peu plus de travail pour en finaliser la prise en charge optimale. Ces GPU, Oland, Cape Verde, Pitcairn et Tahiti sont compatibles avec cette version de Mantle mais les gains de performances seront limités dans Battlefield 4. AMD précise que ces produits représentent la prochaine priorité sur sa liste et que des optimisations leurs seront dédiées dans de futurs pilotes. Cela concerne ces cartes graphiques :
- Radeon HD 7700/7800/7900 (sauf 7790)
- Radeon HD 8000 OEM
- Radeon R9 270/270X/280X
- Radeon HD 7700M/7800M/7900M
- Radeon HD 8000M
- Radeon R5 M230, R7 M265, R9 M290X
A noter que ces pilotes Catalyst 14.1 beta apportent, enfin, le support du frame pacing (cadence d'affiche régulière en multi-GPU) pour les résolutions supérieures au 1600p pour l'ensemble des cartes graphiques ainsi que pour les APU Kaveri couplées à une Radeon R7 250. Ces pilotes incluent également le support de la HSA pour Kaveri.
Patch Mantle pour Battlefield 4Selon les informations fournies par AMD, EA-DICE va publier à partir de ce matin à 10h une mise à jour pour Battlefield 4 qui apporte, en plus du moteur de rendu Direct3D, un moteur de rendu Mantle. Nous n'avons pas pu avoir accès en avance à ce patch et tâcherons donc de le tester dans la journée. En attendant, voici ce qu'indique AMD concernant les performances :
- Gains de 41% pour une Radeon R9 290X sur un A10-7700K en 1080p Ultra AA4x
- Gains de 40% pour une Radeon R9 290X sur un A10-7700K en 1600p Ultra AA4x
- Gains de 3% pour une Radeon R7 260X sur un Core i7-4960X en 1080p Ultra FXAA
- Gains de 1% pour une Radeon R7 260X sur un Core i7-4960X en 1600p Ultra FXAA
AMD parle ensuite de gains moyens d'un peu plus de 10% en mélangeant des résultats obtenus sur Radeon R9 290X et Radeon R7 260X avec différents CPU. Un chiffre qui ne veut pas dire grand-chose compte tenu des écarts observés dans les situations données ci-dessus.
Cela confirme donc bien que les gains sont à chercher du côté CPU et non du côté GPU. Ce n'est pas une surprise, EA-DICE l'ayant indiqué dès le départ en précisant que les optimisations au niveau des performances GPU étaient toujours à l'état de R&D.
Battlefield 4 intègre le support de CrossFire X directement au niveau de son moteur. AMD précise malheureusement que la stabilité n'est pas parfaite et que le frame pacing n'est pas fonctionnel. En d'autres termes pour le multi-GPU, il faudra encore patienter un petit peu. Eyefinity est par contre fonctionnel à l'exception des configurations de type 5x1 dans lesquelles les écrans sont en mode portrait.
Mise à jour 10h30 : la mise à jour de Battlefield 4 est arrivée comme prévue. Une option dans les paramètres graphiques permet de passer de Direct3D à Mantle si cette API est supportée par le système :
Vous pourrez retrouver quelques informations de plus sur ce patch ainsi que quelques mesures de performances dans le blog de Johan Andersson , le directeur technique du moteur Frostbite.
Démo StarSwarmStarSwarm est une démo proposée par Oxide Games tirée d'une scène de test exploité en interne pour le développement du moteur Nitrous qui a été pensé pour pouvoir gérer des immenses champs de bataille et donc de très nombreux éléments. Augmenter le nombre d'éléments fait exploser le surcoût au niveau des API classiques, ce qui fait du moteur Nitrous et de StarSwarm un bon exemple de la différence énorme que peut faire Mantle, AMD annonçant des performances pouvant être jusqu'à 4x supérieures en cas de limite CPU.
L'aspect graphique de la démo est relativement basique mais correspond à un cas réaliste, selon ses développeurs, de simulation spatiale dans laquelle plusieurs milliers d'unités s'affrontent. De quoi mettre à genoux les plus gros CPU dans la version Direct3D alors qu'un CPU modeste peut encaisser la charge sans trop de problème dans la version Mantle.
StarSwarm devrait être disponible publiquement et gratuitement à 21h. Ni le support d'Eyefinity, ni celui de CrossFire X ne seront de la partie, cela viendra dans une future version de la démo. A l'heure où nous écrivons ces lignes, nous disposons d'une version presse de la démo… mais pas encore des pilotes Catalyst 14.1 beta qu'AMD semble fignoler jusqu'à la dernière minute.
Un début et puis ?AMD indique qu'il ne s'agit que d'un début, que des premiers pas de Mantle alors que de nombreux chantiers restent ouverts. Le spécialiste des technologies graphiques promet ainsi progressivement plus de performances et le support de plus de jeux, 15 sont par exemples prévus sur base du Frostbite 3. En attendant, il reste bien entendu à évaluer les gains réels de ces débuts, ce que nous ferons dès que possible.
Vos réactions
Contenus relatifs
- [+] 11/07: Un patch Vulkan pour Doom
- [+] 01/06: DiRT Rally offert avec les Radeon R...
- [+] 26/03: Le test DirectX 12 de 3DMark est di...
- [+] 19/03: Mantle : guide de programmation dis...
- [+] 16/03: GDC: Quelle API de bas niveau va s'...
- [+] 04/03: GDC: Mantle a rempli son rôle et es...
- [+] 07/02: DirectX 12 : Benchmarks et exclusiv...
- [+] 04/02: Nouvelles versions des R9 290(X) Tr...
- [+] 28/01: Sapphire passe la R9 290X Tri-X à 8...
- [+] 07/11: 8 Go sur R9 290X chez Sapphire et X...