Linux Virtual Delivery Agent

Grafikkonfiguration und -feineinstellung

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

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). H.264 wird nur in dem Bildschirmbereich verwendet, 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, 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. Um dieses Feature zu aktivieren, legen Sie die Richtlinie Verwenden von Videocodec für die Komprimierung auf Verwenden, wenn bevorzugt (Standardeinstellung) oder Für aktive Änderungsbereiche fest. Weitere Informationen finden Sie unter Einstellungen der Richtlinie “Grafiken”.

    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:

H.264-Hardwarekodierung

Die Richtlinie Hardwarecodierung für Videocodec verwenden ermöglicht das Komprimieren von Bildschirmelementen mit dem Videocodec mithilfe der GPU-Hardwarebeschleunigung (falls verfügbar). Wenn GPU-Hardware nicht verfügbar ist, wird die CPU-basierte Codierung mit dem Software-Videocodec verwendet.

Die GPU-Hardwarebeschleunigung optimiert die Ressourcenauslastung der Hardware und verbessert die FPS-Leistung (Frames pro Sekunde).

Ab Version 2210 umfasst die GPU-Hardwarebeschleunigung die folgenden Grafikmodi:

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

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 statische H.264-Codierung angewendet.

Die folgenden Clients unterstützen selektives H.264:

  • 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
  • Citrix Workspace-App 1808 für Linux und höher

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.

Das Feature ist kompatibel mit:

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

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 Sitzungen greifen 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- bzw. ‘luma‘-Wert und ‘UV’ für die Farb- oder “Chroma”-Werte. 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.

Jeder eindeutige Y-, U- oder 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
YUV444 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.

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.

    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

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

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)’.

Grafikkonfiguration und -feineinstellung