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
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.
-
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”. Informationen zum Aktivieren der H.264-Hardwarecodierung für dieses Feature finden Sie unter H.264-Hardwarecodierung.
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 die Verwendung von Grafikhardware (falls verfügbar) zum Komprimieren von Bildschirmelementen mit dem Videocodec. Ist entsprechende Hardware nicht verfügbar, wird die CPU-basierte Codierung mit dem Software-Videocodec verwendet.
Ab Version 2204 unterstützt der Linux VDA die selektive Verwendung des H.264-Hardwarecodecs für aktive Änderungsbereiche. Dieses Feature verlagert den zur Videokomprimierung notwendigen CPU-Verbrauch auf die Hardware und verbessert Bildqualität und FPS-Wert (Frames pro Sekunde). Führen Sie folgende Schritte aus, um das Feature zu aktivieren:
-
Aktivieren Sie die Richtlinie Hardwarecodierung für Videocodec verwenden.
-
Aktivieren Sie die Richtlinie Videocodec zur Komprimierung verwenden und wählen Sie 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:
- Aktivieren Sie die Richtlinie Hardwarecodierung für Videocodec verwenden.
- Aktivieren der Richtlinie Optimierung für 3D-Grafikworkload
- Stellen Sie sicher, dass für die Richtlinie Videocodec zur Komprimierung verwenden die Standardeinstellung oder Für den gesamten Bildschirm verwendet wird.
- 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 |
---|---|
Aktivieren der YUV444-Softwarcodierung auf dem VDA:
- Stellen Sie sicher, dass für die Richtlinie Videocodec zur Komprimierung verwenden die Einstellung Für den gesamten Bildschirm verwendet wird.
- 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:
-
Aktivieren Sie die Richtlinie Grafikstatusanzeige in Citrix Studio.
-
Ö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.
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-->
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)
’.