グラフィックの構成と微調整
この記事では、Linux VDA のグラフィック構成と微調整について説明します。
詳細については、「システム要件」および「インストール概要」を参照してください。
構成
3D グラフィックワークロードの最適化
-
この設定は、グラフィックを多用するワークロードに最適なデフォルト値を構成します。グラフィックを多用するアプリケーションに重点を置くユーザーに対して、この設定を有効にします。このポリシーは、セッションで GPU が利用可能な場合にのみ適用してください。このポリシーによって設定されたデフォルト設定を明示的に上書きする他の設定は、すべて優先されます。
-
デフォルトでは、3D グラフィックワークロードの最適化は無効になっています。
圧縮用ビデオコーデック
- Thinwire は、Linux VDA で使用されるディスプレイリモートテクノロジーです。このテクノロジーにより、あるマシンで生成されたグラフィックを、通常はネットワーク経由で別のマシンに送信して表示できます。
圧縮用ビデオコーデックの使用 グラフィックポリシーは、デフォルトのグラフィックモードを設定し、さまざまなユースケースに対して次のオプションを提供します。
- 優先する場合にのみ使用。この設定はデフォルトです。追加の構成は不要です。これにより、すべての Citrix® 接続で Thinwire が選択され、スケーラビリティ、帯域幅、および一般的なデスクトップワークロードにおける優れた画質のために最適化されます。
- 画面全体の場合。画面全体の H.264 または H.265 を使用して Thinwire を提供し、特に 3D グラフィックを多用する場合に、ユーザーエクスペリエンスと帯域幅の向上を最適化します。セッションウォーターマークは、画面全体の場合が選択されている場合、または優先する場合にのみ使用が選択され、3D グラフィックワークロードの最適化が有効になっている場合にサポートされます。
-
アクティブに変更される領域の場合。Thinwire のアダプティブディスプレイテクノロジーは、移動する画像(ビデオ、移動中の 3D)を識別します。画像が移動している画面の部分でのみ、AV1、H.265、または H.264 を使用します。AV1、H.265、または H.264 ビデオコーデックを選択的に使用することで、HDX Thinwire は頻繁に更新される画面の部分を検出し、エンコードできます。静止画圧縮(JPEG、RLE)とビットマップキャッシュは、テキストや写真画像を含む画面の残りの部分で引き続き使用されます。ユーザーは、ビデオコンテンツの帯域幅消費量の削減と品質の向上、およびロスレステキストまたは高品質の画像というメリットを享受できます。視覚品質ポリシーが常にロスレスまたはロスレスにビルドに設定されている場合、AV1 および H.265 の選択的な使用はサポートされません。

