Les derniers contenus liés aux tags Windows et DirectX 12

Radeon Software 18.3.3 beta avec Vulkan 1.1

Publié le 20/03/2018 à 13:27 par Guillaume Louel

AMD a mis en ligne ces dernières heures une nouvelle version beta de ses pilotes graphiques. On retrouve comme souvent un support "optimisé" pour de nouveaux titres, cette fois ci il s'agit de Sea of Thieves et A Way Out.

Côté bugs, un problème de stuttering intermittent sous Forza Motorsport 7 à été corrigé. Pour Final Fantasy XV, ce sont des clignotements et objets disparaissant qui ont été résolus pour les configurations Multi GPU. Enfin pour Battlefront 2, c'est un plantage au lancement du titre, là encore sur des configurations Multi GPU, qui a été corrigé.

L'autre nouveauté de ces pilotes est qu'ils apportent un support de la version 1.1 de Vulkan, l'API "bas niveau" de Khronos Group. Cette nouvelle version avait été annoncée il y a quinze jours de cela  apporte plusieurs nouveautés dont les "Subgroup Operations" pour partager des données entre plusieurs tâches sur un GPU et une nouvelle version du langage intermédiaire de shaders, SPIR-V 1.3 (et de ses outils). Nvidia avait de son côté proposé un pilote beta spécifique pour Vulkan 1.1 au moment de l'annonce .

L'autre objectif pour Khronos Group est un support multi plateforme universel. Quelques jours avant l'annonce de cette version 1.1, la "Khronos Vulkan Portability Initiative"  avait été annoncée avec pour but de créer des couches de compatibilités fines s'appuyant sur les API bas niveau natives des plateformes, comme DirectX 12 pour Windows ou Metal chez Apple.

Pour rappel, Apple gère le déploiement (et le co développement) des pilotes graphiques pour sa plateforme contrairement à ce que l'on voit sous Windows, et il n'y a pas de support natif dans l'OS pour Vulkan. Microsoft n'en propose pas non plus pour Windows, le support y étant assuré par les pilotes directement (cf cette actualité), comme cela était le cas pour OpenGL dans les dernières versions de Windows.


Avec LunarG et MoltenVK, Valve annonce 50% de performances en plus sous Dota 2 par rapport à l'implémentation OpenGL sur Mac

Proposer des couches intermédiaires est donc une solution assez pragmatique, car si en général ces couches sont assez coûteuses, toutes ces API bas niveau sont excessivement proches dans leurs caractéristiques (elles sont après tout de bas niveau et "très proches du métal" avec des similarités larges) ce qui limite grandement l'impact sur les performances. Valve et Brenwill Workshop ont rendu open source LunarG  (un SDK MacOS Vulkan spécifique développé par Valve) et MoltenVK  (une couche de traduction Vulkan vers Metal pour MacOS et iOS) en partenariat avec Khronos. Vous pouvez retrouver une présentation de cette initiative sur cette page  qui évalue également la portabilité pour DirectX 12. Une autre initiative est celle de Mozilla  dans le cadre du développement de son API cross plateforme bas niveau gfx-rs .

Le téléchargement de ces pilotes AMD s'effectue sur cette page du site du constructeur .

DirectX 12 : Benchmarks et exclusivité Windows 10

Publié le 07/02/2015 à 00:00 par Marc Prieur

AnandTech a publié un article  consacré à DirectX 12 se concentrant principalement sur des benchmarks obtenus sous Windows 10 Technical Preview 2 sous une version Direct3D 12 de Star Swarm Stress Test fournie par Oxide et Microsoft. Ce nom ne devrait pas vous être inconnu puisque cette démo dispose d'une version Mantle utilisée par AMD pour démontrer les bienfaits de son API à son lancement, mais elle a aussi déjà été utilisée en août dernier en version DX12 par Intel et Microsoft pour montrer les avantages du futur Direct3D.


Avant de passer aux résultats, nos confrères ont eu la confirmation par Microsoft que DirectX 12 ne sera disponible que sous Windows 10. Sachant que la mise à jour sera gratuite si effectuée durant la première année du lancement, cette annonce n'est pas problématique. Pour supporter DirectX 12, Windows 10 intègre la version 2 du WDDM. Côté GPU AMD et Nvidia disposent bien sûr de pilotes beta WDDM 2.0 et DX12, ce sont les versions 394.56 et 15.200 qui ont été fournies à nos confrères. A l'heure actuelle les pilotes AMD supportent les GPU GCN 1.0, 1.1 et 1.2, mais pour le moment Star Swarm Stress affiche des bugs de texture sur GCN 1.0. Côté Nvidia le support des Kepler et Maxwell est fonctionnel, mais les Fermi ne sont pas encore gérés.

