Les derniers contenus liés au tag DirectX 11

GDC: Nvidia met en avant son pilote Direct3D 11

Publié le 25/03/2014 à 01:35 par Damien Triolet

Durant la GDC, Nvidia n'a pas seulement parlé de Direct3D 12 mais a également tenu à revenir sur le travail qui a été fait au niveau de son pilote Direct3D 11, de manière à réduire autant que possible le coût de la gestion des commandes de rendu. Nvidia estime qu'il disposait depuis longtemps d'un petit avantage sur ce point par rapport à la concurrence et l'annonce de Mantle l'a incité à aller plus loin dans ce sens.

Ses ingénieurs ont ainsi mis les bouchées doubles pour réduire le coût de plusieurs fonctions de Direct3D 11 mais également pour peaufiner l'implémentation des "deferred contexts". Pour rappel, ceux-ci permettent aux développeurs d'implémenter un support du multi-threading au niveau de la préparation des commandes de rendu. Malheureusement, ils sont peu efficaces et difficiles à implémenter compte tenu des interactions hors de contrôle entre l'application, l'API et les pilotes.


Nvidia a cependant estimé qu'il y avait moyen de mieux faire. Sa première implémentation des "deferred contexts" était très sommaire mais fonctionnelle et un peu plus performante que l'émulation proposée directement par l'API en cas de non intégration dans les pilotes comme cela serait le cas du côté d'AMD. Même si l'implémentation de Nvidia restait supérieure, ses résultats n'étaient pas très enthousiasmants pour les développeurs, ce qui explique la mauvaise réputation de cette fonctionnalité de Direct3D 11 auprès des développeurs. La deuxième implémentation de Nvidia serait par contre nettement plus efficace et rendrait la fonctionnalité enfin réellement bénéfique, si bien entendu les développeurs y font appel.

Nvidia nous a présenté quelques slides qui mettent en avant des gains observés en interne, autrement dit à prendre avec des pincettes même si la tendance affichée est probablement réaliste :


Ces slides comparent les pilotes Catalyst 14.2 aux pilotes r331, r334 ainsi qu'à une nouvelle version de ses pilotes qui ne devrait plus tarder à sortir (r336 ?). Suite à ces différentes évolutions, Nvidia met en avant des réductions du coût CPU de plusieurs fonctions de D3D11 de l'ordre de 2x, 4x, 5x, voire 8x dans le cas le plus favorable.

Avec ces gains associés à l'amélioration du support des "deferred contexts", Nvidia estime pouvoir même surpasser la solution d'AMD en version Mantle dans Star Swarm et Thief. Bien entendu il s'agit probablement ici de cas très favorables plus que de moyennes représentatives, mais force est de constater que Nvidia a entrepris un réel effort au niveau de ses pilotes Direct3D 11. Mantle aura décidemment été bénéfique pour tous !

DirectX 11.2: du neuf pour les GPU actuels

Publié le 01/07/2013 à 17:30 par Damien Triolet

Avec la version Preview de Windows 8.1, Microsoft a levé le voile sur une évolution mineure de son API graphique. DirectX 11.2 et sa composante graphique Direct3D 11.2, font ainsi partie de cette "Preview" avec un support final qui sera probablement limité à Windows 8.1, Windows RT 8.1 et Windows Server 2012. Nous pouvons également supposer que Direct3D 11.2 servira de base pour la future Xbox One, même si dans le cas de cette dernière l'API pourra être allégée et optimisée pour un usage spécifique.

Direct3D 11.2 n'apporte pas de nouveau niveau de fonctionnalité, ce qui signifie que le support des évolutions introduites sera soit optionnel pour les GPU actuels soit lié uniquement à l'aspect logiciel et donc aux pilotes graphiques qui devront passer en WDDM 1.3. Cette version des pilotes définit notamment plus strictement la manière dont les systèmes multi-GPU, principalement hybrides, sont exposés au système.

La nouveauté principale introduite par Direct3D 11.2 au niveau des possibilités graphiques se nomme "Tiled resources" et a pour but d'aider les développeurs à optimiser l'utilisation de la mémoire vidéo physique, de la même manière que l'a fait ID Software dans Rage avec les MegaTextures. Si cette dernière implémentation était logicielle et limitée à un cas bien spécifique, les Tiled resources visent différentes utilisations et profitent des optimisations matérielles implémentées dans les GPU récents.


