Linux Virtual Delivery Agent

Grafikkonfiguration und -feineinstellung

Dieser Artikel erläutert die Grafikkonfiguration und -optimierung für den Linux VDA.

Weitere Informationen finden Sie unter Systemanforderungen und Installationsübersicht.

Konfiguration

Optimierung für 3D-Grafikworkload

Mit dieser Einstellung werden die am besten für grafikintensive Workloads geeigneten Standardwerte konfiguriert. Aktivieren Sie diese Einstellung für Benutzer die vorwiegend mit grafikintensiven Anwendungen arbeiten. Wenden Sie diese Richtlinie nur an, wenn eine GPU für die Sitzung verfügbar ist. Alle anderen Einstellungen, die die von dieser Richtlinie festgelegten Standardeinstellungen explizit außer Kraft setzen, haben Vorrang.

Standardmäßig ist die Optimierung für 3D-Grafik-Workloads deaktiviert.

Videocodec für die Komprimierung

Thinwire ist die bei Linux VDAs verwendete Technologie für das Anzeigeremoting. Durch sie können auf einer Maschine erzeugte Grafiken auf eine andere Maschine für die Anzeige übertragen werden (normalerweise über ein Netzwerk).

Die Richtlinie Videocodec für Komprimierung verwenden bestimmt den Standardgrafikmodus und bietet folgende Optionen für verschiedene Anwendungsfälle:

  • Verwenden, wenn bevorzugt. Dies ist die Standardeinstellung. Eine zusätzliche Konfiguration ist nicht erforderlich. Dies stellt sicher, dass Thinwire für alle Citrix Verbindungen ausgewählt und für Skalierbarkeit, Bandbreite und bessere Bildqualität bei typischen Desktoparbeitslasten optimiert wird.
  • Für den gesamten Bildschirm. Thinwire wird mit Vollbild-H.264 oder -H.265 zur Optimierung der Benutzererfahrung und Bandbreite, insbesondere bei intensiver 3D-Grafiknutzung, verwendet. Sitzungswasserzeichen wird unterstützt, wenn Für den gesamten Bildschirm ausgewählt ist, oder wenn Verwenden, wenn bevorzugt ausgewählt und Optimierung für 3D-Grafikworkload aktiviert ist.
  • Für aktive Änderungsbereiche. Die Technologie für adaptive Anzeige von Thinwire identifiziert Bewegtbilder (Video, 3D In Motion). AV1, H.265 oder H.264 wird nur in dem Bildschirmbereich verwendet, in dem das Bild sich bewegt. Mit der selektiven Verwendung des AV1, H.265 oder H.264 Videocodecs können Bildschirmsegmente, die häufig aktualisiert werden, von HDX Thinwire erkannt und codiert werden. Für den übrigen Bildschirm (einschließlich Text und Fotos) werden weiterhin die Standbildkomprimierung (JPEG, RLE) und das Bitmapcaching verwendet. Dies verbraucht weniger Bandbreite und führt zu einer verbesserten Anzeige von Videoinhalten, verbunden mit verlustfreiem Text und hoher Bildqualität. Die selektive Verwendung von AV1 und H.265 wird nicht unterstützt, wenn die Richtlinie Bildqualität auf Immer verlustfrei oder Zu verlustfrei verbessern festgelegt ist.

    Für den gesamten ausgewählten Bildschirm

Einige weitere Richtlinieneinstellungen, einschließlich der nachfolgend aufgeführten Einstellungen der Richtlinie “Visuelle Anzeige”, können zur Optimierung der Anzeigeremoting-Leistung verwendet werden:

AV1/H.265/H.264 Hardwarecodierung

Die Richtlinie Hardwarecodierung für Videocodec verwenden ermöglicht das Komprimieren von Bildschirmelementen mit dem Videocodec mithilfe der GPU-Hardwarebeschleunigung (falls verfügbar). Die GPU-Hardwarebeschleunigung optimiert die Ressourcenauslastung der Hardware und verbessert die FPS-Leistung (Frames pro Sekunde).

Die GPU-Hardwarebeschleunigung umfasst alle Grafikmodi, die in der Richtlinie Videocodec zur Komprimierung verwenden festgelegt sind:

  • Verwenden, wenn bevorzugt
  • Für den gesamten Bildschirm
  • Für aktive Änderungsbereiche

