Dans les ordinateurs portables, il est fréquent d’avoir 2 cartes graphiques. Celle intégrée au CPU qui consomme peu mais est peu performante et une autre carte graphique type NVidia qui consomme bien plus mais est plus performante.
Pour des raisons de consommation, la carte graphique performante n’est pas donc pas celle utilisée par défaut par les applications.
Si on lance une application OpenGL par exemple, on a ceci par défaut :
$ glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile
OpenGL core profile version string: 3.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
Pour lancer la même application mais avec la seconde carte graphique, il suffit de rajouter la variable d’environnement DRI_PRIME=1 :
$ DRI_PRIME=1 glxinfo | grep OpenGL
OpenGL vendor string: nouveau
OpenGL renderer string: Gallium 0.4 on NV108
OpenGL core profile version string: 4.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
Plutôt simple comme manipulation.
Je n’ai pas trouvé de benchmark moderne facilement disponible sous Linux pour comparer les performances. (glxgears est trop éloigné d’un jeu vidéo moderne) Est ce que quelque chose en WebGL ferait l’affaire?
Malheureusement, ça ne fonctionne qu’avec le pilote libre « nouveau », pour Nvidia faut toujours passer par Bumblebee pour faire fonctionner le pilote propriétaire. Et Bumblebee est maintenant totalement à la ramasse, il n’a pas été mis à jour depuis des lustres (2013 !) et n’est pas foutu de faire tourner Vulkan (https://github.com/Bumblebee-Project/Bumblebee/issues/769). C’est tellement en train de devenir une antiquité qu’il faut mettre des options au démarrage du GRUB pour désactiver des trucs trop récent dans le kernel, en particulier la nouvelle gestion de l’énergie (https://github.com/Bumblebee-Project/bbswitch/issues/140).
Sinon, y’a aussi nvidia-xrun, mais ça n’a rien de pratique…
bonjour
merci pour cet article
en benchmark, j’avais testé https://benchmark.unigine.com/heaven
ou glmark2 (sur kubuntu)
Salut,
Ah bah j’avais écrit le même article mais pour une carte Radeon! xD
https://ilphrin.com/planet/2017/01/02/faire-marcher-une-carte-hybride-sous-linux.html
Avec mon nouveau pc, j’aurais une carte NVidia, j’essayerais aussi ce paramètre DRI_PRIME ;)