Microsoft Windows Vista : le dossier

30 janvier 2007 à 11h20
0

Pilotes WDDM, DirectX 10 et autres changements dans l'affichage

Nous l'évoquions à l'instant, les Cartes Graphiques disposent sous Windows Vista d'un tout nouveau modèle de pilote. Anciennement baptisé LDDM, le modèle de pilote en question répond dorénavant au nom de WDDM pour Windows Display Driver Model et nous est ici proposé en version 1.0. Reposant en grande partie sur DirectX, le pilote WDDM reprend le principe de cloisonnement avec le noyau du système. La plupart des fonctions du pilote graphique s'exécutent donc en mode utilisateur, ce qui permet, en cas de plantage, de simplement redémarrer le pilote (et non la machine) pour réinitialiser la puce 3D. Dans le pire des cas, Windows peut basculer directement sur le pilote SVGA par défaut, le temps pour l'utilisateur de faire une mise à jour de son pilote 3D. Mais l'une des grandes nouveautés du modèle WDDM est sans conteste la notion de partage de la puce graphique, une notion qui n'existe pas sous Windows XP. Pour la première fois, le GPU est considéré comme un véritable coprocesseur graphique partagé de manière non exclusive entre les applications.

Puisque les applications peuvent se partager le GPU, le noyau en charge de l'affichage se dote d'un ordonnanceur alors que Microsoft inaugure un nouveau système de gestion des fenêtres. Vista passe dorénavant par le Desktop Window Manager qui fait que chaque application n'affiche plus directement sa fenêtre à l'écran mais plutôt sur une surface virtuelle. Les différentes surfaces sont alors brassées par le mécanisme de composition, alias Desktop Composition Engine, afin de finalement constituer le bureau. Celui-ci sera recomposé dynamiquement plusieurs fois par seconde, à l'instar du contenu des fenêtres ce qui permet d'obtenir des effets sympathiques comme la prévisualisation du contenu des fenêtres lorsque celles-ci sont réduites à l'état de boutons dans la barre des tâches, ou encore de faire tourner simultanément plusieurs jeux 3D en mode fenêtré. Intelligent, le Desktop Window Manager ne dessine que les pixels qui ont effectivement changé, évitant ainsi de gaspiller les ressources de la machine lors de la recomposition du bureau. Pour préserver la compatibilité avec certains types d'applications, le Desktop Window Manager peut toutefois être désactivé.

000000F000412124-photo-microsoft-windows-vista-desktop-windows-manager.jpg

Extrait d'une conférence WinHEC au sujet du Desktop Window Manager


0000006400378612-photo-logo-microsoft-directx-10.jpg
Côté DirectX, Vista intègre non seulement Direct3D9, mais également une version légèrement améliorée baptisée Direct3D9 Ex et servant de base à la fameuse interface graphique Aero, ainsi que DirectX 10. Dixième version de la bibliothèque de programmation dédiée aux développeurs de jeux, DirectX 10 a déjà été décrit abondamment à l'occasion de notre article sur le GeForce 8800 que vous pouvez consulter ici. Faisant table rase du passé, et n'intégrant plus aucun support pour les fonctions fixes des puces graphiques, ce qui explique au passage la présence de DirectX 9.0 dans Vista au titre de la compatibilité descendante, DirectX 10 inaugure le Shader Model 4.0 et adopte un modèle d'instructions unifiées. La bibliothèque de programmation profite également des nuanciers de géométrie, ou Geometry Shaders, qui permettent de créer de la géométrie directement depuis la puce graphique, cette dernière ne se contentant plus de la manipuler. DirectX 10, qui n'est pas disponible sous Windows XP, renferme bien sûr d'autres nouveautés comme la possibilité d'adjoindre à la mémoire vidéo de la carte graphique une certaine quantité de mémoire virtuelle qui sera stockée soit sur le fichier de pagination du disque dur soit dans la mémoire vive de la machine. Sachez enfin que les premiers jeux tirant parti de DirectX 10 devraient sortir dans le courant de l'année 2007 avec notamment le très attendu Crysis.

0000011800411989-photo-windows-vista-rtm-fr-11.jpg

Le module de diagnostic de DirectX 10


Et l'OpenGL ?

Durant le développement de Windows Vista, le support de l'OpenGL a été une source d'inquiétude constante. L'OpenGL, c'est cette API graphique libre dont l'intégration dans le système de Microsoft remonte tout de même à l'OSR 2.0 de Windows 95 ! Problème, en revisitant toute la chaîne graphique de son système d'exploitation, Microsoft a tout basé sur Direct3D, ne laissant peu ou pas de place aux autres composants. Dès lors, si Windows Vista intègre bien l'OpenGL, ce dernier s'appuie maintenant sur Direct3D et ne peut plus accéder directement à la puce graphique : en clair le système effectue une conversion des commandes OpenGL vers Direct3D, ce qui entraîne forcément une chute des performances graphiques.

Autre étrangeté, alors que les versions 1.5 et 2.0 d'OpenGL sont disponibles depuis des lustres, Microsoft a retenu la version 1.1 pour l'intégrer à Vista (soit la même version que celle incluse dans Windows XP). Et si ces difficultés n'étaient déjà pas suffisantes, l'exécution d'une application OpenGL en mode fenêtré pose problème au mécanisme de gestion des fenêtres : celui-ci doit être désactivé ce qui entraîne également la désactivation de l'interface Aero. Logique, puisque le Desktop Window Manager se base sur le partage du GPU entre les applications, alors que l'OpenGL demande l'exclusivité de la surface d'affichage. Bref, il semble évident que l'OpenGL est maltraité sous Windows Vista et l'on pourrait même se demander si Microsoft n'a pas tout fait pour promouvoir sa propre API Direct3D !

