Actualités cartes graphiques
AMD Catalyst 14.3 Beta : Mantle pour Thief
Nouveaux bundles chez Nvidia
Support limité pour les GeForce 8/9/200/300
Nvidia lance les GeForce 800M avec Battery Boost
Pilotes GeForce 335.23 WHQL pour Titanfall
GDC: Direct3D 12 et support matériel, logiciel
Durant les sessions de la GDC consacrées à Direct3D 12, Microsoft et ses partenaires se sont abstenus de rentrer dans trop de détails concernant le support matériel et logiciel. Nous avons cependant pu nous entretenir avec de nombreux ingénieurs et architectes de Microsoft et ses partenaires, qu'ils soient concepteurs de GPU ou de moteurs graphiques. Si tout le monde préfère éviter une déclaration officielle sur les points délicats, nous avons pu en apprendre un peu plus, notamment au sujet de ce qui devrait se passer pour Windows 7...
Il faut tout d'abord bien comprendre que Microsoft a dévoilé Direct3D 12 bien plus tôt dans son processus de développement qu'à l'accoutumée. Les détails sont ainsi toujours en cours de discussion et pourraient être amenés à évoluer même si tout le monde est d'accord pour nous dire que les points principaux sont fixés.

Pour finaliser les spécifications de son API, Microsoft explique avoir voulu intégrer beaucoup plus de retours de ses partenaires, notamment au niveau logiciel. Ainsi, des débuts de portage de moteurs vers Direct3D 12 ont été entrepris avant la finalisation de ses spécifications, de manière à profiter de cette expérience pour les fixer. Microsoft entend s'assurer d'éviter que de bonnes idées sur le papier deviennent des problèmes en pratique, et surtout, que les développeurs conservent leur préférence pour Direct3D dans le monde PC.
Une API avec un niveau d'abstraction globalement plus bas ouvre de nombreuses portes, donne bien plus de marge de manœuvre aux développeurs en faisant disparaître la plupart des limites actuelles. Sans rentrer dans le détail, Microsoft a cependant indiqué que certaines limites artificielles pourraient être imposées notamment pour éviter que les développeurs ne fassent des choses néfastes pour le rendement énergétique, un point important dans le cadre de l'utilisation de Direct3D 12 dans le monde des tablettes ou dans un futur Windows Phone. Microsoft profite à ce sujet de l'arrivée de Qualcomm dans le premier cercle des partenaires de développement de son API.
Selon plusieurs sources, Direct3D 12 et Direct3D 11 devraient continuer à évoluer en parallèle, tous les développeurs n'étant pas prêts à passer directement à un nouveau type d'API qui leur donne plus de responsabilité. Le niveau de support matériel devrait d'ailleurs être cette fois totalement découplé de la version de l'API. Ainsi il n'est pas impossible de voir de nouveaux niveaux de fonctionnalités pour Direct3D 11 qui s'arrête actuellement au 11_1.
Au niveau du support matériel de Direct3D 12, Microsoft a précisé qu'il était possible dès le niveau de fonctionnalité 9_3. Par contre, pour supporter Direct3D 12, en plus de supporter les fonctionnalités graphiques liées au niveau matériel minimum, l'architecture du GPU devra être capable de certaines choses. Le point principal est l'inclusion d'une MMU (Memory Management Unit) pour virtualiser et protéger la mémoire vidéo/système, ce qui est logique compte tenu de la manière dont fonctionne Direct3D 12. C'est la raison pour laquelle AMD et Nvidia ne peuvent pas proposer un support pour Direct3D 12 qui remonte aussi loin en arrière que leurs GPU de classe 9_3. Par contre dans le monde mobile il existe des GPU 9_3 relativement récents qui incluent une MMU et qui pourront donc supporter Direct3D 12. Rappelons qu'AMD a annoncé un support de la nouvelle API pour tous ses GPU GCN, Nvidia pour tous ses GPU depuis la génération Fermi et Intel pour les CPU Haswell. Dans le cas de Qualcomm, ses GPU récents sont capables du support et il sera proposé au cas par cas suivant les demandes de ses clients. Enfin, la Xbox One supportera Direct3D 12.
Y aura-t-il de nouveaux niveaux de fonctionnalités matérielles ? Bien entendu, Microsoft a d'ailleurs cité quelques exemples dès sa première conférence avec la rastérisation conservative et le blending programmable, mais tout en insistant sur le fait que, dans un premier temps, cela serait secondaire. Le but principal est d'apporter sous Windows une API avec overhead réduit et le plus gros des efforts est concentré sur ce point.
Il pourrait y avoir des niveaux 11_x supplémentaires et des niveaux 12_x, soit directement soit par la suite (Direct3D 12.1…). Il n'est d'ailleurs pas impossible que ces derniers soient rendus disponibles sous Direct3D 11. Les détails à ce niveau sont toujours en cours de finalisation, notamment entre ce qui fera l'objet d'un nouveau niveau ou de "caps". Nvidia indique que ses GPU Maxwell sont capables d'aller au-delà des niveaux de fonctionnalités actuels, sous-entendant qu'ils supporteront un éventuel niveau 12_0. Un point étrange alors même que le niveau 11_1 n'est pas supporté. Nous devrions en savoir plus cet été.
L'autre grande question concerne le support logiciel. Microsoft se contente d'indiquer discrètement dans une slide que les pilotes WDDM 2.0, qui devraient être spécifiques à Windows 9, apporteront des réductions du surcoût CPU de la gestion des commandes de rendu. Ce qui sous-entend que d'autres modèles de pilotes WDDM qui apporteraient moins de réduction pourraient être supportés. D'un autre côté, lors d'une session Direct3D 12 organisée en dernière minute par AMD, Johan Andersson (Frostbite Engine, EA/DICE) a clairement affiché son souhait d'un support de Direct3D 12 sous Windows 7, espérant que Microsoft en saisisse l'intérêt. Officiellement, c'est tout ce qui est ressorti des présentations.
En coulisses, les langues se délient quelque peu. En réalité tout le monde serait convaincu de la nécessité de proposer Direct3D 12 sous Windows 7, et particulièrement l'équipe DirectX de Microsoft qui y voit un bon moyen d'inciter les développeurs à passer rapidement vers la nouvelle API. De quoi également renforcer l'influence de Microsoft et de la plateforme Windows dans le monde du jeu vidéo, notamment par rapport à la menace que représente Steam OS.

