Windows XP : 2D à l’ancienne et limites de WM_PAINT
On pourra dire ce que l’on voudra au sujet de Windows XP, le fait est que l’accélération de la GDI fonctionne sans accroc à ce jour, et suffit en l’état à bon nombre d’applications. En revanche, XP est incapable de porter des techniques de calques 2,5D sur des cartes graphiques modernes. Comme on l’a vu précédemment, le rendu du contenu des fenêtres dépend directement des programmes.
Cette limitation ne posera pas de problèmes si l’on travaille sur un programme qui ne s’affiche que sur une seule fenêtre, comme c’est typiquement le cas des applications SDI (single device interface). A contrario, les choses se compliquent dès lors que les fenêtres se multiplient à l’écran. Qui ne serait pas intéressé par une technique de calques améliorée qui prendrait en charge les menus, tirerait mieux parti du matériel et serait apte à mieux gérer les fenêtres sur des affichages multiples ? Qui ne serait pas prêt à abandonner les effets de flou/trainées et parvenir à de meilleures performances 2D ?
Bien que les performances purement 2D des programmes de dessin vectoriel comme Corel Draw et les applications CAD soient satisfaisantes (ce qui ne manque pas de sel vu que l’accélération matérielle de la GDI n’est pas supportée), les limites de WM_PAINT sont frappantes : dès que l’interface graphique utilisateur de XP est surchargée d’animations, ombres douces, fenêtres transparentes et autres éléments graphiques, on prend bien la mesure du problème.
Bon nombre d’utilisateurs ont compris qu’il vaut mieux afficher les fenêtres en mode classique lorsqu’on les déplace, de même que faire l’impasse sur les menus animés. D’une manière générale, la préservation des ressources graphiques est une bonne approche sous Windows XP. Malheureusement, de nombreux thèmes de bureau stylisés ont vite trouvé le chemin de la corbeille une fois l’euphorie autour du nouvel Os passée vu que les configurations avaient alors perdu leur capacité à tout rendre sans erreurs ou latences significatives.
Microsoft a rapidement pris conscience du fait que sa technologie 2D (alors incluse dans toutes les versions de Windows, XP y compris) avait besoin d’être remplacée. En parallèle, la généralisation de cartes graphiques 3D de plus en plus puissantes alliée à la démocratisation des coûts montraient bien que les temps (comme les machines) étaient en train de changer.
Il faut aussi prendre note que l’accélération matérielle sous XP n’était pas possible avec les résolutions natives que proposait le chipset AMD 780G non plus. Les fenêtres paraissaient donc lentes et même l’utilisation basique d’Internet s’en trouvait perturbée. Si les pilotes successifs ont tout de même permis d’atténuer les problèmes, le chipset 780G n’a toujours pas un fonctionnement optimal sous XP à l’heure actuelle, contrairement au 740G. Ceci étant, vu que XP est en train de basculer dans l’obsolescence, peut-être qu’il devrait en être de même pour cette digression…
Début 2007, Microsoft commercialisait la version de son système d’exploitation la plus décriée après Millenium : Vista. Qu’on l’aime ou le haïsse, il n’était plus possible de repousser plus longtemps certaines avancées techniques.
En bref
- L’accélération 2D des commandes GDI marche parfaitement sous Windows XP
- Pas d’accélération matérielle pour les calques en 2,5D, rendant ainsi l’interface utilisateur lente
- La nécessité de redessiner le contenu des fenêtres modifiées de façon répétée est chronophage et coûteuse en ressources
- Carte graphique,
- 2d ,
- windows ,
- gdi




J'avais lu la version anglaise de ce très bon article. J'a fait l'acquisition d'une 5870 après avoir eu une GTX280 et je me souviens avoir ressenti une grosse différence sous CS2. Si je n'hésite pas à déclarer ma satisfaction pour les performances 3d, le reste du tableau est plus noir. ATI a toujours son talon d'achille historique : le software. Les Catalystes, outre l'aspect et l'usabilité vintages, sont de mon point de vue une catastrophe en comparaison des Forcewares. Nombreux soucis de sortie de veille, boot de la 5870 super longs (idem avec de anciennes 38xx) et la panoplie d'écrans avec des lignes vertes et grises; Mêmes postes pour lesquels il n'y avait aucun soucis avec des Nv. Encore pire sous linux, par contre la 3d sous Windows7, super.
Interessant tout ça.