La Xbox One étant équipée d'un GPU AMD, Microsoft s'est de toute évidence basé sur l'implémentation de ces derniers, déjà disponible sous OpenGL à travers l'extension propriétaire AMD_sparse_texture, spécifique aux Radeon HD 7000 et supérieures. Deux niveaux de support des Tiled resources sont prévus et si Microsoft ne les détaille pas, nous pouvons supposer que le niveau principal, tier 1, est dérivé de cette extension. Un autre niveau est cependant prévu optionnellement, tier 2 et apporte quelques possibilités de plus. Les Radeon HD 7000 supportent au moins le mode tier 1, accessible depuis le niveau matériel 11_0, alors que les Radeon HD 7790, R7 260X et R9 290 supporteront le mode tier 2. Nvidia nous a confirmé que tous ses GPU Fermi et Kepler étaient compatibles mais sans préciser le tier supporté.


Par ailleurs, Microsoft, qui aime brouiller les pistes, a effectué toutes ses démonstrations sur une GeForce GTX 770. Celles-ci représentaient différents cas d'usage qui ont été décrits sur le blog de Nvidia  par Henry Moreton (l'un des architectes principaux des GPU GeForce, spécialiste du traitement géométrique).

Parmi les autres évolutions, notons le support du calcul en double précision par le moteur de rendu logiciel WARP, la possibilité de précompiler des morceaux de shaders et différentes petites améliorations pour le profilage / débogage.

Pour résumer le tout, une fois équipées de pilotes WDDM 1.3 :

- les GeForce 400/500/600 seront compatibles avec Direct3D 11.2 jusqu'au niveau de fonctionnalité 11_0 et supporteront les Tiled ressources tier 1 (et tier 2?)
- les Radeon HD 5000/6000 seront compatibles avec Direct3D 11.2 jusqu'au niveau de fonctionnalité 11_0 mais ne supporteront pas les Tiled ressources
- les Radeon HD 7000 seront compatibles avec Direct3D 11.2 jusqu'au niveau de fonctionnalité 11_1 et supporteront les Tiled ressources tier 1
- les Radeon HD 7790, R7 260X et R9 290 seront compatibles avec Direct3D 11.2 jusqu'au niveau de fonctionnalité 11_1 et supporteront les Tiled ressources tier 2

Notez que la composante DXGI, qui grossièrement gère les ressources et interface Direct3D avec les pilotes, évolue elle aussi en version 1.3, notamment pour autoriser un rendu avec une plus faible latence, c'est-à-dire par défaut avec une file d'attente d'une seule image. L'intérêt principal de cette possibilité est de réduire la consommation sur les périphériques mobiles. Dans le cas de jeux PC qui ont besoin de paralléliser les traitements CPU et GPU, cette file d'attente devra être au moins de 2 images.

La nouvelle version de DXGI permettra également de redimensionner dynamiquement le frame buffer, par exemple pour maintenir un niveau de performance minimum en faisant varier la résolution du rendu 3D alors que l'interface reste en pleine résolution. Une fonctionnalité similaire à ce que comptait faire LucidLogix avec DynamiX, qui semble depuis avoir été abandonné. Optionnellement, pour l'ensemble des GPU depuis la génération DirectX 9 s'ils exposent ce support, il sera possible de redimensionner le frame buffer dans la bonne résolution sans impact sur les performances en utilisant le moteur d'overlay matériel.

Enfin, DXGI supportera à l'avenir une fonction "Trim" pour marquer la mémoire vidéo physique utilisée par des buffers temporaires non-essentiels quand l'application est en pause. Si les développeurs jouent le jeu, cette mémoire pourra alors être libérée en vue d'une utilisation par d'autres applications.

Focus : DirectX 11.1: ni pour GeForce 600, ni pour Windows 7 ?

Publié le 22/11/2012 à 10:30 par Damien Triolet

Depuis un peu plus d'une semaine, l'absence de support de DirectX 11.1 sous Windows 7 est passée sous le feu des projecteurs. Surprise, nous apprenons aujourd'hui que les GeForce GTX 600 ne supportent tout bonnement pas cette API ! Notre analyse complète…