000000F000412115-photo-opengl-et-windows-vista-dx.jpg

Le pipeline graphique de Vista : prise en charge de DirectX et OpenGL


Fort heureusement, il existe une solution permettant de contourner les limitations imposées par Vista, mais celle-ci est à la charge des fabricants de puces graphiques. Elle passe par l'installation d'un pilote ICD (Installable Client Driver) qui permet au logiciel OpenGL d'accéder directement à la puce graphique sans passer par une émulation via Direct3D. Windows Vista reste d'ailleurs compatible avec les pilotes ICD conçus pour Windows XP mais ceux-ci provoquent la désactivation du Desktop Window Manager. Les deux géants de la 3D que sont ATI et NVIDIA devront donc fournir un pilote OpenGL compatible WDDM qui permettra de profiter d'une véritable accélération matérielle mais également des dernières extensions OpenGL tout en étant compatible avec le Desktop Window Manager. Avec un tel pilote, l'interface Aero restera disponible lorsque vous lancez une application OpenGL en mode fenêtré alors que les performances seront au rendez-vous.

En attendant, sur une machine Windows Vista finale avec une GeForce 7900 GTX et le pilote natif de Microsoft, le jeu Open GL Doom 3 réussit tout de même à démarrer. C'est une bonne surprise, sauf que les réglages graphiques sont inopérants avec un rendu qui fait tout simplement peur (voir la capture de gauche ci-dessous). De plus, dès qu'on essaye de monter la résolution ou d'activer un niveau de détail supérieur, le jeu finit par planter avec un retour au bureau et un message de la console Doom 3. L'installation des pilotes NVIDIA Beta qui circulent sur la toile permet fort heureusement de remédier à cette situation pour retrouver un fonctionnement normal des jeux Open GL. Carton rouge en revanche pour ATI dont le dernier CATALYST 6.12 dans sa version dédiée à Vista n'intègre toujours pas de pilote ICD, ni même d'ailleurs de prise en charge du CrossFire, mais là NVIDIA ne fait pour le moment pas mieux, le SLI étant aux abonnés absents. Gageons toutefois que la situation évoluera rapidement que ce soit chez ATI ou NVIDIA, le premier travaillant sur de nouveaux pilotes CATALYST, le second étant sur le point de donner naissance aux ForceWare de la série 100, les premiers pilotes véritablement conçus pour Windows Vista.

000000F000414835-photo-windows-vista-rtm-fr-doom-3-ogl-natif.jpg
000000F000414842-photo-windows-vista-rtm-fr-opengl-2-icd-nvidia.jpg

A gauche Doom 3 sur une GeForce 7900 GTX avec le pilote natif Windows Vista, à droite le même jeu avec les pilotes Beta NVIDIA sous Windows Vista
Modifié le 18/09/2018 à 14h31
0
0
Partager l'article :

Les actualités récentes les plus commentées

La justice allemande demande à Tesla de mettre en pause la construction de sa Gigafactory
Une taxe sur chaque connexion aux réseaux sociaux, pour remplacer la redevance TV ?
L'éolien a, en 2019, fourni 15% de l'électricité consommée en Europe
Airbus : les USA augmentent nettement les taxes douanières sur les avions européens
Il y a maintenant 300 satellites Starlink au-dessus de nos têtes
Bugatti dévoile un concept d'hypercar dément, conçu par un étudiant en design
L'Arctique révèle deux millions de points chauds de méthane, selon un rapport de la NASA
Jeff Bezos lance un fonds de 10 milliards de dollars pour lutter contre le dérèglement climatique
JerryRig met le Samsung Galaxy Z Flip à l'épreuve (et ça fait mal)

Notre charte communautaire

1. Participez aux discussions

Nous encourageons chacun à exprimer ses idées sur les sujets qui l'intéressent, et à faire profiter l'ensemble de la communauté de son expertise sur un sujet particulier.

2. Partagez vos connaissances

Que vous soyez expert ou amateur passionné, partagez vos connaissances aux autres membres de la communauté pour enrichir le niveau d'expertise des articles.

3. Échangez vos idées

Donnez votre opinion en étayant votre propos et soyez ouverts aux idées des autres membres de la communauté, même si elles sont radicalement différentes des vôtres.

4. Faites preuve de tolérance

Qu'il s'agisse de rédacteurs professionnels ou amateurs, de lecteurs experts ou passionnés, vous devez faire preuve de tolérance et vous placer dans une démarche d'entraide.

5. Restez courtois

Particulièrement lorsque vous exprimez votre désaccord, critiquez les idées, pas les personnes. Évitez à tout prix les insultes, les attaques et autres jugements sur la forme des messages.

6. Publiez des messages utiles

Chaque participation a vocation à enrichir la discussion, aussi les partages d'humeurs personnelles ne doivent pas venir gêner le fil des échanges.

7. Soignez votre écriture

Utilisez la ponctuation, prohibez le langage SMS et les majuscules, relisez-vous afin de corriger un peu les fautes de frappe et de français : trop de fautes n’engagent ni à lire le message, ni à répondre à une question.

8. Respectez le cadre légal

Ne publiez pas de contenus irrespectueux, racistes, homophobes, obscènes ou faisant l'apologie de courants radicaux, qu'ils soient politiques ou religieux. N'utilisez pas plusieurs comptes utilisateurs.

9. Ne faites pas de promotion

Ne profitez pas d'une discussion pour faire la publicité d'un produit, d'un service ou même de votre site web personnel.

10. Ne plagiez pas

Exprimez uniquement vos opinions ou partagez des idées en citant vos sources.

scroll top