Linux Virtual Delivery Agent

Configuration et réglage précis des graphiques

Cet article fournit des instructions pour configurer et ajuster les graphiques du Linux VDA.

Pour de plus amples informations, consultez les sections Configuration système requise et Présentation de l’installation.

Configuration

Optimiser pour la charge des graphiques 3D

Ce paramètre configure les valeurs par défaut appropriées qui conviennent le mieux aux charges de travail exigeant d’importantes ressources graphiques. Activez ce paramètre pour les utilisateurs dont la charge de travail utilise des applications exigeant d’importantes ressources graphiques. Appliquez cette stratégie uniquement dans les cas où un processeur graphique est disponible pour la session. Tous les autres paramètres qui remplacent explicitement les paramètres par défaut définis par cette stratégie sont prioritaires.

Par défaut, l’option Optimiser pour la charge des graphiques 3D est désactivée.

Codec vidéo pour la compression

Thinwire est la technologie de communication à distance d’écran utilisée dans le Linux VDA. Cette technologie permet aux graphiques générés sur une machine d’être transmis, généralement via un réseau, vers une autre machine.

La stratégie de graphiques Utiliser codec vidéo pour la compression définit le mode graphique par défaut et fournit les options suivantes pour différents cas d’utilisation :

  • Utiliser au choix. Il s’agit du réglage par défaut. Aucune configuration supplémentaire n’est requise. Ce paramètre assure que Thinwire est sélectionné pour toutes les connexions Citrix, et est optimisé pour la capacité à monter en charge, la bande passante et une qualité d’image supérieure pour les charges de travail de bureau standard.
  • Pour l’écran entier. Ce paramètre permet de mettre à disposition Thinwire avec H.264 ou H.265 plein écran pour optimiser l’expérience utilisateur et la bande passante, particulièrement dans les cas dans lesquels les graphiques 3D sont fortement sollicités. Le filigrane de session est pris en charge lorsque l’option Pour l’écran entier est sélectionnée ou lorsque l’option Utiliser au choix est sélectionnée et que l’option Optimiser pour la charge des graphiques 3D est activée.
  • Pour les zones changeant constamment. La technologie d’affichage adaptatif dans Thinwire identifie les images en mouvement (vidéo, 3D en mouvement). et utilise AV1, H.264 ou H.265 uniquement dans la partie de l’écran sur laquelle l’image est en mouvement. L’utilisation sélective du codec vidéo AV1, H.264 ou H.265 permet à HDX Thinwire de détecter et de coder des parties de l’écran qui sont fréquemment mises à jour. La compression d’images immobiles (JPEG, RLE) et la mise en cache de bitmaps continuent à être utilisées pour le reste de l’écran, y compris le texte et l’imagerie photographique. Les utilisateurs bénéficient d’une bande passante plus faible et d’une meilleure qualité pour le contenu vidéo, conjointement avec du texte sans perte ou avec des images de haute qualité. L’utilisation sélective du codec vidéo AV1 ou H.265 n’est pas prise en charge lorsque la stratégie Qualité visuelle est définie sur Toujours sans perte ou sur Sans perte si possible.

    Option Pour l’écran entier sélectionnée

D’autres paramètres de stratégie, y compris les paramètres de stratégie Affichage visuel suivants, peuvent être utilisés pour optimiser les performances de la communication à distance d’écran :

Encodage matériel AV1/H.265/H.264

La stratégie Utiliser le codage matériel pour le codec vidéo permet d’utiliser l’accélération matérielle du GPU, s’il est disponible, pour compresser les éléments d’écran avec le codec vidéo. L’accélération matérielle du GPU optimise l’utilisation des ressources matérielles et améliore considérablement les performances des images par seconde (FPS).

L’accélération matérielle du GPU couvre tous les modes graphiques définis par la stratégie Utiliser codec vidéo pour la compression :

  • Utiliser au choix
  • Pour l’écran entier
  • Pour les zones changeant constamment

Pour activer la compression vidéo matérielle, procédez comme suit :

  1. Définissez la stratégie Utiliser le codage matériel pour le codec vidéo sur Activé.
  2. Définissez le paramètre Utiliser codec vidéo pour la compression sur Utiliser au choix, Pour l’écran entier ou Pour les zones changeant constamment. Assurez-vous que le paramètre n’est pas réglé sur Ne pas utiliser de codec vidéo.