ディスプレイリモートのパフォーマンスを微調整するために、次の視覚表示ポリシー設定を含む他のポリシー設定を使用できます。
- 簡易グラフィックの優先色深度
- ターゲットフレームレート
-
AV1/H.265/H.264 ハードウェアエンコーディング
-
ビデオコーデックのハードウェアエンコーディングの使用ポリシーは、利用可能な場合に GPU ハードウェアアクセラレーションを使用して、ビデオコーデックで画面要素を圧縮することを許可します。GPU ハードウェアアクセラレーションは、ハードウェアリソースの利用を最適化し、フレーム/秒(FPS)のパフォーマンスを大幅に向上させます。
- GPU ハードウェアアクセラレーションは、圧縮用ビデオコーデックの使用ポリシーによって設定されたすべてのグラフィックモードをカバーします。
- 優先する場合にのみ使用
-
画面全体の場合
-
アクティブに変更される領域の場合
-
ハードウェアビデオ圧縮を有効にするには、次の手順を実行します。
-
- ビデオコーデックのハードウェアエンコーディングの使用ポリシーを有効に設定します。
-
圧縮用ビデオコーデックの使用を優先する場合にのみ使用、画面全体の場合、またはアクティブに変更される領域の場合に設定します。ビデオコーデックを使用しないに設定されていないことを確認してください。
- 使用可能にするには、AV1 または H.265 ビデオコーデックが VDA と Citrix Workspace アプリの両方でサポートされ、有効になっている必要があります。コーデックネゴシエーション中、AV1 は H.265 および H.264 よりも優先されます。AV1 がサポートされていない場合、H.265 がネゴシエートされます。AV1 と H.265 の両方がサポートされていない場合、セッションは H.264 ビデオコーデックの使用にフォールバックします。GPU ハードウェアが利用できない場合、VDA はソフトウェアビデオコーデックを使用した CPU ベースのエンコーディングにフォールバックします。
AV1 ハードウェアエンコーディングの要件
VDA
- VDA: 2311 以降
- GPU: NVIDIA Ada Lovelace 以降(NVIDIA GPU がサポートするビデオコーデックのマトリックスについては、NVIDIA ドキュメント https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new を参照してください。)
- NVIDIA グラフィックドライバー 522.25 以降(Video Codec SDK v12.0)
クライアント
- Citrix Workspace™ アプリ 2305 for Windows 以降
- AV1 デコーディングをサポートするクライアント GPU:
- NVIDIA Ampere 以降
- Intel 第 11 世代 / Arc 以降
- AMD Radeon RX 6000 / Radeon Pro W6000 シリーズ(RDNA2)以降
H.265 ハードウェアエンコーディングの要件
クライアント
- Citrix Receiver for Windows 4.10 ~ 4.12
-
Citrix Workspace アプリ 1808 for Windows 以降
- クライアントで H.265 ハードウェアエンコーディングを有効にするには、「H.265 ビデオエンコーディング」を参照してください。
H.265/H.264 ロスレス圧縮
H.265/H.264 ロスレス圧縮は、NVIDIA GPU による HDX 3D PRO ハードウェアアクセラレーションで利用できます。H.265 ロスレス圧縮には Citrix Workspace アプリ 2305 for Windows 以降が必要です。H.264 ロスレス圧縮には、次のクライアントが必要です。
- Citrix Workspace アプリ 2303 for Windows 以降
- Citrix Workspace アプリ 2301 for Mac 以降(Apple M1 チップ搭載)
H.265/H.264 ロスレス圧縮を有効にするには、次の手順を実行します。
- ビデオコーデックのハードウェアエンコーディングの使用ポリシーを有効に設定します。
-
圧縮用ビデオコーデックの使用ポリシーを画面全体の場合に設定します。
- 視覚品質ポリシーを常にロスレスまたはロスレスにビルドに設定します。
視覚的にロスレスな圧縮の許可
視覚的にロスレスな圧縮の許可ポリシーは、グラフィックに対して真のロスレス圧縮の代わりに視覚的にロスレスな圧縮を使用することを許可します。視覚的にロスレスな圧縮は、真のロスレス圧縮よりもパフォーマンスが向上しますが、目視では気づかない程度のわずかな損失があります。この設定は、視覚品質設定の値の使用方法を変更します。
デフォルトでは、視覚的にロスレスな圧縮の許可ポリシーは無効になっています。視覚的にロスレスな圧縮を有効にするには、視覚的にロスレスな圧縮の許可を有効に設定し、視覚品質ポリシーをロスレスにビルドに設定します。
圧縮用ビデオコーデックの使用ポリシーがビデオコーデックを使用しないに設定されている場合、視覚的にロスレスな圧縮は静止画エンコーディングに適用されます。圧縮用ビデオコーデックの使用ポリシーがビデオコーデックを使用しない以外のグラフィックモードに設定されている場合、視覚的にロスレスな圧縮は H.264 エンコーディングに適用されます。
視覚品質およびビデオコーデックを使用した圧縮ポリシー設定の詳細については、視覚表示ポリシー設定 および グラフィックポリシー設定 を参照してください。
グラフィック品質スライダー
仮想Linuxセッションで実行されるグラフィックステータスインジケーターツールに、グラフィック品質スライダーを組み込みました。このスライダーは、画質と対話性の適切なバランスを見つけるのに役立ちます。
スライダーを使用するには、次の手順を実行します。
-
Citrix Studioでグラフィックステータスインジケーターポリシーを有効にします。

-
ターミナルを開き、
ctxsliderコマンドを実行します。スライダーUIが表示されます。注:
-
視覚的品質ポリシーを常にロスレスまたはロスレスにビルドに設定している場合、スライダーUIは表示されません。
-
スライダーUIは、ターミナルとシステムトレイの両方から起動できます。

