Linux Virtual Delivery Agent

グラフィックの構成と微調整

ここでは、Linux VDAのグラフィックの構成と微調整について説明します。

詳しくは、「システム要件」および「インストールの概要」を参照してください。

構成

3D画像ワークロードの最適化

この設定では、グラフィックを多用するワークロードに合わせて適切なデフォルト値を構成します。グラフィックを多用するアプリケーションのワークロードが大きいユーザーに対して、この設定を有効にします。このポリシーは、セッションでGPUが利用可能な場合にのみ適用してください。その他の設定がこのポリシーのデフォルト設定を明示的に上書きする場合、そちらが優先されます。

デフォルトでは、[3D画像ワークロードの最適化] は無効になっています。

ビデオコーデックでの圧縮

Thinwireは、Linux VDAで使用されているディスプレイリモートテクノロジです。このテクノロジを使用すると、あるマシンで生成されたグラフィックが、通常はネットワークを経由して、別のマシンに転送され、表示されます。

[圧縮にビデオコーデックを使用する] グラフィックポリシーでは、デフォルトのグラフィックモードを設定し、さまざまなユースケースに対して次のオプションを提供します:

  • [可能であれば使用]。この設定がデフォルトです。追加の構成は必要ありません。これにより、すべてのCitrix接続でThinwireが選択され、デスクトップの一般的なワークロードで、スケーラビリティ、帯域幅、および優れた画質の点で、確実に最適化されます。
  • [画面全体に使用]。特に3Dグラフィックを多用する事例で、Thinwireを全画面H.264またはH.265を使用して配信して、ユーザーエクスペリエンスと帯域幅の改善を最適化します。[画面全体に使用] が選択されている場合、または [可能であれば使用] が選択され、[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ハードウェアアクセラレーションにより、ハードウェアリソースの使用率が最適化され、1秒あたりのフレーム数/秒(FPS)のパフォーマンスが大幅に向上します。

GPUハードウェアアクセラレーションは [圧縮にビデオコーデックを使用する] ポリシーで設定されたすべてのグラフィックスモードをカバーします。

  • 可能であれば使用
  • 画面全体に使用
  • 領域をアクティブに変更

ハードウェアビデオ圧縮を有効にするには、次の手順を実行します。

  1. ビデオコーデックにハードウェアエンコーディングを使用しますポリシーを [有効] に設定します。
  2. [圧縮にビデオコーデックを使用する][可能であれば使用][画面全体に使用]、または [領域をアクティブに変更] に設定します。[ビデオ コーデックを使用しない] に設定されていないことを確認します。

使用できるようにするには、AV1またはH.265ビデオコーデックが、VDAおよびCitrix Workspaceアプリの両方でサポートされ、かつ有効になっている必要があります。 AV1は、コーデックネゴシエーション時にH.265およびH.264よりも優先されます。AV1がサポートされていない場合は、H.265がネゴシエートされます。AV1とH.265がともにサポートされていない場合、セッションはH.264ビデオコーデックの使用に戻ります。GPUハードウェアが利用可能でない場合、VDAはソフトウェアビデオコーデックを使用して、CPUベースのエンコーディングにフォールバックします。

AV1ハードウェアエンコーディングの要件

VDA
Client
  • Windows向けCitrix Workspaceアプリ2305以降
  • AV1デコードをサポートするクライアントGPU:
    • NVIDIA Ampere以降
    • Intel第11世代/Arc以降
    • AMD Radeon RX 6000 / Radeon Pro W6000シリーズ(RDNA2)以降

H.265ハードウェアエンコーディングの要件

Client
  • Citrix Receiver for Windows 4.10~4.12
  • Windows向けCitrix Workspaceアプリ1808以降

クライアントでH.265ハードウェアエンコーディングを有効にするには、「H.265ビデオエンコーディング」を参照してください。

H.265/H.264無損失圧縮

NVIDIA GPUによるHDX 3D PROハードウェアアクセラレーションでは、H.265/H.264無損失圧縮が利用可能です。H.265無損失圧縮には、Windows向けCitrix Workspaceアプリ2305以降が必要です。H.264無損失圧縮には、次のクライアントが必要です。

  • Windows向けCitrix Workspaceアプリ2303以降
  • Apple M1チップを使用しているMac向けCitrix Workspaceアプリ2301以降

H.265/H.264無損失圧縮を有効にするには、次の手順を実行します。

  1. ビデオコーデックにハードウェアエンコーディングを使用しますポリシーを [有効] に設定します。
  2. 圧縮にビデオコーデックを使用するポリシーを [画面全体に使用] に設定します。

  3. 表示品質ポリシーを [常に無損失] または [操作時は低品質] に設定します。

視覚的無損失の圧縮を使用する

視覚的無損失の圧縮を使用するポリシーにより、グラフィックに対して、真の無損失圧縮の代わりに視覚的に無損失の圧縮を使用できるようになります。視覚的無損失では、真の無損失よりもパフォーマンスは向上しますが、見た目にはわからない程度の軽微な損失が発生します。この設定により、[表示品質] 設定の値の使用方法が変更されます。

視覚的無損失の圧縮を使用するポリシーは、デフォルトで無効になっています。視覚的無損失圧縮を有効にするには、[視覚的無損失の圧縮を使用する][有効] に設定し、表示品質ポリシー を [操作時は低品質] に設定します。

圧縮にビデオコーデックを使用するポリシーが [ビデオコーデックを使用しない] に設定されている場合、視覚的無損失圧縮が静止画像エンコーディングに適用されます。圧縮にビデオコーデックを使用するポリシーが [ビデオ コーデックを使用しない] 以外のグラフィックモードに設定されている場合、視覚的無損失圧縮がH.264エンコーディングに適用されます。

[表示品質] および [圧縮にビデオコーデックを使用する] のポリシー設定について詳しくは、「視覚表示のポリシー設定」と「グラフィックのポリシー設定」を参照してください。

グラフィック品質スライダー

仮想Linuxセッションで実行されるグラフィック状態インジケーターツールに、グラフィック品質スライダーを追加しました。スライダーは、画質とインタラクティブ性のバランスを適切に調整するのに役立ちます。

スライダーを使用するには、次の手順を実行します:

  1. Citrix Studioで [グラフィック状態インジケーター] ポリシーを有効にします。

    グラフィック状態インジケーターポリシー

  2. 端末を開き、ctxsliderコマンドを実行します。スライダーのUIが表示されます。

    注:

    • [表示品質] ポリシーを [常に無損失] に設定した場合、または [操作時は低品質] に設定した場合、スライダーの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

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のログファイルは、Xorg.{DISPLAY}.log に類似した名前で /var/log/ フォルダー内にあります。

既知の問題と制限事項

vGPUで、XenServer(旧称Citrix Hypervisor)のローカルコンソールにICAデスクトップのセッション画面が表示される

回避策:次のコマンドを実行して、仮想マシンのローカルVGAコンソールを無効にします:

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

Gnome 3デスクトップのポップアップがログオン時に遅くなる

これはGnome 3デスクトップのセッション開始時の機能的制限です。

一部のOpenGLおよびWebGLアプリケーションが、Citrix Workspaceアプリウィンドウのサイズ変更時に適切に表示されない

Citrix Workspaceアプリのウィンドウサイズを変更すると、画面の解像度も変更されます。NVIDIAの独自ドライバーにより内部状態が一部変更されるため、それに応じた対応がアプリケーションに求められる場合があります。たとえば、WebGLライブラリ要素のlightgl.jsにより、「このテクスチャへのレンダリングはサポートされていません(不完全なフレームバッファ)」というエラーメッセージが生成されることがあります。

グラフィックの構成と微調整