Pour pouvoir être utilisé, le codec vidéo AV1 ou H.265 doit être pris en charge et activé à la fois sur le VDA et l’application Citrix Workspace. AV1 obtient la préférence sur H.265 et H.264 lors de la négociation du codec. Lorsque AV1 n’est pas pris en charge, H.265 est négocié. Si AV1 et H.265 ne sont pas pris en charge, les sessions recommencent à utiliser le codec vidéo H.264. Si le matériel GPU n’est pas disponible, le VDA utilise le codage basé sur l’UC avec le codec vidéo logiciel.

Exigences relatives à l’encodage matériel AV1

VDA
  • VDA : 2311 ou version ultérieure
  • Unité de traitement graphique : NVIDIA Ada Lovelace ou version ultérieure (pour obtenir une matrice des codecs vidéo pris en charge par les GPU NVIDIA, consultez le document NVIDIA à l’adresse https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new.)
  • Pilote graphique NVIDIA 522.25 ou version ultérieure (SDK du codec vidéo v12.0)
Client
  • Application Citrix Workspace 2305 pour Windows ou version ultérieure
  • GPU client prenant en charge le décodage AV1 :
    • NVIDIA Ampere ou version ultérieure
    • Intel 11e génération/Arc ou version ultérieure
    • AMD Radeon RX 6000/Radeon Pro W6000 series (RDNA2) ou version ultérieure

Exigences relatives à l’encodage matériel H.265

Client
  • Citrix Receiver pour Windows 4.10 à 4.12
  • Application Citrix Workspace 1808 pour Windows et versions ultérieures

Pour activer le codage matériel H.265 sur votre client, consultez la section Codage vidéo H.265.

Compression sans perte H.265/H.264

La prise en charge de la compression sans perte H.265/H.264 est disponible pour l’accélération matérielle HDX 3D PRO par les GPU NVIDIA. La compression sans perte H.265 nécessite l’application Citrix Workspace 2305 pour Windows et versions ultérieures. La compression sans perte H.264 nécessite les clients suivants :

  • Application Citrix Workspace 2303 pour Windows et versions ultérieures
  • Application Citrix Workspace 2301 pour Mac et versions ultérieures avec la puce Apple M1

Pour activer la compression sans perte H.265/H.264, procédez comme suit :

  1. Définissez la stratégie Utiliser le codage matériel pour le codec vidéo sur Activé.
  2. Définissez la stratégie Utiliser codec vidéo pour la compression sur Pour l’écran entier.

  3. Définissez la stratégie Qualité visuelle sur Toujours sans perte ou Sans perte si possible.

Autoriser la compression visuelle sans perte

La stratégie Autoriser la compression visuelle sans perte permet d’utiliser une compression visuelle sans perte au lieu d’une véritable compression sans perte pour les graphiques. La compression visuellement sans perte améliore les performances par rapport à la compression vraie sans perte, mais engendre une perte mineure qui ne peut être remarquée à l’œil nu. Ce paramètre change la manière dont les valeurs du paramètre Qualité visuelle sont utilisées.

La stratégie Autoriser la compression visuelle sans perte est désactivée par défaut. Pour activer la compression visuelle sans perte, définissez Autoriser la compression visuelle sans perte sur Activé et la stratégie Qualité visuelle sur Sans perte si possible.

Si la stratégie Utiliser codec vidéo pour la compression est définie sur Ne pas utiliser de codec vidéo, la compression visuelle sans perte s’applique au codage d’image statique. Si la stratégie Utiliser codec vidéo pour la compression est définie sur un mode graphique autre que Ne pas utiliser de codec vidéo, la compression visuelle sans perte s’applique au codage H.264.

Pour plus d’informations sur les paramètres de stratégie Qualité visuelle et Utiliser codec vidéo pour la compression, consultez la section Paramètres de stratégie Affichage visuel et Paramètres de stratégie Graphiques.

Curseur pour la qualité des graphiques

Nous avons inclus un curseur pour la qualité des graphiques dans l’outil d’indicateur d’état des graphiques qui s’exécute dans vos sessions Linux virtuelles. Le curseur permet de trouver le bon équilibre entre la qualité d’image et l’interactivité.

Pour utiliser le curseur, procédez comme suit :

  1. Activez la stratégie Indicateur d’état des graphiques dans Citrix Studio.

    Stratégie Indicateur d'état des graphiques

  2. Ouvrez le terminal et exécutez la commande ctxslider. L’interface utilisateur du curseur apparaît.

    Remarque :

    • Si vous avez défini la stratégie Qualité visuelle sur Toujours sans perte ou Sans perte si possible, l’interface utilisateur du curseur ne s’affiche pas.

    • Vous pouvez lancer l’interface utilisateur du curseur à la fois depuis le terminal et depuis la barre d’état système.

    Curseur pour la qualité des graphiques

    Les options suivantes sont désormais disponibles :

    • Pour modifier la qualité de l’image, déplacez le curseur. Le curseur prend en charge une plage comprise entre 0 et 9.
    • Pour utiliser les paramètres définis par le système, sélectionnez Laisser le système décider.
    • Pour passer en mode sans perte, sélectionnez Pixel parfait.

