Comparatif des performances 3D entre un système précompilé générique un système compilé à la main, avec Debian sid.
Les partisans de distributions sources telles que Gentoo parlent de gains de performances comparés aux distributions précompilées de façon générique telles que Debian.
Qu’en est-il vraiment, en particulier dans les jeux vidéos ?
Debian offre l’avantage d’être une distribution précompilée, mais aussi de permettre de compiler soit même le système grâce à l’outil apt-build.
C’est bien entendu beaucoup moins souple que Gentoo, dont c’est la spécialité, mais ça permet de réellement comparer un système compilé contre un générique, avec la même distribution.
Pour ce comparatif, votre serviteur n’a pas eu le courage de tout recompiler. En effet, je me suis contenté du noyau (même configuration que le noyau officiel Debian Sid), libc6, Openarena, Nexuiz et toutes les librairies dont dépend directement ce dernier (SDL 1.2, Curl3, OpenAL).
Oui, parce que ce seront Openarena et Nexuiz qui nous serviront de cobayes. Ca ne fait pas beaucoup de jeux, mais j’estime que si il y a une amélioration des performances, elle devrait s’appliquer à n’importe quel jeu, du moins s’il est compilé à la main, dans les mêmes conditions. Donc inutile de tester des dizaines de jeux.
Il est vrai que la majorité de mon système reste générique, mais le fait que Gimp ne soit pas optimisé influera-t’il sur les performances dans les jeux vidéos ?
Les jeux et les librairies directement utilisés par ces derniers étant compilés, les différences avec un système totalement compilé à la main devraient être négligeables, pour ne pas dire inexistantes.
Voici donc la machine de test :
Processeur : | AMD Athlon 64 3200+ cadencé à 2210 Mhz |
Carte mère : | Nforce 3 |
Mémoire vive : | 1,2 Go |
Carte graphique : | Geforce 6600 GT 128 Mo, avec les pilotes Nvidia propriétaires. |
Système d’exploitation : | Debian sid x86_64 |
Options de compilation (CFLAGS) : | -march=athlon64 -O2 -pipe |
Openarena est un FPS basé sur le moteur libre ioquake3, dérivé de Quake 3. On a donc le choix d’installer les binaires fournis ou d’utiliser les sources et de compiler soit même le jeu.
Les tests ont été réalisés sur la carte dm6ish au moyen des outils de test fournis par le jeu et dans trois modes différents :
Niveau minimum : résolution 800x600, tout niveau de détail au minimum (fastest)
Niveau moyen : résolution 1024x768, tout niveau de détail moyen
Niveau maximum : résolution de 1280x1024, tout niveau de détail maximum
Même chose, mais cette fois avec Nexuiz, qui utilise le moteur DarkPlaces, dérivé du moteur Quake premier du nom.
Les moteurs semblent très proches, mais c’est une erreur, DarkPlaces intègre de nombreuses améliorations graphique, comme par exemple les lumière dynamiques ou encore le « bloom ».
En définitive, la paternité entre ioquake3 et Darkplaces est suffisamment éloignée pour permettre à ce comparatif d’être pertinent.
Les graphiques parlent d’eux-mêmes. Il y a bien une amélioration des performances, mais celle-ci est minime est oscille entre 1.5 et 2.5%.
Alors, oui il y a une amélioration des performances, mais prendre plusieurs heures de son temps pour gagner au maximum 10 FPS à un jeu vidéo en vaut-il la peine ?
Après c’est bien entendu une affaire de choix, utiliser un système générique, c’est savoir (si on a bien lu ce comparatif) que le matériel n’est pas utilisé au meilleur de ses capacités, même si la différence n’est pas extraordinaire. Et puis nous utilisons ici un système x86_64, il y a fort à parier que la différence serait plus grande entre un système générique 32 bits (i386) sur une machine i686 (ce qui est le cas de la majorité de nos machines).
A noter que sur ce comparatif, la majorités des optimisations se sont faites directement au niveau du moteur du jeu.
Par exemple, en gardant mon système « optimisé », j’ai réinstallé la version générique d’OpenArena. En configuration haute, l’affichage redescend à 191.2 FPS. Comparé aux 190.8 du système totalement générique, c’est négligeable.
Pour finir, un élément très important pour les jeux vidéos reste précompilé et donc pas forcément très optimisé, je parle bien entendu des pilotes graphiques, en l’occurrence ici Nvidia.
Sans vouloir lancer le débat ou autres trolls libres/pas libres, ce comparatif a clairement démontré que l’on pouvait améliorer les performances en compilant quelques éléments importants du système avec les bonnes options pour gcc, il n’y a pas de raison que cette règle ne s’applique pas avec les pilotes graphiques.