3DMark05

Publié le 29/09/2004 par et
Imprimer


Depuis son lancement en 1998, 3DMark est victime d’un succès qui ne s’est pas démenti. Il faut dire que ce logiciel permet en un clin d’œil de se faire une idée générale des performances d’une carte graphique, grâce à un seul chiffre : c’est rapide, simple, et donc ça plait.

3DMark99

Si nous avons utilisé le mot victime, ce n’est pas pour rien. En effet, devant l’importance prise par 3DMark, son côté benchmark est presque devenu inutile à des fins comparatives. Les constructeurs, conscient de l’importance prise par 3DMark03, font en effet tout pour arriver à obtenir le meilleur indice de performance possible, quitte à introduire de nombreuses optimisations spécifiques dans leurs drivers.

Il faut bien dire que c’est surtout avec la version 2003 que ce phénomène a pris de l’ampleur. NVIDIA, devant les piètres performances de son architecture GeForce FX lorsqu’elle devait traiter des calculs de pixel en virgule flottante, n’a pas hésité à dénaturer 3DMark03 afin d’obtenir un score comparable à celui des Radeon d’ATI.

Après les versions 1999, 2000, 2001, 2003, FuturMark revient sur le devant de la scène avec la version 2005 de son benchmark dédié aux cartes graphiques.
100% DirectX 9
3DMark05 est censé incarner le renouveau de 3DMark. NVIDIA fait de nouveau partie des partenaires de FutureMark, comme ATI et les autres acteurs du marché graphique, après avoir quitté le groupe de travail un peu avant la sortie de 3DMark03. Cette adhésion a permit à NVIDIA de donner son feedback à FutureMark durant le développement de 3DMark05.

Avec 3DMark03, FutureMark avait commencé à introduire le Shader Model 2.0 via le Game Test 4 (Mother Nature). 3DMark05 va plus loin puisqu’il nécessite au minimum une carte graphique supportant les Pixel Shader 2.0 pour fonctionner. Tous les pixel shaders sont au minimum du niveau PS 2.0. Les possesseurs de GeForce4, GeForce 4 MX, Radeon 9000, 9100, 9200 et 9250 peuvent donc passer leur chemin. Les puces actuelles d’entrée de gamme en AGP de ATI ne feront pas tourner 3DMark05, au contraire des GeForce FX 5200 de NVIDIA.


Tous les shader intégrés dans 3DMark05 sont maintenant écrits en HLSL, contrairement aux shaders de 3DMark03 qui étaient écris en assembleur. Pour rappel, le HLSL est un language de haut niveau – un peu comme le C – et les shader nécessitent donc une compilation avant d’être exécutés. Le compilateur HLSL est accessible aux développeurs à travers le kit de développement de DirectX. Les développeurs ont ensuite la possibilité de précompiler tous les shader ou d´intégrer le compilateur directement dans leur application. Cette compilation s’effectue selon des profils prédéfinis qui correspondent à un type d´architecture. Pour les Pixel Shader, on dispose par exemple des profils 2.0, 2a, 2b et 3.0. Le premier correspond aux spécifications de bases de DirectX 9.0, le second aux GeForce FX, le troisième aux X800 et le dernier aux GeForce 6. Une puce supportant le profil 2a ou 2b supporte le profil 2.0, alors qu’une carte supportant le profil 3.0 gère sans soucis les profils 2.0, 2a et 2b.

L´utilisation du HLSL par Futuremark est un choix judicieux puisqu´il correspond à ce que font et vont faire les développeurs de jeux vidéo. Programmer en HLSL est bien plus aisé et intuitif que l´assembleur et cet avantage devient de plus en plus important avec l´augmentation du nombre et de la complexité des shaders. Néanmoins, un shader HLSL est en général moins efficace qu´un shader écrit et peaufiné en assembleur. Un second compilateur intégré aux drivers de chaque carte graphique permet de compenser cela. L´utilisation du HLSL par 3DMark05 permet donc de donner un peu plus d´importance au compilateur intégré aux drivers... ou aux optimisations manuelles.

