NVIDIA : publication du pilote 435.17 beta pour Linux prenant en charge Vulkan, OpenGL et GLX pour le déchargement PRIME.
Un bonheur pour les utilisateurs d'ordinateurs portables
NVIDIA propose aujourd'hui un petit cadeau aux utilisateurs de Linux, avec la sortie du pilote 435.17 beta. En effet, celui-ci propose une implémentation de PRIME, le mécanisme du noyau Linux qui permet de tirer profit de plusieurs cartes graphiques (souvent deux) dans les ordinateurs portables afin de minimiser la consommation énergétique. NVIDIA propose depuis longtemps sa technologie Optimus pour ce faire, mais elle n'était pas encore disponible pour Linux : c'est maintenant le cas avec ce nouveau pilote.
Le rendu du déchargement PRIME correspond à la possibilité d’effectuer le rendu d’une application par un processeur graphique particulier, différent du processeur graphique principal. Ceci est particulièrement utile en combinaison avec la gestion dynamique de l'alimentation pour laisser un GPU NVIDIA éteint, sauf lorsque cela est nécessaire pour le rendu de certaines applications sensibles aux performances.
Configuration requise pour le serveur X
La prise en charge du déchargement du rendu sur une carte graphique NVIDIA par le mécanisme PRIME a nécessité les modifications suivantes dans le code du serveur X :
- 7f962c70 – xsync : ajout d'une ressource dans SyncCreate, exporte SyncCreate ;
- 37a36a6b – GLX : ajouter d'un mappage fournisseur par client ;
- 8b67ec7c – GLX : utilisation du client d'envoi pour rechercher les XID ;
- 56c0a71f – GLX : ajout d'une fonction pour changer la liste de fournisseurs d'un client ;
- b4231d69 – GLX : définition de la version de GlxServerExports::{major, minor}.
Au moment où ces lignes sont écrites, ces commits ne se trouvent que dans la branche principale du serveur X et donc pas dans la version officielle du serveur X. Les utilisateurs d'Ubuntu 19.04 ou 18.04 peuvent utiliser un serveur X auquel sont appliqués les commits ci-dessus, à partir de ce PPA.
Configurer l'écran X
Pour utiliser la prise en charge du déchargement de rendu PRIME de NVIDIA, configurez le serveur X avec un écran à l'aide d'un GPU intégré avec le pilote xf86-video-mode-setting. Le serveur X le fait normalement, automatiquement, en supposant que le BIOS du système soit configuré pour démarrer sur le GPU intégré. Manuellement, cela peut se faire ainsi :
Configurer l'écran GPU
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Section "ServerLayout" Identifier "layout" Screen 0 "iGPU" EndSection Section "Device" Identifier "iGPU" Driver "modesetting" EndSection Section "Screen" Identifier "iGPU" Device "iGPU" EndSection
Ensuite, activez la création d’écrans sur le GPU NVIDIA sur le serveur X. Pour ce faire,
1. Définissez l'option de configuration X « AllowNVIDIAGPUScreens ».
2. le noyau nvidia-drm doit être chargé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Section "ServerLayout" Identifier "layout" Option "AllowNVIDIAGPUScreens" EndSection
Cela devrait normalement se produire par défaut, mais vous pouvez confirmer en exécutant ‘lsmod | grep nvidia-drm’. Lancez ‘modprobe nvidia-drm’ pour le charger. Si la création d'écrans GPU a réussi, le fichier journal /var/log/Xorg.0.log doit contenir des lignes avec « NVIDIA (G0) », et l'interrogation des fournisseurs RandR avec `xrandr --listproviders`doit afficher un fournisseur nommé « NVIDIA-G0 » (pour « NVIDIA GPU screen 0 »).
Configurer les applications graphiques pour le rendu à l'aide de l'écran GPU
Pour configurer une application graphique à décharger sur l'écran du GPU NVIDIA, définissez la variable d'environnement __NV_PRIME_RENDER_OFFLOAD sur 1. Si l'application graphique utilise Vulkan, cela devrait suffire. Si l'application graphique utilise GLX, définissez également la variable d'environnement __GLX_VENDOR_LIBRARY_NAME sur nvidia afin que GLVND charge le pilote NVIDIA GLX. L'implémentation EGL de NVIDIA ne prend pas encore en charge le rendu du déchargement PRIME.
Source : NVIDIA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 __NV_PRIME_RENDER_OFFLOAD=1 vkcube __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor
Et vous ?
Qu'en pensez-vous ?
Voir aussi :
Une intelligence artificielle de NVIDIA transforme des croquis en paysages photoréalistes en quelques secondes, lors de la GPU Technology Conference
Partager