J'etais loin d'imaginer qu'il puisse y avoir un tel loup qui se cache dans les performances 2D de nos cartes récentes.
Je dois dire que de mon coté je n'ai pas noté de désagrement particulier à travailler sous Photoshop CS3/4, autocad, Allplan avec ma Geforce8500 .. que ce soit sous Vista32 ou Win7 64bit. Au contraire j'ai meme toujours trouvé ça plua agreable/efficace que sur XP
Tout au plus ais-je noté des problemes avec CS4 sous win7 lorsque j'active l'acceleration OpenGL du dessin.
Un petit mot: le screenshot en allemand dans la derniere page ça fait un peu tache quand même
Article avec plein de surprise et très intéressant.

Moi non plus je ne pensais pas que les cartes graphiques de ATI étaient à la ramasse concernant le 2D et qu'un chipset vieux de 2 ans fasse beaucoup mieux.
Vivement la 2e partie
enestu: Je suis d'accord avec toi concernant les pilotes Catalyst. J'ai eu une 4870 et maintenant une 5870, j'ai de nombreux problèmes d'affichages que je pense liés aux multi écran. j'autilise un écran 26" et un 17" en secondaire (bureau étendu). J'au les pires difficultés pour les sorties de veille (que j'ai du désactivé) et des corruption d'affichages.
J'ai eu plusieurs GeForce par le passé dont une 8800gt qui ne m'a jamas posé un seul problème d'instabilité.
Je pense que N'Vidia est plus sensibilisé aux problèmatiques 2D car il ont une longue expérience (et le leadership) sur le marché professionnel.
Merci pour cet éclairant article d'investigation ! Voilà qui va forcer les fabricants à s'améliorer sur ce point : hormis la 3D comme argument de vente pour les cartes graphiques, on ne parle plus que de la 2D sinon pour la HD, alors qu'elle est utile au quotidien...
J'ajoute un témoignage d'ailleurs : j'utilise un PC doté d'un IGP 6150 (donc assez proche en terme d'archi du 7050) mais plus ancien encore !
Sous W7 32bit, j'ai une très bonne fluidité en 2D, bien meilleure que sous Vista (lenteurs lors de diaporama, PDF, Powerpoint...)
Par contre, en essayant des PC récents chez des amis ou en demo, sous W7, j'ai été surpris aussi de constater des petites lenteurs affichage que je ne constate pas sur le PC doté de ce vieux 6150...
PS : dans votre 2nde partie, allez-vous tester l'efficacité sur des applis "concrètes" type powerpoint, et/ou sur de la video SD ?
Nvidia en dehors de tout ses défauts vient du software, ce qui se ressent. Sous Linux par exemple, c'est terrible ! Les 58xx sont de supers cartes pour les jeux 3D, mais on sent bien que les produits sont sortis le plus vite possible et que coté drivers ça ne suit pas !
Les ennuis de lignes vertes-grises sont loin d'être isolés et existent depuis la sortie des 58xx, ils ne semblent être réglés que 4 mois plus tard (pour l'instant le xieme patch semble fonctionner, à voir, l'impact sur le reste...).
Même si cet article prouve que ce n'est pas systématique (bravo), il faut reconnaitre que je léche-je jette et l'absence de mémoire font aussi souvent partie des tests technologiques. Ca reste une super carte mais le manque de recul de certains testeurs (sans parler des fanboys) me semble coupable. Ce n'est pas parce que le matos change sans arret, que nous ne devons pas être super exigeants pour des objets à plusieurs centaines d'euros.
Le plus inquiétant, à mes yeux, c'est que la course aux performances sous les benchs 3D font passer à côté de l'usage naturel d'une CG: l'OS et son IHM! Ah ça, les cartes 3D (toutes marques) peuvent se vanter d'avoir "la plus grosse", mais cela passe sous silence ce genre de bilan peu reluisant.

Espérons qu'il s'agit réellement d'un souci totalement lié à des drivers peu travaillés, car sinon cela sous-entendrait que les architectures des CG et tout le foin fait autour d'elles n'est que pure campagne marketing!
[troll ON]
A quand un comparatif avec les 3Dfx ou contre une Geforce 2 ?
[troll OFF]
Les valeurs me semblent particulièrement faibles. Avec java 1.6 / swing / win xp / pentium dual core e2180 / Q35 express, j'arrive à dessiner et afficher environ 200'000 rectangles de 50px de largeur en une seconde. Des explications?
Article intéressant et surtout retour très constructif d'amd.
Merci pour cet éclairage!
Ils ont testé avec les catalysts 10.1? Car sous win 7 64 bits en 2d lorsque je solicite la cg ne serait-ce que pour scroller sur une fenetre web, les frequence gpu et memoire monte, le gpu passe de 157Mhz a 850 et la meme de 300 a 1200 et redescendent aussitot que la cg retombe en idle, donc les resultats risque d'etre different!!!!!!
Je suis curieux de voir une Matrox dans ce test, sachant que eux privilégie à fond la 2D.
Intéressant tout ça... Et ça donne quoi sur les autres OS ?
Donc conclusion : si on veut jouer au solitaire et au démineur et au majhong en même temps on prend nvidia et si on veut jouer en 3D on prend AMD .
Merci TH.fr pour ces précieux conseils
J'aurais aprécié l'inclusion dans le test de cartes graphiques professionnelles AMD et Nvidia.
En particulier les cartes pro d'entrée de gamme, qui sont censées avoir des pilotes particuliers mais qui n'ont pas vraiment le matos pour faire tourner de la 3D, se dédiant justement a une cible de graphistes 2D.
petites précisions...
la gestion de l'évènement WM_PAINT est généralement laissé à l'API, il n'est que très rarement implémenté dans les logiciels.
SDI veut dire single DOCUMENT interface, en opposition à MULTIPLE (MDI).
quoi qu'il en soit, aussi loin que je me souvienne, je n'ai jamais eu de problèmes d'affichage en 2D. bon, je n'ai pas de radeon 5000, non plus.
Article intéressant. Je me trouve justement confronté à un gros souçis sous after effect cs4/3 win7/vista64. Des que je déploie tout les panneaux sur les deux écrans (2* 1920*1200) l'affichage se fait super lent, tout comme la réactivité de l'interface.
C'est vraiment très pénible de devoir travailler comme ca (mais c'est toujours mieux que de passer son temps a montrer/masquer/réarranger ses panneaux) et je suis justement à la recherche d'informations concernant ce problème afin de trouver une carte graphique qui pourrait résoudre ce problème...
c'est quoi cette énormité? GDI+, comme GDI est une API, ça n'a rien à voir avec une histoire de langage! tout ce qui a un "+" derrière ne se rapporte pas forcement à c++
http://msdn.microsoft.com/en-us/li [...] S.85).aspx
The GDI+ C++ class-based interface is designed for use by C/C++ programmers. Familiarity with the Windows graphical user interface and message-driven architecture is required.
http://msdn.microsoft.com/en-us/li [...] 85%29.aspx
Pas de "C++ class-based interface" en GDI
Donc conclusion : si on veut jouer au solitaire et au démineur et au majhong en même temps on prend nvidia et si on veut jouer en 3D on prend AMD . Merci TH.fr pour ces précieux conseils
Merci pour ce troll de qualitaÿ !
Pourquoi un troll ? tu nous fournis une explication de qualitaÿ ?
C'est clair que quand un article est intéressant, lorsqu'il fait une bonne part à l'investigation et qu'il ne se laisse pas aller à de la comm' de base pour tel ou tel produit ou constructeur, il est bon de le signaler.. Je suis bien heureux en tout cas de découvrir enfin l'état actuel de la 2D sur nos machines modernes, pour une fois que quelqu'un en parle
! J'en viens à me demander si un vieux nForce2 IGP (GeForce 4 MX) ou une Matrox G200 feraient aussi bien que le GeForce 7050...
Dans la course à la 3D, AMD et nVidia ont effectivement oublié le cœur du métier : le rendu 2D.. C'est bien de se passionner pour les jeux, mais ça ne fait pas l'utilisation principale de tous les PCs de la planète..
Pourquoi un troll ? tu nous fournis une explication de qualitaÿ ?
Disons que l'intérêt d'avoir une carte performante en 2D va quand même un poil plus loin que le fait de lancer un solitaire et un démineur en même temps.
Ensuite, on peut tout à fait acheter AMD pour autre chose que de la 3D, comme par exemple L'eyefinity pour une utilisation bureautique ou encore Dolby TrueHD et DTS-HD Master Audio en bitstream sur des cartes < ou = à la HD 5670 qui est déjà plus que limite niveau jeux.
Bref, ça me semble important de cogiter sur ce que l'on compte faire de la carte, les pilotes et fonctionnalités en amont, ce qui n'enlève rien au fait que l'offre AMD est effectivement la meilleure du moment pour ce qui est des perfs 3D pures.
Ok, alors dis moi quels applications en 2D te permet de dire que tu es gêné par ton GPU quelqu' il soit ?
Ce qui fait un peu pitié c' est que ceux qui commentent ont l' air de vraiment croire que le GPU est responsable des ralentissements en 2D alors que c' est de l' ordre logiciel .
Mais je crois que c' est le but de l' article
De plus ça ne dit jamais que le 7050 peut être plus performant simplement parceque la carte est la plus ancienne et que les pilotes sont mieux reconnus par windows , donc mieux exploité . L' article n' arrête pas de troller avec ça . Par contre on n' a pas eu droit à un GPU Ati plus ancien .
Ok, alors dis moi quels applications en 2D te permet de dire que tu es gêné par ton GPU quelqu' il soit ?
Ce qui fait un peu pitié c' est que ceux qui commentent ont l' air de vraiment croire que le GPU est responsable des ralentissements en 2D alors que c' est de l' ordre logiciel .
Mais je crois que c' est le but de l' article
.
Si tu lis bien l'article ils mettent bien evidemment en cause les pilotes en premier lieu. Sans pouvoir affirmer à 100% que l'archi du Radeon5xxx ne soit pas intrinséquement en cause au delà du seul pilote. Même si on pourrait difficilement le croire bien evidemment.
Il n'y a que la réponse d'ATI qui donne une voie, et l'on sera fixé que le jour où ils auront corrigé le problème.
De plus ça ne dit jamais que le 7050 peut être plus performant simplement parceque la carte est la plus ancienne et que les pilotes sont mieux reconnus par windows , donc mieux exploité . L' article n' arrête pas de troller avec ça .
A un détail pres:
Pour Vista/7 les pilotes sont entièrement nouveau (WDDM1.x). donc l'age de la puce ne change absolument rien dans la mesure où quelque soit la puce il a fallu refaire des pilotes neufs à partir de Vista (WDDM1.0), et les faire evoluer pour 7 (WDDM1.1)
Donc pour le coup t'es légèrement à coté du truc.
Je ne crois pas non .
Il y a de grandes chances que le fait que la puce plus ancienne ( et plus simple ) est largement plus facile à intégrer " logiciellement " .Concernant les HD 5000 , ceux-ci étant sorti bien plus tard que les autres à peu près en même temps que windows 7 est bien moins intégrée que les autres GPU .
Mais même sans ça, qu' est ce que 90 % des utilisateurs en a à faire de l' utilisation 2D . Il faut être un peu tordu pour chercher les perfs dans ce domaine .
Je ne crois pas non .Il y a de grandes chances que le fait que la puce plus ancienne ( et plus simple ) est largement plus facile à intégrer " logiciellement " .Concernant les HD 5000 , ceux-ci étant sorti bien plus tard que les autres à peu près en même temps que windows 7 est bien moins intégrée que les autres GPU .Mais même sans ça, qu' est ce que 90 % des utilisateurs en a à faire de l' utilisation 2D . Il faut être un peu tordu pour chercher les perfs dans ce domaine .
Ca dépend... et énormément qui plus est! Aujourd'hui,même l'utilisateur lambda ouvre énormément de fenêtres en simultané, compte sur plusieurs applications, et font ce que concrètement les OS du passé ne savaient pas totalement faire (par manque de puissance hard surtout).
Là, cela met en cause une politique de puissance à outrance en 3D, et d'oubli du coeur réel de nos carte graphiques: gérer du graphisme. Depuis Vista, le bureau est géré par le hardware ... pour de la 3D, mais les solutions classiques de traitement restent en 2D. Alors, résultat? Sans polémiquer (puisque je n'ai pas l'expertise), ça me semble quand même être le besoin de tous que la 2D soit correctement traitée. Nos PC ne sont pas encore des consoles, nous exploitons ses possibilités au-delà des seuls jeux, non? De fait, les performances 2D sont visiblement pas géniales.
J'aurais aimé un indice de performance, comme par exemple un IGP quelconque, ou une CG de très ancienne génération pour identifier les écarts, et savoir si, oui ou non, ces valeurs marquent une baisse réelle, ou juste une stagnation.
Intéressant tout ça... Et ça donne quoi sur les autres OS ?
Ben c'est-à-dire que ce test met en valeur des problèmes d'adaptations des drivers de la dernière génération AMD au modèle WDDM 1.1.
Donc je sais pas comment te dire, mais le WDDM chez Linux ou Mac OS...
c'est quoi cette énormité? GDI+, comme GDI est une API, ça n'a rien à voir avec une histoire de langage! tout ce qui a un "+" derrière ne se rapporte pas forcement à c++...
Comme le fait remarquer okey-dokey, GDI+ est bien en C++.
Juste un truc encore : en lisant cet article, il y a une chose qui n'est à mon avis pas très claire pour le lecteur.
[*] Dans XP, tout est géré en RAM, et c'est le CPU qui s'occupe de tout, sauf dans le cas de drivers qui accélèrent les primitives GDI.
[*] Dans Vista, l'interface étant gérée par la carte graphique, tout est en mémoire graphique, mais comme GDI est désormais 100% software, il faut que chaque texture de fenêtre soit également présente en RAM.
[*] Dans Win7, ils ont décidé de dégager le buffer en RAM pour les textures (pour les perfs).
--> Problème : GDI ne peut plus y accéder. Solution : on fait tout passer par la carte graphique.
--> Re-problème : le fait de lire constamment dans la mémoire graphique au lieu d'aller à côté en RAM, ça peut faire diminuer les perfs dans certains cas, notamment dans les benchmarks.
Ils en parlent sur ce lien (l'article original en anglais), juste avant le paragraphe "Gaming Performance" :
En gros, à mes yeux, Windows 7, by design, n'aura pas les mêmes perfs qu'XP et Vista pour l'affichage GDI. Ils s'en foutent, ils le savent, c'est un compromis, et tant pis, GDI est vieux, maintenant ils invitent tout le monde à passer par WPF/Silverlight ou D2D (comme IE9 apparemment).
Et il semble que ce soit aux constructeurs de définir quelles primitives ils veulent accélérer via les drivers :
Based on real-world application statistics, a tiny snapshot of which is seen above, we worked with our graphics IHV partners to provide support in their drivers to accelerate the most commonly used GDI operations. Windows 7 systems with these updated drivers, called “WDDM v1.1” will thus benefit from this memory savings work.
Edit : je m'aperçois en me relisant que je fais peut-être un peu trop de paraphrase...
ptet PPC pourrait nous faire un comparatif + grand niveau des cartes graphiques couplé aux diffents types d'utilisation sur different OS

exemple que donne une ati 4850 sur XP si on veut faire principalement du photoshop ou surfez sur internet ou jouez regulierement a un jeu 3D full ou fenetré
ainsi de suite sur vista / window 7
alors je sais c bcp de travail mais ca serai vraiment un guide interressant surement on trouverai des reponses + concretes que de dire la GTX est + rapide qu'une 4890 mais 2fois moins rapide qu'un chipset integré pour faire 50000 rectangle a la seconde ( qui a besoin de ca serieux? )
juste un guide avec des appreciations (pas forcement des notes sur 20) ainsi le mec qui sait qu'il va pu jouez au jeu 3D pendant 1 mois pour faire du excell / photoshop ou trainer sur des sites cochons saura a quoi sen tenir si il trouve que sa machine rame pour rien
une consequence d'un tel test serai entre autre de dire si l'utilisation dun pc peut devenir limitante en 2D
certes le chipset integré est 10 fois + rapide pour ecrire tant de caracteres a la seconde 90000... ? mais qui en ecrit autant?...
ca se serai si nos pcs etaient tout lent sous windows avec nos super cartes graphiques 3D et le pc portable + rapide avec son chipset integré tout bidon a 30 euros ... si vous voyez ce que je veux dire
bon moi quand je vois cet article me dis:
+ un GPU dessine de rectangles en 2D moins elle en dessine en 3D... ( j'exagère a peine mais ca doit etre + complexe que ca alors je demande un dossier + etoffé sur les performances 2D de nos GPU mais dans une utilisation bien établi)
et le GMA intel, va t'il être intégrer au test ?? (et MATROX puisqu'ont y est)
MAJ - AMD est revenu vers nous après avoir pris connaissance de ces résultats :
* Tom’s Hardware est tombé sur un domaine (lignes 2D etc.) que nous n’avons pas encore optimisé
* Jusqu’à ce benchmark, nous n’avions pas encore vu d’applications limitées par cette optimisation et n’avions donc pas concentré nos efforts sur cette situation
* Notre analyse préliminaire indique qu’il n’y a pas de limitations matérielles dans ce domaine
* L’équipe de développement logiciel travaille maintenant à optimiser cette approche pour aboutir à un nouveau pilote qui puisse résoudre le problème
* Nous avons déjà trouvé une méthode assez simple pour augmenter significativement les performances de nos cartes et essayons à présent de l’implémenter dans une prochaine version des Catalyst (il faut développer le code, le valider, s’assurer qu’il ne rentre pas en conflit avec quoi que ce soit etc.).
Démarche utile de Tom’s Hardware