Du côté de la précision de calcul en virgule flottante, 3DMark05 utilise, lorsque cela ne réduit pas la qualité graphique, une précision partielle, chose que ne faisait pas 3DMark03. Pour rappel, la pleine précision nécessite un calcul sur 24 bits au minimum, ce que fait ATI, NVIDIA calculant pour sa part avec une précision accrue de 32 bits. Pour compenser cela, NVIDIA propose également un mode de précision partielle sur 16 bits. Bien entendu il est possible de forcer un mode pleine précision.
Gestion avancée des ombres
Pour en finir du côté des nouvelles fonctionnalités, sachez que 3DMark05 utilise pour le rendu des ombres dynamiques une version améliorée des perspective shadow maps (PSM). La taille de ces shadow maps est fixée à 2048*2048 pour les sources de lumières directionnelles, rien que ça ! 2 shadow maps de ce type sont utilisées, une pour les ombres situées à l´avant plan et l´autre pour les ombres situées sur le reste de la scène. Cette séparation permet d´avoir des ombres de meilleur qualité à l´avant plan mais elle a un désavantage : le passage d´une shadow map à une autre est brusque et inestétique. Un second problème vient s´ajouter : même en 2048x2048, la shadow map utilisée pour la scène entière est trop petite. Quelques bugs graphiques sont donc visibles notamment dans le game test 3. Futuremark est bien conscient de ces 2 petits défauts et nous a indiqués qu´ils résultaient d´un compromis qu´ils estiment être le meilleur actuellement et le plus représentatif de ce qui se fait et se fera dans la majorité des jeux vidéo. Il est vrai que le rendu des ombres n´est jamais parfaitment robuste dans la majorité des jeux vidéo, à l´exception de Doom 3.

Ces maps sont soit de type R32F, soit de type D24X8 pour les puces supportant la fonction de Depth Stencil Textures (DST). Dans ce dernier cas, le calcul des ombres sera plus rapide mais d´une qualité différente étant donné que leur filtrage est traité par l´unité de texturing au lieu du shader. Cela tombe bien pour NVIDIA puisque ATI ne supporte pas cette fonction alors que les GeForce en sont capable depuis très longtemps. Cette fonctionnalité ne fait cependant pas partie de DirectX... Futuremark justifie son choix d’utiliser cette fonction de part le fait que les développeurs de jeux l’utilisent et/ou vont le faire. Dans ce cas pourquoi avoir refusé d´utiliser le 3Dc sous prétexte qu´il ne s´agissait pas d´un standard de DirectX ? Dans tous les cas il est possible de désactiver la fonction DST pour ceux qui veulent une charge réellement comparable.

Sans Depth Stencil TexturesAvec Depth Stencil Textures


Les sources de lumières de type point light utilisent pour leur part des cube maps de haute qualité : (6x)512x512 en R32F. Le rendu des ces sources de lumières et de leurs ombres est donc identique sur toutes les cartes.
Quid des nouvelles fonctionnalités des GeForce Série 6 ?
Elles ne sont pas utilisées par 3DMark05, tout du moins dans sa version actuelle. 3DMark05 est capable d´utiliser le profil de compilation PS 3.0 mais uniquement pour compiler des shaders de classe 2.0. Futuremark nous a cependant indiqué qu´un shader avec branchement dynamique était utilisé dans les 2 premiers game tests et permetttait de sauter le calcul de certaines sources de lumières pour les pixels qui ne sont pas éclairés. Nous avons effectivement pu observer ce shader. Cependant, chose très étrange, il ne semble pas être formulé correctement ! Nous essayons d´en savoir plus auprès de Futuremark.

Le Geometry Instancing n´est pas supporté. Futuremark a envisagé de l´implémenter dans le second game test mais NVIDIA le leur a déconseillé étant donné que la scène ne s´y prêtait pas bien. Par contre et là c´est plus étrange, Futuremark n´y a pas pensé pour les tests de Vertex Shader. Cela pourrait être corrigé via une éventuelle mise à jour.

Le filtrage des textures FP16 et le blending FP16 ("HDR") est également ignoré. Ce choix est cependant logique au vu des performances des cartes actuelles dans les 3 game tests étant donné que l´utilisation de textures FP16 et surtout l´utilisation du blending FP16 ont un coût très important sur les performances.
Vos réactions

Top articles