Linux Virtual Delivery Agent

グラフィック設定と微調整

この記事では、Linux VDAのグラフィック設定と微調整に関するガイダンスを提供します。

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

構成

  • 圧縮用ビデオコーデック

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

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

  • 優先する場合にのみ使用。この設定はデフォルトです。追加の構成は不要です。これにより、すべてのCitrix®接続でThinwireが選択され、一般的なデスクトップワークロードのスケーラビリティ、帯域幅、および優れた画質のために最適化されます。
  • 画面全体。画面全体のH.264またはH.265でThinwireを提供し、特に3Dグラフィックを多用する場合に、ユーザーエクスペリエンスと帯域幅の向上を最適化します。
  • アクティブに変更される領域。Thinwireのアダプティブディスプレイテクノロジーは、動的な画像(ビデオ、モーション内の3D)を識別します。画像が動いている画面の部分でのみH.264を使用します。H.264ビデオコーデックを選択的に使用することで、HDX Thinwireは、H.264ビデオコーデックを使用して頻繁に更新される画面の一部を検出し、エンコードできます。静止画圧縮(JPEG、RLE)とビットマップキャッシュは、テキストや写真画像を含む画面の残りの部分で引き続き使用されます。ユーザーは、ビデオコンテンツの帯域幅消費量の削減と品質の向上、およびその他の場所でのロスレステキストまたは高品質画像の組み合わせの恩恵を受けます。この機能を有効にするには、圧縮用ビデオコーデックの使用ポリシーを優先する場合にのみ使用(デフォルト)またはアクティブに変更される領域に設定します。詳細については、「グラフィックポリシー設定」を参照してください。この機能のH.264ハードウェアエンコーディングを有効にするには、「H.264ハードウェアエンコーディング」を参照してください。

    画面全体が選択されている様子

ディスプレイリモート処理のパフォーマンスを微調整するために、以下の視覚表示ポリシー設定を含む、その他のポリシー設定を使用できます。

  • シンプルなグラフィックの優先色深度
  • ターゲットフレームレート
  • 視覚品質

  • H.264ハードウェアエンコーディング

  • ビデオコーデックのハードウェアエンコーディングの使用ポリシーは、利用可能な場合にグラフィックハードウェアを使用して、ビデオコーデックで画面要素を圧縮することを許可します。そのようなハードウェアが利用できない場合、VDAはソフトウェアビデオコーデックを使用したCPUベースのエンコーディングにフォールバックします。

バージョン2204以降、Linux VDAは、アクティブに変更される領域に対してH.264ハードウェアコーデックを選択的に使用することをサポートしています。この機能は、CPUのビデオ圧縮消費をハードウェアにオフロードし、画質と1秒あたりのフレーム数(FPS)を向上させます。この機能を有効にするには、次の手順を実行します。

  1. ビデオコーデックのハードウェアエンコーディングの使用ポリシーを有効にします。
    1. 圧縮用ビデオコーデックの使用ポリシーを有効にし、アクティブに変更される領域を選択します。

視覚的にロスレスな圧縮を許可

視覚的にロスレスな圧縮を許可ポリシーは、グラフィックに対して真のロスレス圧縮の代わりに視覚的にロスレスな圧縮を使用することを許可します。視覚的にロスレスは真のロスレスよりもパフォーマンスを向上させますが、目には認識できないわずかな損失があります。この設定は、視覚品質設定の値の使用方法を変更します。

視覚的にロスレスな圧縮を許可ポリシーはデフォルトで無効になっています。視覚的にロスレスな圧縮を有効にするには、視覚的にロスレスな圧縮を許可有効に設定し、視覚品質ポリシーをロスレスにビルドに設定します。

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

以下のクライアントは、選択的H.264をサポートしています。

  • Citrix Receiver for Windows 4.9~4.12
    • Citrix Receiver for Linux 13.5~13.10
    • Citrix Workspace™アプリ1808 for Windows以降
    • Citrix Workspaceアプリ1808 for Linux以降

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

H.265ビデオコーデックのサポート

