Articles

Valve: OpenGL est plus rapide que DirectX – même sous Windows

Ce site peut gagner des commissions d’affiliation grâce aux liens sur cette page. Conditions d’utilisation.
L4D2, fonctionnant en mode natif sur Ubuntu 11.10

Dans une torsion effrayante qui renforce le dégoût de Valve pour Windows 8, il s’avère que le moteur Source — le moteur 3D qui alimente Half Life 2, Left 4 Dead et Dota 2 — fonctionne plus rapidement sur Ubuntu 12.04 et OpenGL que Windows 7 et DirectX/ Direct3D.

L’équipe de Valve Linux le décompose sur son tout nouveau blog : Avec une Nvidia GTX 680, un Intel i7-3930k et 32 Go de RAM, Windows 7 et DirectX, 4 Morts 2 max à 270,6 ips. Avec le même matériel, mais des logiciels différents — Ubuntu 12.04 et OpenGL-L4D2 enregistre 315 images par seconde, presque 20% plus rapide que Windows.

Ces chiffres sont remarquables, considérant que Valve affine les performances du moteur Source sous Windows depuis près de 10 ans, alors que l’équipe Valve Linux ne travaille sur le port Linux de Source que depuis quelques mois. Valve attribue la rapidité à « l’efficacité sous-jacente du noyau et d’OpenGL. »

Le port Linux de L4D2 n’a pas démarré à 315 fps, bien sûr — la version initiale était en fait maximale à seulement 6 fps. Pour réaliser un gain de performance aussi énorme, une approche à trois volets est adoptée: le jeu est peaufiné pour bien fonctionner avec le noyau Linux, le jeu est optimisé pour fonctionner avec OpenGL (plutôt que DirectX), et les bugs dans les pilotes graphiques Linux sont corrigés.

Ce dernier point est intéressant: Valve entretient des relations de longue date avec AMD, Nvidia et Intel, où Valve signale les bugs du pilote et le fabricant de GPU les corrige en temps opportun. Valve transmet cette relation à Linux, ce qui est très important pour la croissance continue de Linux en tant que plate-forme de jeu. Dans ce cas, Valve dit que le pilote Nvidia Linux manquait de support multithreading — et une fois qu’ils l’ont ajouté à une version ultérieure du pilote, les performances ont augmenté.

Mais voici le meilleur: En utilisant ces nouvelles optimisations OpenGL, la version OpenGL de L4D2 sous Windows est désormais plus rapide que la version DirectX. Avec le même matériel, Windows 7 / OpenGL/L4D2 s’affiche à 303,4 ips – par rapport à Windows 7 / DirectX/L4D2 à 270,6 ips. En bref: OpenGL est plus rapide que DirectX.

Logo DirectXQuant à savoir pourquoi OpenGL est plus rapide que DirectX /Direct3D, la réponse simple est qu’OpenGL semble avoir un pipeline plus lisse et plus efficace. À 303,4 images par seconde, OpenGL rend une image toutes les 3,29 millisecondes ; à 270,6 images par seconde, DirectX rend une image en 3,69 millisecondes. Cette différence de 0,4 milliseconde dépend de la vitesse à laquelle le pipeline DirectX peut traiter et dessiner des données 3D.

Pourquoi utilisons-nous toujours Direct3D?

Si OpenGL est plus rapide, pourquoi DirectX est-il toujours l’API prédominante ? Ce n’est pas à cause de la qualité ou des fonctionnalités de l’image: OpenGL 4.0 possède tous les shaders, tessellateurs et widgets que possède DX. Ce n’est pas à cause du support matériel: Toutes les cartes graphiques Nvidia et AMD prennent en charge la dernière version d’OpenGL avec DirectX.

Vraiment, tout se résume à cette vieille chose minable que nous appelons l’effet de réseau — et, bien sûr, le poids monopolistique et les dollars de marketing. DirectX, parce qu’il a une API plus propre et une meilleure documentation, est plus facile à apprendre. Plus de développeurs utilisant DirectX = plus de jeux DirectX = meilleure prise en charge des pilotes. Il s’agit d’une boucle vicieuse qui conduit à nouveau à plus de développeurs DX, à plus de jeux DX et à de meilleurs pilotes / outils / documentations DX. Microsoft a également commercialisé sans relâche DirectX – et qui peut oublier la sortie de Windows Vista et la campagne de diffamation OpenGL de Microsoft? La version fournie par Vista d’OpenGL était complètement paralysée, forçant de nombreux développeurs à passer à DirectX.

Steam LinuxMicrosoft a de bonnes raisons d’entraver les progrès d’OpenGL, bien sûr: Alors que DirectX est propriétaire et ne fonctionne que sur Windows, Xbox et Windows Phone, OpenGL est complètement multiplateforme. Il existe des implémentations OpenGL solides pour Mac, Linux, PlayStation 3, Nintendo Wii et à peu près tous les smartphones modernes (OpenGL ES). Il est évidemment dans l’intérêt de Microsoft de s’assurer que les meilleures expériences de jeu sont exclusives à ses plates-formes.

Avec le dégoût de Gabe Newell pour Windows 8 (et Blizzard faisant écho à ses sentiments), la sortie imminente de Steam sur Linux et la croissance continue des jeux pour smartphones, nous pourrions être à l’aube d’une révolution OpenGL. Si la couronne de jeu Windows continue de glisser, OpenGL pourrait bientôt devenir l’API par défaut, plutôt qu’une réflexion après coup. Très bientôt, il pourrait être standard de développer un jeu qui fonctionne bien sur toutes les plates—formes – plutôt que de se concentrer sur Direct3D et de laisser Linux et OS X dans le froid.

Valve parlera de ses avancées Linux/OpenGL à SIGGRAPH 2012 la semaine prochaine. SIGGRAPH est également l’endroit où nous entendons généralement parler des dernières nouvelles d’OpenGL et de DirectX – alors restez à l’écoute!

Mise à jour @ 2:40: L’histoire indiquait à l’origine que la spécification OpenGL était généralement en avance sur DirectX — mais cela n’a pas été vrai depuis quelques années maintenant.