Non-virtualized GPUs
In the Linux VDA documentation, non-virtualized GPUs refers to:
- GPUs used in Remote PC Access scenarios
- GPUs passed through from a hypervisor
This article provides information on enabling HDX 3D Pro for non-virtualized GPUs.
Prerequisites
- Enable HDX 3D Pro. To do so, set
CTX_XDL_HDX_3D_PRO
toY
when installing the Linux VDA. For information about environment variables, seeStep 8: Set up the runtime environment to complete the installation. - For GPUs that theNVIDIA Linux Capture SDKsupports, hardware acceleration is enabled by default after you enable HDX 3D Pro. No additional configuration is required.
- For GPUs that theNVIDIA Linux Capture SDKdoes not support, install
XDamage
. For example, you can runsudo apt-get install -y libxdamage1
to install XDamage on Ubuntu 20.04. Typically, XDamage exists as an extension of XServer.
Configuration
Modify Xorg configuration files
For NVIDIA non-virtualized GPUs
The configuration files are installed and set automatically.
For other GPUs
You must modify the four template configuration files installed under/etc/X11/
:
- ctx - driver_name - 1. -相依
- ctx-driver_name-2.conf
- ctx-driver_name-3.conf
- ctx-driver_name-4.conf
Usingctx - driver_name - 1. -相依作为一个例子,do the following to modify the template configuration files:
Replacedriver_namewith your actual driver name.
For example, if your driver name is
intel
, you can change the configuration file name toctx-intel-1.conf
.Add the video driver information.
Each template configuration file contains a section named “Device,” which is commented out. This section describes the video driver information. Enable this section before adding your video driver information. To enable this section:
See the guide provided by the GPU manufacturer for configuration information. A native configuration file can be generated. Verify that your GPU can work in a local environment with the native configuration file.
Copy the “Device” section of the native configuration file toctx - driver_name - 1. -相依.
Run the following command to set the registry key so that the Linux VDA can recognize the configuration file name set in Step 1.
/opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\XDamage" -t "REG_SZ" -v "DriverName" -d "intel" --force
Enable XDamage
If you are using a GPU that is not listed in the supported hardware section of the release notes forNVIDIA Linux Capture SDK, enableXDamage
using:
/opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\XDamage" -t "REG_DWORD" -v "XDamageEnabled" -d "0x00000001" --force
Monitor blanking for Remote PC Access VDAs
The Linux VDA supports physical monitor blanking for Remote PC Access VDAs that use non-virtualized GPUs.
Fully tested Linux distributions that support the feature include Ubuntu 20.04 and Debian 11.3.
The feature is disabled by default. To enable it, complete the following two steps:
Install the
evdi-dkms
package based on your Linux distribution:sudo apt install evdi-dkms
Enable graphics display offloading to EVDI:
/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "Evdi" -d "0x00000001" --force
If you are using an Intel GPU, disable the display manager. Otherwise, the Intel GPU is occupied by the display manager and not available for Citrix remote sessions.
sudo systemctl disable --now gdm
Troubleshooting
No or garbled graphic output
If you can run 3D applications locally and all configurations are correct, missing or garbled graphic output is the result of a bug. Use /opt/Citrix/VDA/bing/setlog and set GFX_X11 to verbose to collect the trace information for debugging.
Hardware encoding does not work
If you useXdamage
, only software encoding is supported.