Gehen Sie wie folgt vor, um die Hardwarevideokomprimierung zu aktivieren:

  1. Legen Sie die Richtlinie Hardwarecodierung für Videocodec verwenden auf Aktiviert fest.
  2. Legen Sie Videocodec zur Komprimierung verwenden auf Verwenden, wenn bevorzugt, Für den gesamten Bildschirm oder Für aktive Änderungsbereiche fest. Vergewissern Sie sich, dass die Option nicht auf Videocodec nicht verwenden festgelegt ist.

Um verwendet werden zu können, muss der AV1- oder H.265-Videocodec sowohl auf dem VDA als auch auf der Citrix Workspace-App unterstützt und aktiviert sein. AV1 hat bei der Codec-Aushandlung Vorrang vor H.265 und H.264. Wenn AV1 nicht unterstützt wird, wird H.265 ausgehandelt. Wenn sowohl AV1 als auch H.265 nicht unterstützt werden, greifen Sitzungen auf den H.264-Videocodec zurück. Wenn GPU-Hardware nicht verfügbar ist, wird die CPU-basierte Codierung mit dem Software-Videocodec verwendet.

Anforderungen für die AV1-Hardwarecodierung

VDA
Client
  • Citrix Workspace-App 2305 für Windows oder höher
  • Client-GPU, die AV1-Decodierung unterstützt:
    • NVIDIA Ampere oder höher
    • Intel 11th Gen / Arc oder höher
    • AMD Radeon RX 6000 / Radeon Pro W6000 Serie (RDNA2) oder höher

Anforderungen für die H.265-Hardwarecodierung

Client
  • Citrix Receiver für Windows 4.10 bis 4.12
  • Citrix Workspace-App 1808 für Windows und höher

Informationen zum Aktivieren der H.265-Hardwarecodierung auf dem Client finden Sie unter H.265-Videocodierung.

Verlustfreie H.265-/H.264-Komprimierung

Die verlustfreie H.265-/H.264-Komprimierung ist für die HDX 3D PRO-Hardwarebeschleunigung mit NVIDIA-GPUs verfügbar. Für die verlustfreie H.265-Komprimierung ist die Citrix Workspace-App 2305 für Windows und höher erforderlich. Für die verlustfreie H.264-Komprimierung sind die folgenden Clients erforderlich:

  • Citrix Workspace-App 2303 für Windows und höher
  • Citrix Workspace-App 2301 für Mac und höher mit dem Apple M1-Chip

Gehen Sie wie folgt vor, um die verlustfreie H.265-/H.264-Komprimierung zu aktivieren:

  1. Legen Sie die Richtlinie Hardwarecodierung für Videocodec verwenden auf Aktiviert fest.
  2. Legen Sie die Richtlinie Videocodec zur Komprimierung verwenden auf Für den gesamten Bildschirm fest.

  3. Legen Sie die Richtlinie Bildqualität auf Immer verlustfrei oder Zu verlustfrei verbessern fest.

Visuell verlustfreie Komprimierung zulassen

Mit der Richtlinie Visuell verlustfreie Komprimierung zulassen wird für Grafiken visuell verlustfreie Komprimierung statt echter verlustfreier Komprimierung verwendet. Visuell verlustfreie Komprimierung steigert im Vergleich zu echter verlustfreier Komprimierung die Leistung, hat jedoch geringe Verluste, die für das Auge nicht erkennbar sind. Durch diese Einstellung ändert sich, wie die Einstellungswerte für die Bildqualität verwendet werden.

Die Richtlinie Visuell verlustfreie Komprimierung zulassen ist standardmäßig deaktiviert. Um die visuell verlustfreie Komprimierung zu aktivieren, setzen Sie Visuell verlustfreie Komprimierung zulassen auf Aktiviert und die Richtlinie für visuelle Qualität auf Zu verlustfrei verbessern.

Wenn die Richtlinie Videocodec für Komprimierung verwenden auf Videocodec nicht verwenden festgelegt ist, wird die visuell verlustfreie Komprimierung auf die statische Bildcodierung angewendet. Wenn die Richtlinie Videocodec für Komprimierung verwenden auf einen anderen Grafikmodus als Videocodec nicht verwenden festgelegt ist, wird die visuell verlustfreie Komprimierung auf die H.264-Codierung angewendet.

Weitere Informationen zu den Richtlinieneinstellungen für Bildqualität und Videocodec zur Komprimierung verwenden finden Sie unter Einstellungen der Richtlinie “Visuelle Anzeige” und Einstellungen der Richtlinie “Grafiken”.