Ajuster les débits moyens en fonction des estimations de bande passante

Citrix améliore le codage matériel HDX 3D Pro en ajustant les débits binaires moyens en fonction des estimations de bande passante.

Lorsque le codage matériel HDX 3D Pro est utilisé, le VDA peut estimer par intermittence la bande passante du réseau et ajuster les débits des images codées en conséquence. Cette nouvelle fonctionnalité fournit un mécanisme pour équilibrer la netteté et la fluidité.

Cette fonctionnalité est activée par défaut. Pour la désactiver, exécutez la commande suivante :

sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "DisableReconfigureEncoder" -d "0x00000001" --force
<!--NeedCopy-->

Outre l’utilisation de cette fonctionnalité, vous pouvez également exécuter les commandes suivantes pour régler la netteté et la fluidité. Les paramètres AverageBitRatePercent et MaxBitRatePercent définissent le pourcentage d’utilisation de la bande passante. Les valeurs les plus élevées que vous définissez, les graphiques plus nets et la fluidité moindre que vous obtenez. La plage de réglages recommandée est de 50 à 100.

sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AverageBitRatePercent" -d "90" --force

sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "MaxBitRatePercent" -d "100" --force
<!--NeedCopy-->

Avec le réglage de débit binaire moyen, lorsque votre écran reste immobile, l’image la plus récente reste dans un état de mauvaise qualité car aucune nouvelle image n’est envoyée. L’amélioration de la netteté peut résoudre ce problème en reconfigurant et en envoyant immédiatement l’image la plus récente avec la plus haute qualité.

Pour une liste complète des stratégies prises en charge par Linux VDA Thinwire, consultez la Liste des stratégies prises en charge.

Pour plus d’informations sur la configuration de la prise en charge de moniteurs multiples sur Linux VDA, consultez CTX220128.

Traitement en parallèle

Thinwire peut améliorer le nombre d’images par seconde (FPS) en exécutant certaines tâches en parallèle, avec pour effet une charge liée à une consommation globale du processeur légèrement plus élevée. Cette fonction est désactivée par défaut. Pour activer cette fonctionnalité, exécutez la commande suivante sur votre VDA :

sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ParallelProcessing" -d "0x00000001" --force
<!--NeedCopy-->

Dépannage

Vérifier quel mode graphique est utilisé

Exécutez la commande suivante pour vérifier quel mode graphique est utilisé (0 signifie TW+ ; 1 signifie codec vidéo plein écran) :

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep GraphicsMode
<!--NeedCopy-->

Le résultat se présente comme suit :

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "GraphicsMode" -d "0x00000000" --force

Vérifier que l’AV1 est en cours d’utilisation

Remarque :

Pour vérifier quel codec vidéo est utilisé pour la session en cours, exécutez la commande ci-dessous ou vérifiez l’état graphique dans la barre d’état système.

Exécutez la commande suivante pour vérifier si AV1 est en cours d’utilisation (0signifie qu’il n’est pas utilisé ; 1 signifie qu’il est utilisé) :

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep AV1
<!--NeedCopy-->

Par exemple, le résultat peut se présenter comme suit :

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "AV1" -d "0x00000000" --force

Vérifiez que H.265 est utilisé

Exécutez la commande suivante pour vérifier que H.265 plein écran est en cours d’utilisation (0 signifie qu’il n’est pas utilisé ; 1 signifie qu’il est utilisé) :

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H265
<!--NeedCopy-->

Par exemple, le résultat peut se présenter comme suit :

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H265" -d "0x00000000" --force

Vérifier que H.264 est utilisé

Exécutez la commande suivante pour vérifier que H.264 est en cours d’utilisation (0 signifie qu’il n’est pas utilisé ; 1 signifie qu’il est utilisé) :

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H264
<!--NeedCopy-->

Par exemple, le résultat peut se présenter comme suit :

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H264" -d "0x00000000" --force

Vérifier quel schéma de codage YUV est utilisé

Exécutez la commande suivante pour vérifier quel schéma de codage YUV est utilisé (0 signifie YUV420. 1 signifie YUV422. 2 signifie YUV444) :

Remarque :

La valeur de YUVFormat n’a de sens que lorsqu’un codec vidéo est utilisé.

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep YUVFormat
<!--NeedCopy-->

