Linux Virtual Delivery Agent

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

本記事では、Linux VDAのグラフィック設定と微調整について説明します。

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

構成

3Dグラフィックワークロードの最適化

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

  • デフォルトでは、3Dグラフィックワークロードの最適化は無効になっています。

圧縮用ビデオコーデック

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

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

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

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

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

H.265/H.264ハードウェアエンコード

  • ビデオコーデックのハードウェアエンコードの使用ポリシーにより、利用可能な場合、GPUハードウェアアクセラレーションを使用してビデオコーデックで画面要素を圧縮できます。GPUハードウェアアクセラレーションは、ハードウェアリソースの利用率を最適化し、1秒あたりのフレーム数(FPS)のパフォーマンスを大幅に向上させます。

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

  • 優先する場合にのみ使用
  • 画面全体に適用
  • アクティブに変更される領域に適用

ハードウェアビデオ圧縮を有効にするには、以下の手順を完了します。

  1. ビデオコーデックのハードウェアエンコードの使用ポリシーを有効に設定します。
  2. 圧縮用ビデオコーデックの使用優先する場合にのみ使用画面全体に適用、またはアクティブに変更される領域に適用に設定します。ビデオコーデックを使用しないに設定されていないことを確認してください。

H.265ビデオコーデックは、VDAとCitrix Workspaceアプリの両方でサポートされ、有効になっている必要があります。H.265ビデオコーデックがLinux VDAまたはCitrix Workspaceアプリのいずれかでサポートされていない場合、グラフィックのH.265デコードポリシー設定は無視され、セッションはH.264ビデオコーデックの使用にフォールバックします。GPUハードウェアが利用できない場合、VDAはソフトウェアビデオコーデックを使用したCPUベースのエンコードにフォールバックします。

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

Linux VDAは、以下のクライアントでグラフィックとビデオのハードウェアアクセラレーションにH.265をサポートしています。

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

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以降
-  Apple M1チップを搭載したCitrix Workspaceアプリ2301 for Mac以降

H.265/H.264ロスレス圧縮を有効にするには、以下の手順を完了します。

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

  3. 視覚的品質ポリシーを常にロスレスまたはロスレスに構築に設定します。

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

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

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

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

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

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

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

スライダーを使用するには、以下の手順を完了します。

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

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

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

    注記:

    • Visual Quality ポリシーを Always Lossless または Build to Lossless に設定している場合、スライダーUIは表示されません。

    • スライダーUIは、Terminalとシステムトレイの両方から起動できます。

Graphic quality slider

以下の選択肢が利用可能です:

  • 画質を変更するには、スライダーを動かします。スライダーは0~9の範囲をサポートしています。
  • システム定義の設定を使用するには、Let the system decide を選択します。
  • ロスレスモードに切り替えるには、Pixel perfect を選択します。

帯域幅推定に基づく平均ビットレートの調整

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

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のログファイルは、/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は、このテクスチャへのレンダリングはサポートされていません(不完全なフレームバッファー)というエラーを生成する可能性があります。

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