Microsoft a déjà pris soin de s'assurer auprès des fabricants de GPU que tout cela était réaliste au niveau des pilotes et que les barrières éventuelles pouvaient être facilement contournées. Le seul frein actuel à l'annonce du support de Windows 7 et à la finalisation de son implémentation serait le management supérieur de Microsoft, qui resterait hésitant par rapport à son premier réflexe de vouloir associer les nouveautés à un nouvel OS. Tout le monde semble cependant convaincu qu'il ne s'agit que d'une question de temps avant que les responsables ne se résolvent à accepter l'évidence.
Selon tous nos interlocuteurs, sauf énorme surprise, le support de Direct3D 12 devrait donc bien être proposé sous Windows 7. Par contre il n'est pas certain que toutes les nouvelles fonctionnalités le soient. Microsoft pourrait ainsi opter pour un compromis de type Direct3D 11 et 12 limités aux niveaux de fonctionnalités 11_x sous Windows 7 avec de futurs niveaux 12_x exclusifs à Windows 9, ce qui serait un moindre mal. Affaire à suivre donc
GDC: DirectX 12: 'Mantle' standardisé en 2015
Comme prévu Microsoft vient de lever le voile sur sa future API DirectX 12 ou pour être plus précis sur sa composante graphique Direct3D 12. Lors de la première session consacrée au sujet, Microsoft n'est pas rentré dans le détail et s'est contenté de nous donner les grandes lignes de son API. Des grandes lignes qui correspondent à ce qu'AMD propose avec son API propriétaire Mantle.

