グラフィックの構成

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

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

構成

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

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

  • [可能であれば使用]。この設定がデフォルトです。追加の構成は必要ありません。この設定を保持することにより、すべてのCitrix接続でThinwireが選択され、デスクトップの一般的なワークロードで、スケーラビリティ、帯域幅、および優れた画質の点で、確実に最適化されます。
  • [画面全体に使用]。特に3Dグラフィックを多用する事例で、Thinwireを全画面H.264またはH.265を使用して配信して、ユーザーエクスペリエンスと帯域幅の改善を最適化します。
  • [アクティブに変化する領域]。Thinwireのアダプティブ表示テクノロジは、動画(ビデオ、3Dインモーション)を識別し、画像が動く画面の部分でのみH.264を使用します。グラフィックの圧縮にH.264ビデオコーデックを選択的に使用 することにより、HDX ThinwireはビデオコンテンツなどのH.264ビデオコーデックを使用して、頻繁に更新される画面の部分を検出してエンコードすることができます。静止画圧縮(JPEG、RLE)とビットマップキャッシングは、テキストや写真画像などを含む画面の残りの部分で引き続き使用されます。ユーザーは、低帯域幅でありながら、無損失テキストや高品質画像を組み合わせた品質の高いビデオコンテンツを視聴できます。この機能を有効にするには、ポリシー設定の [圧縮にビデオコーデックを使用する] を、[可能であれば使用](デフォルト)または [アクティブに変化する領域] に設定します。詳しくは、「グラフィックのポリシー設定」を参照してください。

[画面全体に使用]の画像

次の視覚表示ポリシー設定など、いくつかの他のポリシー設定は、ディスプレイリモートのパフォーマンスを微調整するために使用できます。

Thinwireで[操作時は低品質]にH.264を使用

デフォルトでは、[表示品質] ポリシー設定の [操作時は低品質] 設定が、動画に対してはJPEGではなくH.264になりました。

H.264エンコーディングでは優れた画質が提供されます。[圧縮にビデオコーデックを使用する] ポリシーにより、優先設定(デフォルトは [可能であれば使用])が制御されます。[操作時は低品質] でJPEGが使用されるよう強制するには、[圧縮にビデオコーデックを使用する] ポリシーを [ビデオコーデックを使用しない] に設定します。クライアントでSelective H.264がサポートされていない場合、[操作時は低品質] はポリシー設定に関係なくJPEGに戻ります。Citrix Receiver for Windows 4.9~4.12、Citrix Receiver for Linux 13.5~13.10、Windows向けCitrix Workspaceアプリ1808以降、Linux向けCitrix Workspaceアプリ1808以降でSelective H.264がサポートされます。[表示品質] および [圧縮にビデオコーデックを使用する] のポリシー設定について詳しくは、「視覚表示のポリシー設定」と「グラフィックのポリシー設定」を参照してください。

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ハードウェアエンコードを有効にするには:

  1. [ビデオコーデックにハードウェアエンコーディングを使用します] ポリシーを有効にします。
  2. [3D画像ワークロードの最適化] ポリシーを有効にします。
  3. [圧縮にビデオコーデックを使用する] ポリシーがデフォルトであること、または [画面全体に使用] に設定されていることを確認します。
  4. [表示品質] ポリシーが [操作時は低品質] または [常に無損失] に設定されていないことを確認します。

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

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

Linux VDAはYUV444ソフトウェアエンコーディングをサポートします。YUVエンコーディングスキームは、明るさと色の両方の値を各ピクセルに割り当てます。YUVで「Y」は明るさまたは「輝度」値、「UV」は色、または「彩度」値を示します。Linux VDAのこの機能は、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
yuv444の画像 yuv420の画像

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

  1. [視覚的無損失の圧縮を使用する] ポリシーを有効にします。
  2. [圧縮にビデオコーデックを使用する] ポリシーが [画面全体に使用] に設定されていることを確認します。
  3. [表示品質] ポリシーが [常に無損失] または [操作時は低品質] に設定されていないことを確認します。

帯域幅推定に基づいて平均ビットレートを調整する

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

この機能だけでなく、以下のコマンドを実行することでも鮮明さと滑らかさのバランスを調整できます。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

平均ビットレート調整で、画面が静止状態の場合、新しいフレームが送信されることがないため、最新のフレームは低品質状態のままです。鮮明さのサポートでは、最新のフレームを最高品質で再構成し、すぐに送信することでこの問題に対応します。

Linux VDA Thinwireでサポートされているポリシーをすべて示す一覧については、「ポリシーサポート一覧」を参照してください。

Linux VDAでのマルチモニターサポートの構成について詳しくは、CTX220128を参照してください。

トラブルシューティング

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

次のコマンドを実行して、使用されているグラフィックモードを確認します(0はTW+を、1は全画面ビデオコーデックを意味します):

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep GraphicsMode

次の内容に類似した結果が出力されます:

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

次の内容に類似した結果が出力されます:

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

次の内容に類似した結果が出力されます:

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

次の内容に類似した結果が出力されます:

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

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

次の内容に類似した結果が出力されます。

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

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

次のコマンドで、カードに適切な構成を設定します:

etc/X11/ctx-nvidia.sh

HDX 3D Proマルチモニターでの再描画の問題

プライマリモニター以外の画面で再描画の問題が発生している場合は、NVIDIA GRIDライセンスが利用可能であることを確認してください。

Xorgのエラーログを確認する

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

既知の問題と制限事項

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

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

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

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

ポリシー設定で [操作時は低品質] を有効にすると、ユーザーがNVIDIA K2グラフィックカードを使用してアプリケーションまたはデスクトップのセッションを開始したときに、黒色または灰色の画面が表示されます。この問題は、NVIDIA K2グラフィックカードがパススルーモードでYUV444ハードウェアエンコーディングをサポートしないことが原因で発生します。詳しくは、ビデオエンコードおよびデコードのGPUサポートマトリックスを参照してください。

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

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

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

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