Linux Virtual Delivery Agent

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

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

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

  • 構成

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

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

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

画面全体が選択されている状態

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

並列処理

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-->

アクティブに変更される領域での H.264 ハードウェアコーデックの選択的使用

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

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

Thinwire のロスレスビルドにおける H.264 の使用

デフォルトでは、[視覚品質] ポリシー設定の [ロスレスビルド] の設定は、動画の場合、JPEG ではなく H.264 になりました。

H.264 エンコーディングは、優れた画質を提供します。[ビデオコーデックを使用した圧縮] ポリシーがその設定を制御し、デフォルトは [優先する場合にのみ使用] です。[ロスレスビルド] で JPEG を強制的に使用するには、[ビデオコーデックを使用した圧縮] ポリシーを [ビデオコーデックを使用しない] に設定します。クライアントが選択的 H.264 をサポートしていない場合、ポリシー設定に関係なく、[ロスレスビルド] は JPEG にフォールバックします。

以下のクライアントが選択的 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 データ形式は、1 ピクセルあたり 24 ビットを送信します。YUV422 データ形式は、2 つのピクセル間で U および V 値を共有するため、平均伝送速度は 1 ピクセルあたり 16 ビットになります。次の表は、YUV444 と YUV420 の直感的な比較を示しています。

-  |YUV444|YUV420| |--|--| |!\[YUV444]\(/ja-jp/linux-virtual-delivery-agent/2204/media/yuv444.png)| !\[YUV420]\(/ja-jp/linux-virtual-delivery-agent/2204/media/yuv420.png)|

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

  1. [ビデオコーデックを使用した圧縮] ポリシーが [画面全体] に設定されていることを確認します。
  2. [視覚品質] ポリシーが [常にロスレス] または [ロスレスビルド] に設定されていることを確認します。

帯域幅の見積もりに基づく平均ビットレートの調整

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」を参照してください。

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

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

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

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

    The Graphic status indicator policy

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

    注:

    視覚品質ポリシーを 常にロスレス または ロスレスにビルド に設定している場合、スライダー UI は表示されません。

    Graphic quality slider

    次の選択肢が利用可能です。

    • 画質を変更するには、スライダーを動かします。スライダーは 0~9 の範囲をサポートします
    • システム定義の設定を使用するには、システムに決定させる を選択します
    • ロスレスモードに切り替えるには、ピクセルパーフェクト を選択します

トラブルシューティング

使用中のグラフィックスモードの確認

使用中のグラフィックスモードを確認するには、次のコマンドを実行します (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-->

NVIDIA K2グラフィックスカードはパススルーモードでのYUV444ハードウェアエンコーディングをサポートしない

ポリシー設定で Build to Lossless を有効にすると、NVIDIA K2グラフィックスカードを使用してユーザーがアプリ/デスクトップセッションを起動したときに、黒または灰色の画面が表示されます。この問題は、NVIDIA K2グラフィックスカードがパススルーモードでのYUV444ハードウェアエンコーディングをサポートしていないために発生します。詳細については、Video Encode and Decode GPU Support Matrix を参照してください。

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

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

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

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

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