Direct3D 12 propose un niveau d'abstraction plus bas que les précédents Direct3D, la responsabilité du contrôle du GPU se retrouve alors en partie transférée de l'API et des pilotes vers l'application et les développeurs. Le premier intérêt est de réduire le surcoût CPU de la gestion des états et du rendu 3D en lui-même. L'API et les pilotes ont moins de vérifications à faire, ce qui réduit la pression au niveau du CPU. Par ailleurs, regrouper une grosse partie du contrôle en un seul endroit, l'application, permet d'enfin exploiter le multithreading de manière efficace. Actuellement, le développeur ne sait pas ce que vont faire de ses commandes le pilote et l'API et il lui est donc impossible de prévoir un multithreading efficace.




Plus spécifiquement, Direct3D 12 va tout d'abord réduire le coût des changements d'états à travers des "pipeline state objects", sorte d'empreinte de l'état du GPU pour un type de tâche particulière. De quoi pouvoir préparer les changements d'états en amont et appliquer ces changements en bloc. Ensuite, Direct3D 12 fait appel au concept de "bundles", des groupes de commandes de rendu liés à un objet particulier de la scène qui, une fois préparés, pourront être stockés en cache et réutilisés autant de fois que les développeurs le jugent nécessaire, que ce soit à l'intérieur d'une même image ou dans des images successives. Direct3D 12 supporte également un nouveau modèle de listes de commandes asynchrones pour faciliter le bon support du multithreading, une gestion des ressources plus flexibles, mieux adaptée aux GPU modernes etc.
Tout cela est très proche voire identique à ce que fait AMD avec Mantle. Oxide Games estime d'ailleurs que les performances de son renderer Direct3D 12 seront similaires à celles de son renderer Mantle.

Direct3D 12 apportera également quelques nouvelles fonctionnalités, mais ce n'est pas l'objectif principal. Sans rentrer dans le détail, Microsoft cite par exemple le support du blending programmable, d'un OIT (order independant transparency) efficace ou encore d'une rastérisation conservative.
Microsoft a tenu à donner un exemple de la différence que peut faire Direct3D 12 en se basant sur 3DMark 11, dont le code lui a été fourni par Futuremark :



D3D11 à gauche, D3D12 à droite
Comme attendu, Direct3D 12 permet de réduire drastiquement le temps CPU qui est réduit par 2 sur la partie graphique. Plus important, le thread principal se retrouve nettement allégé au niveau de l'API et des pilotes (UMD et KMD), cette fois d'un facteur 5x. Un tel exemple met en avant la possibilité d'exploiter mieux de "petits" CPU multicores.


L'autre démonstration de Microsoft concernait le portage de Forza Motorsport de l'API D3D11.X de la Xbox One vers D3D12. Celui-ci aurait été très rapide, l'équivalent du temps de travail de 4 ingénieurs sur un mois.
Ensuite, lors de cette première session consacrée à Direct3D 12, Microsoft a tenu à inclure ses partenaires en les invitant tour à tour à prendre la parole et en organisant une improbable photo de famille de tous ces concurrents :

De gauche à droite, Chris Tector (Forza Motorsport, Microsoft), Anuj Gosalia (Microsoft), Eric Mentzer (Intel), Raja Koduri (AMD), Tony Tamasi (Nvidia), Eric Demers (Qualcomm, ex-ATI/AMD).
Tour à tour et par ordre alphabétiques, chacun a expliqué apprécier avoir travaillé en étroite collaboration avec Microsoft et abordé la question du support de cette future API :
AMD :



Du côté d'AMD, qui a évité de prononcer le mot Mantle durant cette présentation, le support concernera tous les GPU depuis la première génération GCN, soit les Radeon HD 7000 (hors renommages), HD 8000, R200 et supérieures.
Intel :

Intel souligne qu'il s'agit de la plus grosse évolution de ces dernières années. Si Intel a largement profité dans le monde PC de l'inefficacité de Direct3D pour justifier l'utilisation de ses CPU les plus performants, une API plus efficace l'intéresse également puisque cela va permettre de libérer ses GPU lorsque l'enveloppe thermique est limitée. Si les cores CPU peuvent se contenter d'une fréquence plus faible, cela laisse plus de marge pour le turbo du côté GPU. Le support de Direct3D 12 sera assuré pour tous les processeurs Core à partir de la 4ème génération (Haswell).
Nvidia :