Pour Windows 8, l'API graphique phare du monde PC, DirectX, a été mise à jour en version 11.1. Par abus de langage, il est souvent fait référence à DirectX alors qu'il est question de sa composante 3D, Direct3D. DirectX est en réalité un...

[+] Lire la suite

3DMark Next: 3 tests pour Windows, iOS, Android

Publié le 14/11/2012 à 16:45 par Damien Triolet

Futuremark nous indique que 3DMark Next, dont nous vous avions déjà parlé il y a quelques mois, est enfin en phase de finalisation. Rappelons que la nouvelle version de ce benchmark aura la particularité d'exister en version OpenGL ES 2.0 de façon à supporter les périphériques Android et iOS, en plus du support des périphériques Windows à travers DirectX 11. Comme nous l'indiquait Futuremark, ce changement d'API graphique impose de petites différences au niveau du code à exécuter mais qu'elles sont négligeables à l'échelle des périphériques testés.


Futuremark précise aujourd'hui que le prochain 3DMark sera composé de 3 groupes de tests : Ice Storm, Cloud Gate et Fire Strike. Chacun de ceux-ci inclura 2 tests graphiques pour mettre en avant les performances GPU et un test physique pour mettre en avant les performances CPU.

Ice Storm est avant tout dédié à mesurer les performances des smartphones, des tablettes, des ultra-portables et des PC d'entrée de gamme. C'est Ice Storm qui a été porté sous OpenGL ES 2.0 et qui sera proposé par Futuremark dans des versions Android et iOS sur les différentes app stores.

La version Windows du prochain 3DMark reposera sur Direct3D 11 et en plus d'Ice Storm, limité au niveau de fonctionnalité 9 de l'API (proche de DirectX 9.0c), elle inclura Cloud Gate et Fire Strike. Cloud Gate sera limité au niveau de fonctionnalité 10 (proche de DirectX 10) alors que Fire Strike exploitera tout le potentiel de Direct3D 11. Ce dernier groupe de tests inclura par ailleurs un test combiné supplémentaire qui permettra de pousser autant le GPU que le CPU dans leurs derniers retranchements. Futuremark précise que Cloud Gate sera adapté à la mesure des performances des PC portables et milieu de gamme alors que Fire Strike sera plutôt tourné vers les PC de joueurs plus performants.


Nous pouvons nous étonner que Futuremark ait décidé d'accorder, avec Cloud Gate, autant de place à un test limité aux fonctionnalités de DirectX 10, abandonné depuis longtemps par les développeurs de jeux vidéo qui préfèrent se focaliser sur des moteurs DirectX 9 ou DirectX 11. A priori, un test moins lourd que Fire Strike mais également en DirectX 11 aurait été plus logique. Un choix étrange qui s'explique probablement par l'influence d'Intel (dont toute la génération Sandy Bridge est limitée à DirectX 10) et/ou de différents concepteurs de cores graphiques qui se retrouvent dans les SoC et qui pourraient, à travers Windows RT, supporter le niveau de fonctionnalité 10 de Direct3D11.

Notez à ce sujet que Futuremark n'est pas très clair et ne précise pas si la version Windows RT du benchmark supportera l'ensemble des tests ou se limitera à Ice Storm comme les versions Android et iOS. Point important à remarquer, Futuremark ne fait pas de référence à Direct3D11.1. Or, avoir recours à cette API est nécessaire pour supporter Windows RT (même si le niveau de fonctionnalité utilisé est inférieur), mais elle n'est pas supportée sur Windows 7/Vista. Il reste donc à vérifier si Futuremark se contentera ou pas de Direct3D11 pour la version Windows x86 du benchmark.

Futuremark annonce l'arrivée de ce nouveau 3DMark d'ici quelques semaines et nous propose une petite vidéo en guise de teasing :

Dossier : Comprendre le rendu 3D étape par étape avec 3DMark11

Publié le 28/11/2011 à 17:00 par Damien Triolet

Grâce à un moteur graphique très propre, 3DMark 11 représente une rare opportunité d'observer les différentes étapes nécessaires à la construction d'un rendu 3D temps-réel moderne tel qu'utilisé dans les jeux vidéo récents…

[+] Lire la suite

Top articles