最新の Receiver for Windows 4.4 ではグラフィックスパフォーマンスが大幅に向上。高解像度ディスプレイ時代のニーズに対応。

4K 解像度のディスプレイを利用した環境は、グラフィックデザイナー、金融トレーダー、医療診断プロフェッショナルなどから注目を集めています。4K モニターの販売価格も手の届くところまで一般化してきました。シトリックス製品の 4K モニターやマルチディスプレイ環境への対応情報は CTX201696 にまとめられています。

多くのシンクライアント端末では Citrix Receiver for Linux が採用されているため、H.264 ハードウェアデコーディング機能は Linux 版の Citrix Receiver に最初に提供されました。Receiver for Windows  4.3 以前のバージョンでは CPU によるデコーディング処理しかサポートしません。

このため Windows ベースのシンクライアント端末で 4K モニターを利用した場合、ICA セッションのパフォーマンスや応答性の性能低下が見られることがありました。Intel 社の NUC のような高性能 CPU を搭載したクライアントでは Dassault CATIA や Siemens NX の高精細な 3D モデルでも、毎秒 6~7 フレームの性能を発揮できるのに対して、多くの Windows ベースのシンクライアントでは CPU 性能面で不満が感じられました。

性能が伸び悩む原因は、デフォルトグラフィックスモードの CABAC で符号化された H.264 ストリームの処理能力不足です。シンクライアントの多くにはディスクリートの GPU (または AMD APU や Intel Iris Pro のような統合GPU) が搭載されています。これらの GPU には CABAC で符号化された H.264 ストリームを復号化するハードウェアデコーディング機能があります。

最新の Citrix Receiver for Windows リリース 4.4 (HDX engine 14.4) では、これらの GPU を H.264 デコーディングに利用できます。GPU デコーディングに利用される API は DXVA (DirectX Video Acceleration) です。

DXVA をサポートするために、レンダリンク処理を従来の GDI ベースから Direct3D による処理にアップデートしました。

性能比較

実際に Receiver 4.4 でどれだけ 4K モニターの描画パフォーマンスが向上したか見てみましょう。

SETUP

PERF

このようなパフォーマンステストをモニター1画面から4画面まで、さまざまな解像度とシンクライアントの組み合わせで実施しました。テスト結果からユーザーの操作性が向上しただけでなく、毎秒あたりの描画フレーム数(FPS)が2倍以上向上したことがわかります。

GPU にオフロードすることで、クライアントの CPU 負荷は 50%~ 60% 軽減されました。このように CPU 負荷が下がることで、ローコストなシンクライアントでも十分に余裕をもってアプリケーションが実行できます。

では、クライアントデバイスが DXVA デコーディングに対応しているかどうかは、どうやって調べるのでしょう? この確認にはサードパーティツールの DXVA Checker が利用できます。 クライアントにツールをインストールすると、下のスクリーンショットでハイライトされた項目で示すように、クライアントデバイスの GPU が DXVA をサポートするか否かが確認できます。

DXVA

クライアントによっては “H264” が表示されるが “4K” が表示されないものがあります。これはクライアントデバイスが低い解像度のとき限定で DXVA をサポートしているという意味です。このような条件の場合、ユーザーが ICA セッションを高解像度で(例えば 1920×1200 ドット以上)接続すると Citrix Receiver は自動的に GDI レンダリングを行う CPU ベースの処理にフォールバックしてしまいます。

ハードウェアデコーディングの機能はデフォルトで OFF に設定されています。これを有効にするには、以下の手順に沿ってクライアントポリシーを設定します。
install_root は 32bit Windows なら \Program Files、64bit Windows なら \Program Files (x86) です)

  1. “receiver.adml” を “install_root\Citrix\ICA Client\Configuration” から “C:\Windows\PolicyDefinitions\ja-JP” にコピーします(英語環境なら en-US)。
  2. “receiver.admx” を “install_root\Citrix\ICA Client\Configuration” から “C:\Windows\PolicyDefinitions\” にコピーします。
  3. 管理ユーザとして gpedit.msc でローカルグループポリシーエディターを開きます。
  4. コンピューターの構成 → 管理用テンプレート → Citrix Components → Citrix Receiver → User experience にある “Hardware Acceleration for graphics” を開きます。
  5. “有効” に設定して “Ok” をクリック、エディターを終了します。

アクティブな ICA セッションで、ハードウェアアクセラレーションが有効なことをチェックするためには、つぎのレジストリ項目を確認してください。

 レジストリ パス: HKEY_CURRENT_USER\Software\Citrix\ICA Client\CEIP\Data\GfxRender\session ID

Graphics_GfxRender_DecoderGraphics_GfxRender_Renderer の値が 1 になっていれば有効です。もし値が 2 だった場合は CPU ベースのデコーディングが行われています。

制限事項:

  1. もしクライアントに GPU が2つ搭載されていて、モニターの片方が 2個目の GPU を利用している場合、そのモニターは CPU ベースのデコーディングを利用します。
  2. Windows Server 2008 R2 の環境では、ハードウェアデコーディングを利用しないことを推奨します。利用するとテキスト選択操作でパフォーマンス低下やチラつきが発生します。

その他のグラフィックスモード:

なおハードウェアデコーディングが利用できるのは H.264 モードが利用されている時だけです。他のグラフィックモードで利用されるデコーディングとレンダリングについて下の表にまとめました。

GMODE

関連資料: