Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par Bruno

23PARTAGES

13  0 
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 :

Code : Sélectionner tout
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
Configurer l'écran GPU

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 ».

Code : Sélectionner tout
1
2
3
4
Section "ServerLayout"
Identifier "layout"
Option "AllowNVIDIAGPUScreens"
EndSection
2. le noyau nvidia-drm doit être chargé
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.

Code : Sélectionner tout
1
2
__NV_PRIME_RENDER_OFFLOAD=1 vkcube
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor
Source : NVIDIA

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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Daïmanu
Membre chevronné https://www.developpez.com
Le 29/08/2019 à 16:48
C'est tellement pénible de configurer le système avec ce type de matériel avec les méthodes actuelles !
J'ai réussi à me débrouiller sur mon Ubuntu, mais impossible de configurer Fedora pour tirer parti de la carte graphique.

Du coup, j'ai tellement hâte que ça soit disponible sur les dépôts officiels.
0  0 
Avatar de Lordanonymous
Candidat au Club https://www.developpez.com
Le 29/08/2019 à 23:31
Citation Envoyé par Daïmanu Voir le message
mais impossible de configurer Fedora pour tirer parti de la carte graphique.
Pour Fedora, tu peux regarder de ce côté-ci:
https://www.linuxtricks.fr/wiki/fedo...-optimus-aussi

Testé et approuvé la semaine dernière par moi même sur un Dell XPS 15 9550 (il a juste oublié de mentionner qu'il faillait reconstruire un initramfs pour ne pas se taper une erreur et repasser sur "Nouveau" au démarrage - j'ai mis à jour le système qui a mis à jour le noyau qui l'a fait à ma place pour régler le problème).

En fait il s'avère que les pilotes Nvidia pour Linux savent gérer Optimus depuis des lustres sur les plateformes autres que Debian (pas besoin de Primus et Optirun donc). Je ne comprend pas que ce point ne soit mentionné nul par lorsque l'on cherche des infos sur Optimus Linux... La seule contrainte est de devoir redémarrer la machine pour basculer d'une carte à l'autre (mais au moins c'est géré correctement contrairement à Primus/Optirun via Bumblebee et avec une vrai accélération graphique...).
Là, de ce que je comprends, c'est le vrai Optimus qui est pleinement géré. On est par défaut sous l'Intel HD et c'est l'application qui en a besoin qui exploite la carte graphique Nvidia. Si ça fonctionne c'est carrément top !

Par contre avant que ça arrive sous Wayland je sent que de l'eau va couler sous les ponts pendant un bon moment... Ceux qui utilisent une combinaison écran UHD/FHD devront passer leur chemin... Enfin ça avance dans le bon sens c'est déjà ça !
0  0 
Avatar de disedorgue
Expert éminent https://www.developpez.com
Le 30/08/2019 à 0:41
Citation Envoyé par Lordanonymous Voir le message
En fait il s'avère que les pilotes Nvidia pour Linux savent gérer Optimus depuis des lustres sur les plateformes autres que Debian (pas besoin de Primus et Optirun donc). Je ne comprend pas que ce point ne soit mentionné nul par lorsque l'on cherche des infos sur Optimus Linux... La seule contrainte est de devoir redémarrer la machine pour basculer d'une carte à l'autre (mais au moins c'est géré correctement contrairement à Primus/Optirun via Bumblebee et avec une vrai accélération graphique...).
Perso, j'ai un bureau sous wayland qui n'utilise pas ma carte nvidia et un autre sous X qui lui l'exploite, et donc, juste besoin de changer de bureau, pas besoin de rebooter en désactivant/activant la carte.
0  0 

 
Responsable bénévole de la rubrique Hardware : chrtophe -

Partenaire : Hébergement Web