以下の選択肢が利用可能です:
- 画質を変更するには、スライダーを動かします。スライダーは0~9の範囲をサポートします。
- システム定義の設定を使用するには、システムに決定させるを選択します。
- ロスレスモードに切り替えるには、ピクセルパーフェクトを選択します。
-
帯域幅の見積もりに基づく平均ビットレートの調整
Citrixは、帯域幅の見積もりに基づいて平均ビットレートを調整することにより、HDX™ 3D Proハードウェアエンコーディングを強化します。
HDX 3D Proハードウェアエンコーディングが使用されている場合、VDAはネットワークの帯域幅を断続的に推定し、それに応じてエンコードされたフレームのビットレートを調整できます。この新機能は、シャープネスと流暢さのバランスを取るメカニズムを提供します。
この機能はデフォルトで有効になっています。無効にするには、次のコマンドを実行します。
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-->
この機能を使用することに加えて、次のコマンドを実行してシャープネスと流暢さの間を調整することもできます。AverageBitRatePercentおよびMaxBitRatePercentパラメーターは、帯域幅使用率のパーセンテージを設定します。設定する値が高いほど、グラフィックはよりシャープになり、流暢さは低下します。推奨される設定範囲は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-->
平均ビットレート調整において、画面が静止している場合、新しいフレームが送信されないため、最新のフレームは低品質のままになります。シャープ化サポートは、最新のフレームを最高品質で再構成し、即座に送信することで、この問題に対処できます。
Linux VDA Thinwireでサポートされているポリシーの完全なリストについては、「ポリシーサポートリスト」を参照してください。
Linux VDAでのマルチモニターサポートの構成に関する情報については、「CTX220128」を参照してください。
並列処理
Thinwireは、特定のタスクを並列化することで、1秒あたりのフレーム数 (FPS) を向上させることができますが、全体的なCPU消費がわずかに高くなるというオーバーヘッドを伴います。この機能はデフォルトで無効になっています。この機能を有効にするには、VDAで次のコマンドを実行します。
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ParallelProcessing" -d "0x00000001" --force
<!--NeedCopy-->
トラブルシューティング
使用中のグラフィックモードの確認
次のコマンドを実行して、使用中のグラフィックモードを確認します(0はTW+を意味します。1は全画面ビデオコーデックを意味します)。
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep GraphicsMode
<!--NeedCopy-->
結果は次のようになります。
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "GraphicsMode" -d "0x00000000" --force
AV1が使用中であることの確認
注:
現在のセッションで使用されているビデオコーデックを確認するには、以下のコマンドを実行するか、システムトレイを介してグラフィックステータスを確認します。
次のコマンドを実行して、AV1が使用中であることを確認します(0は使用中でないことを意味します。1は使用中であることを意味します)。
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep AV1
<!--NeedCopy-->
たとえば、結果は次のようになります。
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "AV1" -d "0x00000000" --force
H.265が使用中であることの確認
次のコマンドを実行して、全画面H.265が使用中であることを確認します(0は使用中でないことを意味します。1は使用中であることを意味します)。
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H265
<!--NeedCopy-->
たとえば、結果は次のようになります。
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H265" -d "0x00000000" --force
H.264が使用中であることの確認
次のコマンドを実行して、H.264が使用中であることを確認します(0は使用中でないことを意味します。1は使用中であることを意味します)。
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H264
<!--NeedCopy-->
たとえば、結果は次のようになります。
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H264" -d "0x00000000" --force
使用中のYUVエンコーディングスキームの確認
次のコマンドを実行して、使用中のYUVエンコーディングスキームを確認します(0はYUV420を意味します。1はYUV422を意味します。2はYUV444を意味します)。
注:
YUVFormatの値は、ビデオコーデックが使用されている場合にのみ意味があります。
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep YUVFormat
<!--NeedCopy-->
例えば、結果は次のようになります。
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "YUVFormat" -d "0x00000000" --force
YUV444ソフトウェアエンコーディングの使用状況の確認
YUV444ソフトウェアエンコーディングが使用されていることを確認するには、次のコマンドを実行します。
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep Graphics
<!--NeedCopy-->
YUV444が使用されている場合、結果は次のようになります。
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
HDX 3D Proの有効化の確認
HDX 3D Proが有効になっていることを確認するには、次のコマンドを実行します。
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-->
HDX 3D Proが有効になっている場合、結果は次のようになります。
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
HDX 3D Proに必要なNVIDIAライブラリがロードされていることを確認するには、Linux VDAで nvidia-smi コマンドを実行します。結果は次のようになります。
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-->
3D Proでのハードウェアエンコーディングの使用状況の確認
次のコマンドを実行します(0 は使用されていないことを意味し、1 は使用されていることを意味します)。
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep HardwareEncoding
<!--NeedCopy-->
3D Proが使用されている場合、結果は次のようになります。
create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" --force
NVIDIA GRIDグラフィックドライバーの正しいインストール状況の確認
NVIDIA GRIDグラフィックドライバーが正しくインストールされていることを確認するには、nvidia-smi を実行します。結果は次のようになります。
+------------------------------------------------------+
| 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-->
カードの正しい構成を設定します。
etc/X11/ctx-nvidia.sh
HDX 3D Proマルチモニターの再描画に関する問題
プライマリモニター以外の画面で再描画の問題が発生している場合は、NVIDIA GRIDライセンスが利用可能であることを確認してください。
Xorgエラーログの確認
Xorgのログファイルは、/var/log/ フォルダー内に Xorg.{DISPLAY}.log のような名前で保存されています。
既知の問題と制限事項
vGPU の場合、XenServer(旧Citrix Hypervisor™)のローカルコンソールにICAデスクトップセッション画面が表示される
回避策: 次のコマンドを実行して、VMのローカルVGAコンソールを無効にします。
[root@xenserver® ~]# xe vgpu-param-set uuid=vgpu-uuid extra_args=disable_vnc=1
<!--NeedCopy-->
ログオン時のGnome 3デスクトップポップアップの遅延
これはGnome 3デスクトップセッション起動の制限事項です。
Citrix Workspaceアプリのウィンドウサイズ変更時に一部のOpenGL/WebGLアプリケーションが適切にレンダリングされない
Citrix Workspaceアプリのウィンドウサイズを変更すると、画面解像度が変更されます。NVIDIA独自のドライバーは一部の内部状態を変更するため、アプリケーションがそれに応じて応答する必要がある場合があります。例えば、WebGLライブラリ要素 lightgl.js は、「このテクスチャへのレンダリングはサポートされていません(不完全なフレームバッファー)」というエラーを発生させる可能性があります。