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