7.18リリース以降、Linux VDAは、リモートグラフィックおよびビデオのハードウェアアクセラレーションのためにH.265ビデオコーデックをサポートしています。

この機能は、以下で使用できます。

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

この機能を利用するには、Linux VDAとクライアントの両方で有効にします。クライアントのGPUがDXVAインターフェイスを使用したH.265デコーディングをサポートしていない場合、グラフィックのH.265デコーディングポリシー設定は無視され、セッションはH.264ビデオコーデックの使用にフォールバックします。詳細については、「H.265ビデオエンコーディング」を参照してください。

-  VDAでH.265ハードウェアエンコーディングを有効にするには:
  1. ビデオコーデックのハードウェアエンコーディングの使用ポリシーを有効にします。
  2. 3Dグラフィックワークロードの最適化ポリシーを有効にします。
  3. 圧縮用ビデオコーデックの使用ポリシーがデフォルトであるか、画面全体に設定されていることを確認します。
  4. 視覚品質ポリシーがロスレスにビルドまたは常にロスレスに設定されていないことを確認します。

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

YUV444ソフトウェアエンコーディングのサポート

Linux VDAはYUV444ソフトウェアエンコーディングをサポートしています。YUVエンコーディングスキームは、各ピクセルに輝度値と色値の両方を割り当てます。YUVでは、「Y」は輝度または「ルミナンス」値を表し、「UV」は色または「クロミナンス」値を表します。この機能は、Citrix Receiver for Windows 4.10~4.12およびCitrix Workspaceアプリ1808 for Windows以降で使用できます。

各Y、U、またはVの一意の値は、8ビット、つまり1バイトのデータで構成されます。YUV444データ形式は、ピクセルあたり24ビットを送信します。YUV422データ形式は、2つのピクセル間でUおよびV値を共有するため、ピクセルあたりの平均伝送速度は16ビットになります。次の表は、YUV444とYUV420の直感的な比較を示しています。

YUV444 YUV420
YUV444 YUV420

VDAでYUV444ソフトウェアエンコーディングを有効にするには:

  1. 圧縮用ビデオコーデックの使用ポリシーが画面全体に設定されていることを確認します。

  2. 視覚品質」ポリシーが「常にロスレス」または「ロスレスにビルド」に設定されていることを確認します。

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

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

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

  1. Citrix Studioで「グラフィックステータスインジケーター」ポリシーを有効にします。

    グラフィックステータスインジケーターポリシー

  2. ターミナルを開き、ctxsliderコマンドを実行します。スライダー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 は、特定のタスクを並列化することで、フレーム/秒 (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

3D Pro でのハードウェアエンコーディングの使用状況の確認

次のコマンドを実行します (0 は使用中でないことを意味します。1 は使用中であることを意味します)。

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep HardwareEncoding
<!--NeedCopy-->

結果は次のようになります。

create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" --force

別の方法として、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-->

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 の場合、Citrix Hypervisor™ ローカルコンソールに ICA デスクトップセッション画面が表示される

回避策:

次のコマンドを実行して、VM のローカル VGA コンソールを無効にします。

Citrix Hypervisor 8.1 以降の場合:

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

Citrix Hypervisor 8.1 より前の場合:

xe vm-param-set uuid=<vm-uuid> platform:vgpu_extra_args="disable_vnc=1"
<!--NeedCopy-->

ログオン時の Gnome 3 デスクトップポップアップの遅延

これは Gnome 3 デスクトップセッション起動の制限事項です。

Citrix Workspace アプリウィンドウのサイズ変更時に一部の OpenGL/WebGL アプリケーションが適切にレンダリングされない

Citrix Workspace アプリのウィンドウのサイズを変更すると、画面解像度が変更されます。NVIDIA 独自のドライバーは一部の内部状態を変更し、アプリケーションがそれに応じて応答する必要がある場合があります。たとえば、WebGL ライブラリ要素 lightgl.js は、「Rendering to this texture is not supported (incomplete frame buffer)」というエラーを生成する可能性があります。

グラフィック設定と微調整