URL: https://linuxfr.org/users/tfc_duke/journaux/drivers-nvidia-drivers-en-carton Title: Drivers nvidia, drivers en carton ? Authors: Meku Date: 2005年03月06日T17:51:35+01:00 Tags: Score: 0 Bonjour, aujourd'hui je voudrais parler un peu des drivers proprios nvidia. Je développe pour mon plaisir des petits programmes utilisant OpenGL, j'utilise donc les drivers propriétaires de nvidia, seulement voilà, depuis un moment il y avait un truc qui m'agaçait un peu, c'était cette impression d'avoir une chute du framerate ponctuelle. Le rendu est fluide, sauf à certains moments ou paf! on sent qu'une frame a été plus lourde à dessiner. J'ai alors pensé que je m'y prenais mal, que je codais comme un porc, etc., mais en testant sous un windows, le problème ne semblait pas se produire. J'ai regardé d'autres applications utilisant OpenGL sous linux, genre celestia, même problème ! J'ai essayé Enemy Territory mais bon, trop difficile à voir, il faut avoir un objet en mouvement uniforme pour bien le sentir. J'ai essayé avec SDL et avec glut, pareil (au cas où ça viendrait de la bibliothèque qui gère les fenêtres et évènements). Je n'ai pas le souvenir d'avoir eu ce problème il y a un an, et j'ai l'impression que plus les pilotes sont récents, et plus ça se sent. Ça me le faisait sur ma GeForce2 MX, ça le faisait sur une autre machine avec une GeForceFX 5600, ça le fait sur ma machine, mais avec une GeForceFX 5500 cette fois. Et plus la scène est complexe, plus ça se fait sentir (le pic est plus important). J'ai fait mon petit bench maison rapidement cet aprem, histoire de voir. C'est un programme tout bidon qui fait tourner une sphère pendant 5 secondes tout en enregistrant le framerate calculé à chaque frame, et qui l'imprime dans un fichier en quittant. Voici les résultats avec les 66.29 (première colonne : temps ; seconde colonne : framerate) : * [http://tfc.duke.free.fr/divers/nvbench1000.txt(...)](http://tfc.duke.free.fr/divers/nvbench1000.txt) : sans restrictions ; * [http://tfc.duke.free.fr/divers/nvbench60.txt(...)](http://tfc.duke.free.fr/divers/nvbench60.txt) : avec un blocage du framerate à 60 fps ; * [http://tfc.duke.free.fr/divers/nvbenchXP.txt(...)](http://tfc.duke.free.fr/divers/nvbenchXP.txt) : sous WindowsXP (avec des drivers qui doivent avoir plus d'un an d'ailleurs) ; Les '###' en fin de ligne indiquent une chute anormale par rapport à ce qui est espéré. Avec des graphiques, on voit tout de suite le truc qui coince (abscisses : temps ; ordonnées : framerate). Ça s'étale sur une durée de 5 secondes : * [http://tfc.duke.free.fr/screens/nvbench60.png(...)](http://tfc.duke.free.fr/screens/nvbench60.png) : Linux, bloqué à 60 fps par l'application ; * [http://tfc.duke.free.fr/screens/nvbenchXP.png(...)](http://tfc.duke.free.fr/screens/nvbenchXP.png) : WindowsXP, bloqué à 60 fps mais par le driver ; Sous Windows, framerate constant. Sous Linux, on note 7~8 chutes brutales en l'espace de 5 secondes, pour afficher une pauvre sphère qui tourne sans texture ni éclairage. C'est vraiment pénible car on ne peut plus faire une animation en fonction du temps sans que ça saccade. Bon, peut-être que ça ne vient pas des drivers, peut-être le système envoie des messages à ma fenêtre et qui seraient lourd à traiter ? J'en sais rien... Le truc chiant c'est que c'est comme le pixel mort dans le coin de l'écran, on ne voit plus que ça. Et on ne peut rien faire. Si le bench vous intéresse, [http://tfc.duke.free.fr/divers/bench.c(...)](http://tfc.duke.free.fr/divers/bench.c) Il y a une petite bidouille à faire ligne 133 pour retirer le plafond de 60 fps (#if 1 en #if 0) et ligne 86, remplacer le 50 par la valeur moyenne qu'il vous sort, moins des broutilles (genre 480 pour ~500 fps). Vivement que TechSource sorte sa carte graphique libre.