Par exemple, le résultat peut se présenter comme suit :

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "YUVFormat" -d "0x00000000" --force

Vérifier que le codage logiciel YUV444 est utilisé

Exécutez la commande suivante pour vérifier que le codage logiciel YUV444 est utilisé :

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep Graphics
<!--NeedCopy-->

Lorsque YUV444 est utilisé, le résultat se présente comme suit :

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "GraphicsMode" -d "0x00000001" --force

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H264" -d "0x00000001" --force

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000000" --force

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "YUVFormat" -d "0x00000002" --force

Vérifier que HDX 3D Pro est activé

Exécutez les commandes suivantes pour vérifier que HDX 3D Pro est activé :

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep ProductEdition

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep StackSessionMode

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep 3DPro
<!--NeedCopy-->

Lorsque HDX 3D Pro est activé, le résultat se présente comme suit :

create -k "HKLM\Software\Citrix\VirtualDesktopAgent\State" -t "REG_SZ" -v "ProductEdition" -d "<PLT or ENT>" --force

create -k "HKLM\System\CurrentControlSet\Control\Citrix\WinStations\tcp" -t "REG_DWORD" -v "StackSessionMode" -d "0x00000000" --force

create -k "HKLM\System\CurrentControlSet\Control\Citrix" -t "REG_DWORD" -v "3DPro" -d "0x00000000" --force

Pour vérifier que les bibliothèques NVIDIA requises sont chargées pour HDX 3D Pro, exécutez la commande nvidia-smi sur le Linux VDA. Le résultat se présente comme suit :

Tue Apr 12 10:42:03 2016
+------------------------------------------------------+
| NVIDIA-SMI 361.28     Driver Version: 361.28         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K1             Off  | 0000:00:05.0     Off |                  N/A |
| N/A   42C    P0    14W /  31W |    207MiB /  4095MiB |      8%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      2164  C+G   /usr/local/bin/ctxgfx                          106MiB |
|    0      2187    G   Xorg                                            85MiB |
+-----------------------------------------------------------------------------+
<!--NeedCopy-->

Vérifier que le codage matériel est utilisé pour 3D Pro

Exécutez la commande suivante (0 signifie qu’il n’est pas utilisé ; 1 signifie qu’il est utilisé) :

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep HardwareEncoding
<!--NeedCopy-->

Lorsque 3D Pro est utilisé, le résultat se présente comme suit :

create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" --force

Vérifier que le pilote graphique NVIDIA GRID est correctement installé

Pour vérifier si le pilote graphique NVIDIA GRID est correctement installé, exécutez nvidia-smi. Le résultat se présente comme suit :

+------------------------------------------------------+
| NVIDIA-SMI 352.70     Driver Version: 352.70         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla M60           Off  | 0000:00:05.0     Off |                  Off |
| N/A   20C    P0    37W / 150W |     19MiB /  8191MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
<!--NeedCopy-->

Définissez la configuration correcte pour la carte :

etc/X11/ctx-nvidia.sh

Problèmes d’actualisation des multi-écrans HDX 3D Pro

Si vous rencontrez des problèmes d’actualisation des écrans autres que l’écran principal, vérifiez que la licence NVIDIA GRID est disponible.

Vérifier les journaux d’erreurs Xorg

Le nom du fichier journal Xorg est similaire à Xorg.{DISPLAY}.log dans le dossier /var/log/.

Problèmes connus et limitations

Pour vGPU, la console locale XenServer (anciennement Citrix Hypervisor) affiche l’écran de la session de bureau ICA

Solution : désactivez la console VGA locale de la machine virtuelle en exécutant la commande suivante :

[root@xenserver ~]# xe vgpu-param-set uuid=vgpu-uuid extra_args=disable_vnc=1
<!--NeedCopy-->

Les fenêtres contextuelles du bureau Gnome 3 sont lentes lors de l’ouverture de session

Il s’agit d’une limitation du démarrage de session de bureau Gnome 3.

Certaines applications OpenGL/WebGL ne s’affichent pas correctement après le redimensionnement de l’application Citrix Workspace

Si vous redimensionnez la fenêtre de l’application Citrix Workspace, la résolution de l’écran est modifiée. Le pilote propriétaire NVIDIA modifie certains états internes et peut attendre des applications une réponse adaptée. Par exemple, l’élément de bibliothèque WebGL lightgl.js pourrait engendrer une erreur indiquant que le rendu dans cette texture n’est pas pris en charge (tampon de trame incomplet).

Configuration et réglage précis des graphiques