APU13: Oxide fait exploser la limite CPU avec Mantle

Tags : AFDS; AMD; GCN; Mantle;
Publié le 14/11/2013 à 04:41 par
Imprimer

Après AMD et DICE, c'est au tour d'Oxide de donner son avis au sujet de Mantle et cette fois de proposer les premiers résultats pratiques.


Oxide est une société qui vient d'être créée et qui regroupe quelques développeurs spécialisés dans la 3D (dont une partie avait développé le moteur de Civilization V) qui travaillent à la mise au point d'un nouveau moteur graphique prévu avant tout pour PC, mais par la suite pour Xbox One et PS4 : le Nitrous engine. Ce moteur est annoncé comme prévu à sa base directement pour le 64-bit et surtout pour le multicore en évitant d'avoir recours à un énorme thread principal plus ou moins aidé par des threads secondaires comme c'est le cas actuellement. De quoi permettre selon Oxide Games des scènes beaucoup plus complexes en termes de nombre d'objets et d'animations.

Oxide a bien entendu rapidement été limité dans ses travaux par le surcoût CPU des API classiques qui ont fini par influencer directement la conception des niveaux voire les possibilités de gameplay en forçant les développeurs à éviter de multiplier les commandes de rendu (regroupées en batches) et donc au final le nombre d'objets présents dans la scène. Difficile par exemple de mettre au point une énorme simulation de combat spécial dans laquelle plusieurs milliers de vaisseaux s'affrontent.

C'est pourtant ce que compte se donner les moyens de faire Oxide et pour cela quelques essais ont été faits avec plusieurs options. Bien entendu Oxide s'est penché sur les deferred contexts, soit le multi-threading de DirectX 11, mais ils se sont avérés être peu efficaces et une grosse déception en pratique. Pour l'ensemble des développeurs que nous avons pu rencontrer cette fonction est au mieux décevante, au pire une vaste blague. Le problème est que l'application, l'API et le pilote n'arrivent pas à se comprendre.

L'API que propose AMD donne à l'application le contrôle nécessaire pour profiter d'un multi-threading efficace. Sur base de la version alpha de Mantle, et en très peu de temps, Oxide a pu obtenir des résultats impressionnants. Le développeur annonce, en précisant être très conservatif, une réduction d'un facteur 10 du coût de la gestion des batches de commandes de rendu pour un gain de 3x au niveau de l'application dans sa globalité, ce à quoi il faut ajouter en pratique les gains obtenus au niveau du multi-threading.


D'une limite de +/- 15 000 batches à partir de laquelle les performances s'effondrent en version DirectX, le Nitrous Engine en version Mantle n'a aucun problème à gérer 100 000 batches. De quoi autoriser des combats de plusieurs milliers de vaisseaux, difficile à représenter sur base d'une photo de l'écran, mais impressionnants en terme de potentiel de gameplay.

Oxide précise par ailleurs que cette gestion efficace du multi-threading bénéficie aux CPU AMD avec par exemple un FX 8350 capable de rivaliser avec un Core i7 4770K.

Pour Oxide, il est maintenant évident qu'il n'est plus possible de se contenter des limitations des API telles que DirectX, le point de non-retour a été atteint en ce qui les concerne. Là aussi il s'agit d'un appel du pied évident à Nvidia et Intel.

Vous trouverez ci-dessus des clichés de la présentation d'Oxide au Developer Summit 13 d'AMD :














Vos réactions

Top articles