Schieberegler für Grafikqualität

In der in virtuellen Linux-Sitzungen ausgeführten Grafikstatusanzeige gibt es jetzt einen Schieberegler für Grafikqualität. Mit dem Schieberegler finden Sie das richtige Gleichgewicht zwischen Bildqualität und Interaktivität.

Führen Sie die folgenden Schritte aus, um den Schieberegler zu verwenden:

  1. Aktivieren Sie die Richtlinie Grafikstatusanzeige in Citrix Studio.

    Richtlinie "Grafikstatusanzeige"

  2. Öffnen Sie das Terminal und führen Sie den Befehl ctxslider aus. Der Schieberegler wird angezeigt.

    Hinweis:

    • Wenn Sie die Richtlinie Bildqualität auf Immer verlustfrei oder Zu verlustfrei verbessern festgelegt haben, wird der Schieberegler nicht angezeigt.

    • Sie können den Schieberegler vom Terminal und vom Infobereich aus starten.

    Schieberegler für Grafikqualität

    Die folgenden Optionen sind jetzt verfügbar:

    • Um die Bildqualität zu ändern, verschieben Sie den Schieberegler. Der Schieberegler hat einen Bereich von 0 bis 9.
    • Um systemdefinierte Einstellungen zu verwenden, wählen Sie System entscheiden lassen.
    • Um in den verlustfreien Modus zu wechseln, wählen Sie Pixelgenau.

Anpassen der durchschnittlichen Bitraten basierend auf Bandbreitenschätzungen

Citrix verbessert die HDX 3D Pro-Hardwarecodierung durch Anpassung der durchschnittlichen Bitraten basierend auf Bandbreitenschätzungen.

Wenn die HDX 3D Pro-Hardwarecodierung verwendet wird, kann der VDA sporadisch die Bandbreite des Netzwerks schätzen und die Bitraten von codierten Frames entsprechend anpassen. Dieses neue Feature bietet einen Mechanismus, um zwischen Schärfe und Fluss auszugleichen.

Dieses Feature ist standardmäßig aktiviert. Führen Sie folgenden Befehl aus, um es zu deaktivieren:

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

Zusätzlich zu diesem Feature können Sie auch die folgenden Befehle ausführen, um zwischen Schärfe und Fluss anzupassen. Die Parameter AverageBitRatePercent und MaxBitRatePercent legen den Prozentsatz der Bandbreitenauslastung fest. Je höhere Werte Sie festlegen, desto schärfer sind Grafiken und weniger glatt fließen sie. Der empfohlene Bereich für diese Einstellung ist 50 bis 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-->

Wenn mit der durchschnittlichen Bitratenanpassung der Bildschirm angehalten wird, erscheint der letzte Frame mit niedriger Qualität, weil keine neuen Frames gesendet werden. Die Schärfungsunterstützung kann dieses Problem beheben, indem neu konfiguriert und sofort der neueste Frame in höchster Qualität sofort gesendet wird.

Eine vollständige Liste der von Linux VDA Thinwire unterstützten Richtlinien finden Sie unter Liste der unterstützten Richtlinien.

Informationen zur Konfiguration der Multi-Monitor-Unterstützung für den Linux VDA finden Sie unter CTX220128.

Parallele Verarbeitung

Thinwire kann die Anzahl der Frames pro Sekunde (FPS) durch Parallelisierung bestimmter Aufgaben verbessern, was einen insgesamt etwas höheren CPU-Verbrauch verursacht. Das Feature ist in der Standardeinstellung deaktiviert. Führen Sie den folgenden Befehl auf Ihrem VDA aus, um das Feature zu aktivieren:

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

Problembehandlung

Verwendeten Grafikmodus ermitteln

Führen Sie folgenden Befehl aus, um den verwendeten Grafikmodus zu ermitteln (0 ist TW+, 1 ist Vollbildvideocodec):

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

Das Ergebnis sieht in etwa wie folgt aus:

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

Überprüfen Sie, dass AV1 verwendet wird

Hinweis:

Um zu überprüfen, welcher Videocodec für die aktuelle Sitzung verwendet wird, führen Sie entweder einen der unten angegebenen Befehle aus oder überprüfen Sie den Grafikstatus im Infobereich.

