グラフィックの構成と微調整
ここでは、Linux VDAのグラフィックの構成と微調整について説明します。
詳しくは、「システム要件」および「インストールの概要」を参照してください。
構成
3D画像ワークロードの最適化
この設定では、グラフィックを多用するワークロードに合わせて適切なデフォルト値を構成します。グラフィックを多用するアプリケーションのワークロードが大きいユーザーに対して、この設定を有効にします。このポリシーは、セッションでGPUが利用可能な場合にのみ適用してください。その他の設定がこのポリシーのデフォルト設定を明示的に上書きする場合、そちらが優先されます。
デフォルトでは、[3D画像ワークロードの最適化] は無効になっています。
ビデオコーデックでの圧縮
Thinwireは、Linux VDAで使用されているディスプレイリモートテクノロジです。このテクノロジを使用すると、あるマシンで生成されたグラフィックが、通常はネットワークを経由して、別のマシンに転送され、表示されます。
[圧縮にビデオコーデックを使用する] グラフィックポリシーでは、デフォルトのグラフィックモードを設定し、さまざまなユースケースに対して次のオプションを提供します:
- [可能であれば使用]。この設定がデフォルトです。追加の構成は必要ありません。これにより、すべてのCitrix接続でThinwireが選択され、デスクトップの一般的なワークロードで、スケーラビリティ、帯域幅、および優れた画質の点で、確実に最適化されます。
- [画面全体に使用]。特に3Dグラフィックを多用する事例で、Thinwireを全画面H.264またはH.265を使用して配信して、ユーザーエクスペリエンスと帯域幅の改善を最適化します。[画面全体に使用] が選択されている場合、または [可能であれば使用] が選択され、[3D画像ワークロードの最適化] が有効な場合、セッションウォーターマークがサポートされます。
-
[領域をアクティブに変更]。Thinwireのアダプティブ表示テクノロジは、動画(ビデオ、3Dインモーション)を識別します。画像が動く画面の部分でのみH.264を使用します。グラフィックの圧縮にH.264ビデオコーデックを選択的に使用することにより、HDX ThinwireはH.264ビデオコーデックを使用して、頻繁に更新される画面の部分を検出してエンコードすることができます。静止画圧縮(JPEG、RLE)とビットマップキャッシングは、テキストや写真画像などを含む画面の残りの部分で引き続き使用されます。ユーザーは、帯域幅の消費が低い状態で、無損失テキストや高品質画像を組み合わせた品質の高いビデオコンテンツを視聴できます。この機能を有効にするには、[圧縮にビデオコーデックを使用する] ポリシーを、[可能であれば使用](デフォルト)または [アクティブに変化する領域] に設定します。詳しくは、「グラフィックのポリシー設定」を参照してください。
次の視覚表示ポリシー設定など、いくつかの他のポリシー設定は、ディスプレイリモートのパフォーマンスを微調整するために使用できます。
H.264ハードウェアエンコーディング
[ビデオコーデックにハードウェアエンコーディングを使用します] ポリシーにより、GPUハードウェアアクセラレーション(搭載している場合)を利用して、画面要素をビデオコーデックで圧縮できます。GPUハードウェアが利用可能でない場合、VDAはソフトウェアビデオコーデックを使用して、CPUベースのエンコーディングにフォールバックします。
GPUハードウェアアクセラレーションにより、ハードウェアリソースの使用率が最適化され、1秒あたりのフレーム数/秒(FPS)のパフォーマンスが大幅に向上します。
バージョン2210以降、GPUハードウェアアクセラレーションは次のグラフィックモードすべてに対応します:
- 可能であれば使用
- 画面全体に使用
- 領域をアクティブに変更
視覚的無損失の圧縮を使用する
[視覚的無損失の圧縮を使用する] ポリシーにより、グラフィックに対して、真の無損失圧縮の代わりに視覚的に無損失の圧縮を使用できるようになります。視覚的無損失では、真の無損失よりもパフォーマンスは向上しますが、見た目にはわからない程度の軽微な損失が発生します。この設定により、表示品質設定の値の使用方法が変更されます。
[視覚的無損失の圧縮を使用する] ポリシーは、デフォルトで無効になっています。視覚無損失圧縮を有効にするには、[視覚的無損失の圧縮を使用する] を [有効] に設定し、[表示品質ポリシー] を [操作時は低品質] に設定します。
[圧縮にビデオコーデックを使用する] ポリシーが [ビデオ コーデックを使用しない] に設定されている場合、視覚的無損失圧縮が静止画像エンコーディングに適用されます。[圧縮にビデオコーデックを使用する] ポリシーが [ビデオ コーデックを使用しない] 以外のグラフィックモードに設定されている場合、視覚的無損失圧縮がH.264エンコーディングに適用されます。
次のクライアントは選択的なH.264をサポートしています:
- Citrix Receiver for Windows 4.9~4.12
- Citrix Receiver for Linux 13.5~13.10
- Windows向けCitrix Workspaceアプリ1808以降
- Linux向けCitrix Workspaceアプリ1808以降
[表示品質] および [圧縮にビデオコーデックを使用する] のポリシー設定について詳しくは、「視覚表示のポリシー設定」と「グラフィックのポリシー設定」を参照してください。
H.265ビデオコーデックのサポート
7.18リリースから、Linux VDAは、リモートグラフィックやビデオのハードウェアアクセラレーションでH.265ビデオコーデックをサポートしています。
この機能は以下で使用できます:
- Citrix Receiver for Windows 4.10~4.12
- Windows向けCitrix Workspaceアプリ1808以降
この機能を利用するには、Linux VDAとクライアントの両方で有効にします。クライアントのGPUがDXVAインターフェイスを使用するH.265デコードをサポートしていない場合、グラフィックポリシー設定のH.265デコードは無視され、セッションはH.264ビデオコーデックの使用に戻ります。詳しくは、「H.265ビデオエンコーディング」を参照してください。
VDAでH.265ハードウェアエンコードを有効にするには:
- [ビデオコーデックにハードウェアエンコーディングを使用します] ポリシーを有効にします。
- [3D画像ワークロードの最適化] ポリシーを有効にします。
- [圧縮にビデオコーデックを使用する] ポリシーがデフォルトであること、または [画面全体に使用] に設定されていることを確認します。
- [表示品質] ポリシーが [操作時は低品質] または [常に無損失] に設定されていないことを確認します。
クライアントでH.265ハードウェアエンコーディングを有効にするには、「H.265ビデオエンコーディング」を参照してください。
YUV444ソフトウェアエンコーディングのサポート
Linux VDAはYUV444ソフトウェアエンコーディングをサポートします。YUVエンコーディングスキームは、明るさと色の両方の値を各ピクセルに割り当てます。YUVでは、「Y
」は明るさまたは「luma
」値、「UV
」は色または「彩度」値を示します。この機能は、Citrix Receiver for Windows 4.10~4.12およびWindows向けCitrix Workspaceアプリ1808以降で使用できます。
各固有のY、U、V値は8ビットまたは1バイトのデータで構成されています。YUV444データ形式は1ピクセルあたり24ビットを転送します。YUV422データ形式は2ピクセル間でU値とV値を共有し、平均転送速度は16ビット/ピクセルになります。以下の表は、YUV444とYUV420の直観的な比較です。
YUV444 | YUV420 |
---|---|
VDAでYUV444ソフトウェアエンコーディングを有効にするには:
- [圧縮にビデオコーデックを使用する] ポリシーが [画面全体に使用] に設定されていることを確認します。
- [表示品質] ポリシーが [常に無損失] または [操作時は低品質] に設定されていないことを確認します。
グラフィック品質スライダー
仮想Linuxセッションで実行されるグラフィック状態インジケーターツールに、グラフィック品質スライダーを追加しました。スライダーは、画質とインタラクティブ性のバランスを適切に調整するのに役立ちます。
スライダーを使用するには、次の手順を実行します:
-
Citrix Studioで [グラフィック状態インジケーター] ポリシーを有効にします。
-
端末を開き、
ctxslider
コマンドを実行します。スライダーのUIが表示されます。注:
[表示品質] ポリシーを [常に無損失] に設定した場合、または [操作時は低品質] に設定した場合、スライダーのUIは表示されません。
次の選択肢が利用可能になりました:
- 画質を変更するには、スライダーを動かします。スライダーは0から9まで動かすことができます。
- システム定義の設定を使用するには、[システムが決定する]を選択します。
- 無損失モードに切り替えるには、[完全に無損失]を選択します。
帯域幅推定に基づいて平均ビットレートを調整する
HDX 3D ProハードウェアエンコーディングがCitrixで拡張され、帯域幅推定に基づいて平均ビットレートを調整できます。
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
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
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
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のログファイルは、Xorg.{DISPLAY}.log に類似した名前で /var/log/ フォルダー内にあります。
既知の問題と制限事項
vGPUで、Citrix HypervisorのローカルコンソールにICAデスクトップのセッション画面が表示される
回避策:次のコマンドを実行して、仮想マシンのローカルVGAコンソールを無効にします:
Citrix Hypervisor 8.1以降の場合:
[root@xenserver ~]# xe vgpu-param-set uuid=vgpu-uuid extra_args=disable_vnc=1
<!--NeedCopy-->
8.1より前のCitrix Hypervisorの場合:
xe vm-param-set uuid=<vm-uuid> platform:vgpu_extra_args="disable_vnc=1"
<!--NeedCopy-->
Gnome 3デスクトップのポップアップがログオン時に遅くなる
これはGnome 3デスクトップのセッション開始時の機能的制限です。
一部のOpenGLおよびWebGLアプリケーションが、Citrix Workspaceアプリウィンドウのサイズ変更時に適切に表示されない
Citrix Workspaceアプリのウィンドウサイズを変更すると、画面の解像度も変更されます。NVIDIAの独自ドライバーにより内部状態が一部変更されるため、それに応じた対応がアプリケーションに求められる場合があります。たとえば、WebGLライブラリ要素のlightgl.jsによって「Rendering to this texture is not supported (incomplete frame buffer)
」というエラーメッセージが生成されることがあります。