Linux Virtual Delivery Agent

非仮想化GPU

Linux VDAのドキュメントでは、非仮想化GPUとは次を指します:

  • リモートPCアクセスのシナリオで使用されるGPU
  • ハイパーバイザーから渡されたGPU

この記事では、非仮想化GPUでHDX 3D Proを有効にする方法について説明します。

前提条件

  • HDX 3D Proを有効にします。これを行うには、Linux VDAをインストールするときに、CTX_XDL_HDX_3D_PROYに設定します。環境変数については、「手順8:Runtime Environmentをセットアップしてインストールを完了する」を参照してください。
  • NVIDIA Linux Capture SDKでサポートされているGPUの場合、HDX 3D Proを有効にすると、ハードウェアアクセラレーションがデフォルトで有効になります。追加の構成は必要ありません。
  • NVIDIA Linux Capture SDKでサポートされていないGPUの場合は、XDamageをインストールします。たとえば、sudo apt-get install -y libxdamage1を実行すると、XDamageをUbuntu 20.04にインストールできます。通常、XDamageはXServerの拡張機能として存在しています。

構成

Xorg構成ファイルの変更

NVIDIA非仮想化GPUの場合

構成ファイルは自動的にインストールおよび設定されます。

その他のGPUの場合

/etc/X11/にインストールされている次の4つのテンプレート構成ファイルを変更する必要があります:

  • ctx-driver_name-1.conf
  • ctx-driver_name-2.conf
  • ctx-driver_name-3.conf
  • ctx-driver_name-4.conf

ctx-driver_name-1.conf を例として使用しながら、以下の手順に従ってテンプレート構成ファイルを変更します:

  1. driver_name は、実際のドライバー名で置き換えてください。

    たとえば、ドライバー名がintelの場合は、構成ファイル名をctx-intel-1.confに変更できます。

  2. ビデオドライバー情報を追加します。

    各テンプレート構成ファイルには、「Device」という名前のセクションがあり、コメントアウトされています。このセクションでは、ビデオドライバー情報を記述します。ビデオドライバー情報を追加する前に、このセクションを有効にします。このセクションを有効にするには:

    1. GPUの製造元から提供されているガイドを参照して構成情報を確認します。ネイティブ構成ファイルを生成できます。ネイティブ構成ファイルを使用して、GPUがローカル環境で動作できることを確認します。

    2. ネイティブ構成ファイルの[Device]セクションを ctx-driver_name-1.conf にコピーします。

  3. 次のコマンドを実行して、手順1で設定した構成ファイル名をLinux VDAが認識できるようにレジストリキーを設定します。

    /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\XDamage" -t "REG_SZ" -v "DriverName" -d "intel" --force
    <!--NeedCopy-->
    

XDamageの有効化

NVIDIA Linux Capture SDKのリリースノートのサポート対象ハードウェアのセクションに記載されていないGPUを使用している場合は、次を使用してXDamageを有効にします:

/opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\XDamage" -t "REG_DWORD" -v "XDamageEnabled" -d "0x00000001" --force
<!--NeedCopy-->

リモートPCアクセスVDAのモニターブランキング

Linux VDAは、非仮想化GPUを使用するリモートPCアクセスVDAの物理モニターブランキングをサポートしています。

この機能をサポートする完全にテスト済みのLinuxディストリビューションには、Ubuntu 20.04およびDebian 11.3が含まれます。

この機能はデフォルトでは無効になっています。有効にするには、次の2つの手順を実行します:

  1. 使用するLinuxディストリビューションに応じて、evdi-dkmsパッケージをインストールします:

    sudo apt install evdi-dkms
    <!--NeedCopy-->
    
  2. EVDIへのグラフィックディスプレイのオフロードを有効にします:

    /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "Evdi" -d "0x00000001" --force
    <!--NeedCopy-->
    
  3. IntelのGPUを使用している場合は、ディスプレイマネージャーを無効にします。それ以外の場合、IntelのGPUはディスプレイマネージャーによって占有され、Citrixリモートセッションでは使用できません。

    sudo systemctl disable --now gdm
    <!--NeedCopy-->
    

トラブルシューティング

グラフィック出力がないか文字化けする

ローカルで3Dアプリケーションを実行でき、すべてを適切に構成しているのにグラフィック出力がないまたは不明瞭であるとすると、原因はバグです。/opt/Citrix/VDA/bin/setlogを使用してGFX_X11をverboseに設定することでデバッグ用にトレース情報を収集します。

ハードウェアエンコーディングが機能しない

Xdamageを使用する場合、ソフトウェアエンコーディングのみがサポートされます。

非仮想化GPU