Führen Sie folgenden Befehl aus, um zu ermitteln, ob AV1 verwendet wird (0 = nicht verwendet, 1 = verwendet):

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

Das Ergebnis kann zum Beispiel wie folgt aussehen:

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

Verifizieren, dass H.265 verwendet wird

Führen Sie folgenden Befehl aus, um zu ermitteln, ob Vollbild-H.265 verwendet wird (0 = nicht verwendet, 1 = verwendet):

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

Das Ergebnis kann zum Beispiel wie folgt aussehen:

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

Verifizieren, dass H.264 verwendet wird

Führen Sie folgenden Befehl aus, um zu ermitteln, ob H.264 verwendet wird (0 = nicht verwendet, 1 = verwendet):

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

Das Ergebnis kann zum Beispiel wie folgt aussehen:

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

Ermitteln des verwendeten YUV-Codierungsschemas

Führen Sie den folgenden Befehl aus, um zu überprüfen, welches YUV-Codierungsschema verwendet wird (0 bedeutet YUV420. 1 bedeutet YUV422. 2 bedeutet YUV444):

Hinweis:

Der Wert von YUVFormat ist nur dann sinnvoll, wenn ein Videocodec verwendet wird.

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

Das Ergebnis kann zum Beispiel wie folgt aussehen:

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

Verifizieren, dass die YUV444-Softwarekodierung verwendet wird

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die YUV444-Softwarekodierung verwendet wird:

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

Wenn YUV444 verwendet wird, ähnelt das Ergebnis:

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

Verifizieren, dass HDX 3D Pro aktiviert ist

Führen Sie die folgenden Befehle aus, um zu überprüfen, ob HDX 3D Pro aktiviert ist:

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

Wenn HDX 3D Pro aktiviert ist, sieht das Ergebnis wie folgt aus:

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

Um zu überprüfen, ob die erforderlichen NVIDIA-Bibliotheken für HDX 3D Pro geladen sind, führen Sie den Befehl nvidia-smi auf dem Linux VDA aus. Das Ergebnis sieht in etwa wie folgt aus:

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

Verifizieren, dass die Hardwarekodierung für 3D Pro verwendet wird

Führen Sie folgenden Befehl aus (0 = nicht verwendet, 1 = verwendet):

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

Wenn 3D Pro verwendet wird, sieht das Ergebnis wie folgt aus:

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

Prüfung auf fehlerfreie Installation des NVIDIA GRID-Grafiktreibers

Um die korrekte Installation des NVIDIA GRID-Grafiktreibers zu überprüfen, führen Sie nvidia-smi aus. Das Ergebnis sieht in etwa wie folgt aus:

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

Legen Sie die richtige Konfiguration für die Karte fest:

etc/X11/ctx-nvidia.sh

HDX 3D Pro - Probleme bei der Darstellungsaktualisierung bei mehreren Monitoren

Wenn beim Verwenden mehrerer Monitore Probleme bei der Darstellungsaktualisierung auf den sekundären Monitoren auftreten, prüfen Sie, ob die NVIDIA GRID-Lizenz verfügbar ist.

Überprüfen der Xorg-Fehlerprotokolle

Die Xorg-Protokolldatei heißt Xorg.{DISPLAY}.log (oder ähnlich) und ist im Ordner /var/log/.

Bekannte Probleme und Einschränkungen

Für vGPU wird auf der lokalen XenServer-Konsole (früher Citrix Hypervisor) der Bildschirm der ICA-Desktopsitzung angezeigt

Workaround: Deaktivieren Sie die lokale VGA-Konsole der VM, indem Sie den folgenden Befehl ausführen:

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

Gnome 3-Desktoppopups bei Anmeldung langsam

Dies ist eine Einschränkung im Gnome 3-Desktopsitzungsstart.

Einige OpenGL/WebGL-Anwendungen werden nach dem Ändern der Fenstergröße der Citrix Workspace-App nicht einwandfrei gerendert

Beim Ändern der Fenstergröße für die Citrix Workspace-App wird die Bildschirmauflösung geändert. Damit ändern sich einige interne Zustände des proprietären NVIDIA-Treibers, wodurch Anwendungen möglicherweise entsprechend reagieren müssen. Das WebGL-Bibliothekselement lightgl.js kann beispielsweise die Fehlermeldung Rendering to this texture is not supported (incomplete frame buffer) auslösen.

Grafikkonfiguration und -feineinstellung