Linux Virtual Delivery Agent

Konfigurieren von Grafiken

Dieser Artikel enthält eine Anleitung zur Grafikkonfiguration und -optimierung für den Linux VDA.

Weitere Informationen finden Sie unter Systemanforderungen und Installationsübersicht.

Konfiguration

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. Wenn Sie diese Einstellung beibehalten, dann wird Thinwire für alle Citrix Verbindungen ausgewählt und für Skalierbarkeit, Bandbreite und bessere Bildqualität bei typischen Desktoparbeitslasten optimiert.
  • 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.
  • Für aktive Änderungsbereiche. Die Technologie für adaptive Anzeige von Thinwire identifiziert Bewegtbilder (Video, 3D In Motion) und verwendet H.264 nur in dem Bildschirmbereich, in dem das Bild sich bewegt. Mit der selektiven Verwendung des H.264-Videocodecs können Bildschirmsegmente, die häufig mit dem H.264-Videocodec aktualisiert werden (z. B. Videoinhalte), 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 erfordert weniger Bandbreite und führt zu einer verbesserten Anzeige von Videoinhalten, verbunden mit verlustfreiem Text und hoher Bildqualität. Um dieses Feature zu aktivieren, ändern Sie die Richtlinieneinstellung Verwenden von Videocodec für die Komprimierung in Verwenden, wenn bevorzugt (Standardeinstellung) oder Für aktive Änderungsbereiche. Weitere Informationen finden Sie unter Einstellungen der Richtlinie “Grafiken”.

Abbildung des gesamten Bildschirms

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

H.264 für “Zu verlustfrei verbessern” in Thinwire

Standardmäßig ist die Einstellung Zu verlustfrei verbessern für die Richtlinieneinstellung Bildqualität jetzt auf H.264 anstelle von JPEG für Bewegtbilder festgelegt.

Die H.264-Codierung bietet eine bessere Bildqualität. Die Richtlinie Videocodec zur Komprimierung verwenden steuert diese Einstellung, Standardeinstellung ist Verwenden, wenn bevorzugt. Um für Zu verlustfrei verbessern JPEG zu erzwingen, legen Sie die Richtlinie Videocodec zur Komprimierung verwenden auf Videocodec nicht verwenden fest. Wenn der Client selektives H.264 nicht unterstützt, wird Zu verlustfrei verbessern unabhängig von den Richtlinieneinstellungen auf JPEG zurückgesetzt. Citrix Receiver für Windows 4.9 bis 4.12, Citrix Receiver für Linux 13.5 bis 13.10, Citrix Workspace-App 1808 für Windows und höher sowie Citrix Workspace-App 1808 für Linux und höher unterstützen selektives H.264. 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”.

Unterstützung für H.265-Videocodec

Ab Version 7.18 unterstützt der Linux VDA die Hardwarebeschleunigung von Remotegrafiken und -videos per H.265-Videocodec. Sie können dieses Feature in Citrix Receiver für Windows 4.10 bis 4.12 und in der Citrix Workspace-App 1808 für Windows und höher verwenden. Um das Feature zu nutzen, müssen Sie es auf dem Linux VDA und auf dem Client aktivieren. Wenn die GPU auf dem Client eine H.265-Decodierung über die DXVA-Schnittstelle nicht unterstützt, wird die Einstellung der Richtlinie “H.265-Decodierung für Grafiken” ignoriert und die Sitzung greift auf den H.264-Videocodec zurück. Weitere Informationen finden Sie unter H.265-Videocodierung.

Aktivieren der H.265-Hardwarecodierung auf dem VDA:

  1. Aktivieren Sie die Richtlinie Hardwarecodierung für Videocodec verwenden.
  2. Aktivieren der Richtlinie Optimierung für 3D-Grafikworkload
  3. Stellen Sie sicher, dass für die Richtlinie Videocodec zur Komprimierung verwenden die Standardeinstellung oder Für den gesamten Bildschirm verwendet wird.
  4. Stellen Sie sicher, dass die Richtlinie Bildqualität NICHT auf Zu verlustfrei verbessern oder Immer verlustfrei festgelegt ist.

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

Unterstützung für YUV444-Softwarecodierung

Der Linux VDA unterstützt die YUV444-Softwarecodierung. Das YUV-Kodierungsschema weist jedem Pixel sowohl Helligkeits- als auch Farbwerte zu. In YUV steht ‘Y’ für den Helligkeits- oder “Luma”-Wert und ‘UV’ für die Farb- oder “Chroma”-Werte. Sie können dieses Feature des Linux VDA in Citrix Receiver für Windows 4.10 bis 4.12 und in der Citrix Workspace-App 1808 für Windows und höher verwenden.

Jeder eindeutige Y-, U- und V- Wert hat 8 Bits oder ein Byte an Daten. Das Datenformat YUV444 überträgt 24 Bit pro Pixel. Das Datenformat YUV422 teilt U- und V- Werte zwischen zwei Pixeln, was zu einer durchschnittlichen Übertragungsrate von 16 Bit pro Pixel führt. Folgende Tabelle zeigt einen intuitiven Vergleich zwischen YUV444 und YUV420.

YUV444 YUV420
Abbildung von YUV444 Abbildung von YUV420

Aktivieren der YUV444-Softwarcodierung auf dem VDA:

  1. Stellen Sie sicher, dass für die Richtlinie Videocodec zur Komprimierung verwenden die Einstellung Für den gesamten Bildschirm verwendet wird.
  2. Stellen Sie sicher, dass die Richtlinie Bildqualität auf Immer verlustfrei oder Zu verlustfrei verbessern festgelegt ist.

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 basierend auf den Bandbreitenschätzungen 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.

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

Ermitteln, ob 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 sieht in etwa wie folgt aus:

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

Ermitteln, ob 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 sieht in etwa wie folgt aus:

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H265" -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 sieht in etwa wie folgt aus:

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

Ermitteln, ob die YUV444-Softwarecodierung verwendet wird

Führen Sie den folgenden Befehl aus, um zu prüfen, ob die YUV444-Softwarecodierung 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

Ermitteln, ob die Hardwarecodierung 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-->

Das Ergebnis sieht in etwa wie folgt aus:

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

Alternativ können Sie den Befehl nvidia-smi verwenden. Wird die Hardwarecodierung verwendet, sieht die Ausgabe 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-->

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 Citrix Hypervisor-Konsole der Bildschirm der ICA-Desktopsitzung angezeigt

Workaround: Deaktivieren Sie die lokale VGA-Konsole der VM, indem Sie folgende Befehle ausführen:

Citrix Hypervisor 8.1 und höher:

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

Citrix Hypervisor vor Version 8.1:

xe vm-param-set uuid=<vm-uuid> platform:vgpu_extra_args="disable_vnc=1"
<!--NeedCopy-->

NVIDIA K2-Grafikkarten unterstützen nicht die YUV444-Hardwarecodierung im Passthroughmodus

Bei aktivierter Richtlinieneinstellung Zu verlustfrei verbessern wird ein schwarzer oder grauer Bildschirm angezeigt, wenn Benutzer eine App- oder Desktop-Sitzung mit einer NVIDIA K2-Grafikkarte starten. Dieses Problem tritt auf, da NVIDIA K2-Grafikkarten die YUV444-Hardwarecodierung im Passthroughmodus nicht unterstützen. Weitere Informationen finden Sie unter Video Encode and Decode GPU Support Matrix.

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. Zum Beispiel das WebGL-Bibliothekselement lightgl.js könnte einen Fehler zeigen: ‘Rendering to this texture is not supported (incomplete frame buffer)’.

Konfigurieren von Grafiken