Côté benchmark c'est donc sans grande surprise que les résultats obtenus sont très bons dans ce test très lourd en termes de draw calls. Ainsi une GeForce GTX 980 passe de 26,7 fps en D3D11 à 66,8 fps en D3D12, alors qu'une Radeon R9 290X est à 8,3 fps en D3D11, 42,9 fps en D3D12 et 45,6 fps sous Mantle. On note ici un avantage à Mantle sur ce test effectué avec 4 cœurs et confirmé avec 6 cœurs, mais avec 2 cœurs seulement c'est D3D12 qui reprend l'avantage avec 42,9 fps au lieu de 37,6 fps. Ces écarts sont en partie liés à un temps de traitement des lots de commande plus important sous Mantle du fait d'une optimisation du moteur effectuant une seconde passe côté CPU pour les optimiser, ce qui permet d'alléger la charge GPU au dépend de la charge CPU. Une fois celle-ci désactivée le temps de traitement des lots de commande est équivalent entre les deux API, par contre D3D12 repasse devant puisque sur 4 coeurs Mantle passe à 39,3 fps.

Pour rappel, pour contrer l'offensive Mantle, Nvidia a optimisé tant que possible les performances des commandes D3D11 via des optimisations génériques mais aussi spécifiques à certaines applications dont Star Warm. C'est ce qui explique que la version D3D11 soit 3,2 fois plus rapide sur GTX 980 que sur R9 290X, alors qu'AMD a orienté ses ressources sur Mantle qui reste 71% plus rapide. En Direct3D 12, l'avantage du dernier GPU Nvidia est probablement lié à des performances supérieures dans le traitement de la géométrie et/ou des commandes dans ce cas extrême.


DirectX 12 est donc toujours sur la bonne voie pour tenir les promesses d'une API bas niveau en termes d'allègement et de meilleure répartition entre les cœurs CPU de la charge liée aux commandes de rendu. Des bons résultats qui ont déjà été démontrés par AMD avec l'API Mantle qui a heureusement enfin fait bouger les lignes. Microsoft a encore beaucoup de choses à dévoiler sur DirectX 12, ce qui devrait se faire à l'occasion de la GDC 2015 en mars – on pense notamment au nouveau niveau de fonctionnalité 11_3 ou 12_0. Reste qu'au-delà de l'API et des démos technologiques, il faudra bien sûr voir ce que les développeurs de jeux en feront !

DirectX 12 livré avec Windows 10

Publié le 03/10/2014 à 09:46 par Marc Prieur

Un billet posté sur le DirectX Developer Blog  indique que la version finale de Windows 10 (ex Windows 9), prévue pour la mi-2015, sera livrée avec DirectX 12. Une annonce assez logique, mais rien n'est précisé concernant le déploiement, ou l'absence, de DirectX 12 sous Windows 7 et Windows 8 même si certains y voient un aveu d'exclusivité. De ce côté les choses n'ont donc pas évoluées depuis la GDC et notre actualité de la mi-mars.

Les développeurs qui font partie du programme DirectX 12 Early Access sont invités à rejoindre le programme Windows Insider afin de recevoir les outils de développement et documentation DirectX 12 fonctionnant sous Windows 10 Technical Preview. Microsoft indique au passage que l'Unreal Engine 4 dispose déjà d'une version DirectX 12 alpha.


Pour rappel côté matériel le support de Direct3D 12, qui sera livré avec DirectX 12, est possible pour :

- Les GPU/iGPU GCN chez AMD
- Les GPU Fermi, Kepler et Maxwell chez NVIDIA
- Les iGPU Haswell et Broadwell chez Intel

Si DirectX 12 intégrera une API Direct3D 12 de bas niveau permettant aux développeurs une meilleure optimisation de l'utilisation CPU notamment, tous ne seront pas prêts à y passer de suite.

Un nouveau niveau de fonctionnalité graphique supérieur à l'actuel niveau 11_1 sera donc supporté à la fois par Direct3D 12 mais aussi par Direct3D 11.3 (dont on ne connais pas non plus les modalités de déploiement), il intégrera de nouvelles fonctionnalités (cf. cette présentation Microsoft ) déjà présentes dans le GM204 de Nvidia (cf. notre test des 970/980). AMD n'a pas encore confirmé ou infirmé le support de ces fonctions dans le dernier GPU GCN, Tonga (R9 285).

GDC: Direct3D 12 et support matériel, logiciel

Publié le 24/03/2014 à 19:38 par Damien Triolet

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…

Top articles