Nvidia est probablement le fabricant qui devrait proposer le plus large support de Direct3D 12 pour ses anciens produits puisque cela concernera les générations Fermi, Kepler et Maxwell. De quoi permettre à Nvidia d'estimer qu'à sa sortie, le parc compatible Direct3D 12 sera à 40% composé de GeForce.
Nvidia indique avoir travaillé en étroite collaboration avec Microsoft depuis un an sur Direct3D 12 (la démonstration de Forza Motorsport tournait d'ailleurs sur une GeForce GTX Titan Black), et termine par citer Epic Games, un partenaire proche, qui annonce qu'ils travailleront main dans la main avec le fabricant de GPU pour porter l'Unreal Engine sous DirectX 12.
Qualcomm :


Enfin, Qualcomm explique voire dans Direct3D 12 de nouvelles opportunités d'augmenter le rendement énergétique, la priorité pour le fabricant de SoC. Ce dernier nous avait par ailleurs indiqué précédemment que les GPU Adreno 4xx, tels que l'Adreno 420 présent dans le Snapdragon 805, seraient compatibles avec ce nouveau Direct3D.

Au final, à partir de ce jour, Microsoft estime que tous les nouveaux GPU PC supporteront Direct3D 12, que 80% des nouveaux PC destinés aux joueurs supporteront Direct3D 12 et que 50% des joueurs seront équipés de matériel adapté lorsque l'API sera disponible. La Xbox One sera bien entendu compatible. Microsoft ne donne aucune information par rapport aux niveaux de fonctionnalités matérielles mais il est probable que tous les GPU compatibles Direct3D 12 n'en supportent pas toutes les fonctionnalités.
Malheureusement, il faudra encore patienter un petit peu pour cela. Dans l'immédiat, Microsoft propose un accès à une beta au cas par cas aux développeurs qui en font la demande et prévoit une préversion publique pour la fin de l'année. Le but visé par Microsoft concerne les jeux de Noël 2015, mais pour quel OS ? Un point que le géant de Redmond n'est pas encore prêt à aborder mais il est possible, sur PC, que passer à Windows 9 sera obligatoire pour profiter de DirectX 12 et Direct3D 12. De futures versions de Windows adaptées aux tablettes et aux smartphones profiteront elles aussi de cette API.
D'après le timing de Microsoft, AMD devrait encore disposer d'une fenêtre de plus d'une année pour profiter des avantages de Mantle. Et au vu de la proximité apparente entre les deux API, les développeurs devraient pouvoir réutiliser une grosse partie du travail fait autour de l'API propriétaire d'AMD.
Crytek CryENGINE va supporter Mantle
Crytek et AMD viennent d'annoncer un partenariat technologique visant à intégrer le support de l'API Mantle dans le moteur CryENGINE.

Voilà donc un nouvel acteur de poids qui rejoint l'initiative d'AMD, alors même que la GDC va être l'occasion pour Microsoft d'abattre ses cartes avec l'annonce de DirectX 12. Aucune précision sur la version du moteur, sa date d'arrivée ou les futurs jeux l'utilisant n'a été communiquée.
GDC: GPU PowerVR Wizard avec ray tracing accéléré
Imagination Technologies profite de la Game Developer Conference de San Francisco pour faire une annonce qui pourra difficilement passer inaperçue dans le petit monde du rendu 3D temps-réel : la possibilité d'intégrer un module d'accélération matérielle du ray tracing dans ses GPU PowerVR mobiles !
Il y a 4 ans, certains ont pu se demander pourquoi Imagination Technologies avait mis la main sur Caustic Graphics, une petite startup californienne qui misait sur l'accélération matérielle du ray tracing. Nous avons dorénavant la réponse : intégrer sa technologie dans les GPU PowerVR.

Un exemple de rendu faisant appel au ray tracing PowerVR
Cette technologie issue de Caustic Graphics et dont le développement a été poursuivi par Imagination Technologies repose sur une API de bas niveau, OpenRL, développée sur la base du modèle d'OpenGL. Cette API peut être exploitée autant sans accélération matérielle qu'avec, notamment parce qu'elle gère d'une manière transparente pour le développeur les structures de données nécessaire au ray tracing. Des accélérateurs Caustic R2100 (500$) et R2500 (1000$) sont d'ailleurs commercialisés et peuvent être exploités pour réduire significativement le temps de rendu sous Maya ou mental ray.
Le cœur de métier d'Imagination Technologies se situe dans la mobilité, notamment à travers ses GPU PowerVR commercialisés sous licence, et il peut paraître autant surprenant que logique d'y voir débarquer le ray tracing. Cette technique de rendu n'est-elle pas trop gourmande pour de petits SoC ? Oui et non. Imagination Technologies est très claire quant au but visé : le rendu hybride. Il ne s'agit pas de remplacer le rendu 3D classique (ou TBDR cher à la société) mais de l'améliorer ou de l'optimiser à travers quelques touches plus ou moins importantes de ray tracing.
Plusieurs cas pratiques sont présentés par Imagination Technologies, à commencer par l'éclairage précalculé dans des lightmaps, des "textures" qui sont ensuite appliquées sur les surfaces pour en représenter l'éclairage (avec illumination globale et occultation ambiante). Mettre en place un éclairage dynamique à base de lightmaps n'est pas simple, il est d'ailleurs en général statique, puisque cela revient à devoir les mettre à jour pour chaque image. Le ray tracing permet d'accélérer cette tâche et de la rendre réaliste pour du rendu en temps réel.
Un autre cas est un rendu hybride dans lequel le ray tracing n'est utilisé que pour certaines surfaces qui présentent de la transparence ou des réflexions. De quoi profiter des performances du rendu classique et de la finesse du ray tracing uniquement là où c'est jugé utile par les développeurs. De quoi également profiter d'optimisations énergétique en utilisant le ray tracing là où le rendu classique est peu efficace et demande des algorithmes lourds pour contourner ses limitations. Un rendu purement à base de ray tracing est possible mais en termes de performances, l'implémentation n'est pas prévue pour cela.

[ Rastérisation classique ] [ Rendu hybride avec ray tracing ]
Avec les futurs GPU PowerVR Wizard, Imagination Technologies vient en fait "simplement" greffer un module de ray tracing sur ses GPU actuels, de la série PowerVR Series6XT (nom de code Rogue, que nous avions abordé l'an passé sur base des premières déclinaisons). Le futur PowerVR GR6500 est ainsi identique à l'actuel PowerVR Series6XT GX6450 mais intègre l'unité de ray tracing (RTU). Cette unité spécialisée communique avec les unités de calcul principales du GPU (les "cores") mais Imagination Technologies ne précise comment le travail est réparti ni quel est le coût de la RTU. Nous pouvons cependant supposer au vu de l'usage mobile qui est visé, et donc de l'intégration dans un GPU lui-même intégré dans un SoC, que ce coût reste modéré.
Voici la description des blocs qui ont été ajoutés au GPU pour supporter l'accélération du ray tracing :
- a dedicated ray tracing data master that feeds ray intersection data to the main scheduler, in preparation for shaders to run, which evaluate the ultimate data contribution from the ray.
- a specialized Ray Tracing Unit (RTU) which uses fixed-function math to perform ray tracing intersection queries, in addition to gathering ray coherency in order to reduce power and bandwidth consumption.
- a scene hierarchy generator to speed up dynamic object updates.
- a frame accumulator cache that provides write-combining scattered access to the frame buffer.

A une fréquence de 600 MHz, la RTU et le GR6500 sont capables de lancer 300 millions de rayons par seconde qui pourront représenter jusqu'à 24 milliards de tests et 100 millions de triangles par seconde. A côté de cela nous retrouverons des unités de calcul capables de 150 Gflops (32-bit) ou de 300 Gflops (16-bit), mais il est probable qu'une partie de cette puissance de calcul soit monopolisée par le côté ray tracing du rendu. Notons qu'il est possible d'effectuer du ray tracing via le GPU computing sur la plupart des GPU, mais Imagination Technologies précise que son unité spécialisée est 100x plus rapide dans le cas du PowerVR GR6500.
Voici les détails publiés par la société :
- Full-blown graphics and compute performance: four Unified Shading Clusters (USCs), with 128 ALU cores delivering more than 150 GFLOPS (FP32) or 300 GFLOPS (FP16) at 600 MHzA noter que pour la première fois, Imagination Technologies n'est pas mentionné par Microsoft parmi les partenaires privilégiés pour le développement du futur DirectX. Par ailleurs, alors que pour la Series6 Rogue il était question d'un module DirectX 11 / Tessellation optionnel, il n'est plus mentionné dans le cas des GPU Wizard. Dans un sens, Imagination Technologies pourrait avoir sacrifié le support de toutes les fonctionnalités de DirectX 11/12 au profit du ray tracing.
- Unmatched real-world ray tracing performance: Up to 300 MRPS (million rays per second), 24 billion node tests per second and 100 million dynamic triangles per second at 600 MHz
- PowerGearing G6XT for advanced power management and dynamic resource allocation
- PVR3C™ triple compression technologies (PVRTC and ASTC for texture compression, PVRIC for frame buffer compression, PVRGC for geometry compression)
- Deep Color support for very high image quality at Ultra HD resolutions and beyond
- Support for a range of APIs such as OpenGL ES 3.1/2.0/1.1, OpenGL 3.x, Direct3D 11 Level 10_0, OpenCL 1.2, and OpenRL 1.x
Imagination Technologies ne commercialise pas directement ses GPU ou des SoC et il reste donc à voir si cette initiative trouvera preneur. Apple, l'un de ses plus gros clients, pourrait par exemple y voir l'opportunité de se démarquer de la concurrence. Dans l'immédiat, Unity vient d'annoncer supporter OpenRL et l'accélération du ray tracing PowerVR dans son moteur Unity 5.
Nous sommes actuellement en route pour la GDC et nous tâcherons d'essayer de voir le tout en action chez Imagination Technologies et/ou Unity que nous avons également prévu de rencontrer.
ASUS lance les Matrix R9 290X et GTX 780 Ti
ASUS lance deux nouvelles cartes graphiques très haut de gamme, les Matrix R9 290X et Matrix GTX 780 Ti.

Ces cartes ont de nombreux points communs, à commencer par un refroidissement de type DirectCU II utilisant 5 caloducs dont un de 10mm et deux ventilateurs dont un CoolTech. ASUS donne ces chiffres pour le refroidissement :
- 290X : 81°C et 29.7 dB, contre 94°C et 41.5 dB pour la carte de référence, avec une T° ambiante de 40°C
- 780 Ti : 70°C et 25 dB, contre 82°C et 36 dB pour la carte de référence, avec une T° ambiante de 30°C
Des mesures qui ne sont pas comparables entre AMD et Nvidia puisque si elles ont été faites dans les deux cas sous 3DMark11, les 290X avaient droit à une température ambiante supérieure de 10°C !

Les deux cartes utilisent un PCB personnalisé d'ASUS qui fait entre autre appel à un étage d'alimentation à 14 phases haut de gamme. A priori ASUS a par contre été limité par Nvidia sur les possibilités d'overclocking extrême de la 780 Ti, puisque seule la 290X dispose d'un switch permettant de retirer les protections au niveau de l'alimentation GPU et de possibilités d'ajuster les tensions VDCC/MVDD/VDDCI via VGA Hotwire.
Côté fréquences la 290X est à 1080 MHz pour le GPU et 1350 MHz pour les 4 Go de GDDR5 l'accompagnant, contre 1000 et 1250 MHz pour les fréquences officielles. Le GPU de la GTX 780 Ti dispose pour sa part d'un overclocking plus important avec un GPU à 1006 MHz avec un boost à 1072 MHz, contre 875 MHz et 928 MHz pour les fréquences de Nvidia. A contrario les 3 Go de GDDR5 restent à 1750 MHz.
Les deux cartes seront disponibles en avril, il faudra compter 690 € pour la Matrix R9 290X et 709 € pour la Matrix GTX 780 Ti. Vous trouverez ci-dessous une vue en éclaté pour la première puis la seconde :




