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.
- Enable HDX 3D Pro. To do so, set
Ywhen installing the Linux VDA. For information about environment variables, see Step 8: Set up the runtime environment to complete the installation.
- For GPUs that the NVIDIA Linux Capture SDK supports, hardware acceleration is enabled by default after you enable HDX 3D Pro. No additional configuration is required.
- For GPUs that the NVIDIA Linux Capture SDK does not support, install
XDamage. For example, you can run
sudo apt-get install -y libxdamage1to install XDamage on Ubuntu 20.04. Typically, XDamage exists as an extension of XServer.
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
Using ctx-driver_name-1.conf as an example, do the following to modify the template configuration files:
Replace driver_name with your actual driver name.
For example, if your driver name is
intel, you can change the configuration file name to
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 to ctx-driver_name-1.conf.
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 <!--NeedCopy-->
If you are using a GPU that is not listed in the supported hardware section of the release notes for NVIDIA Linux Capture SDK, enable
/opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\XDamage" -t "REG_DWORD" -v "XDamageEnabled" -d "0x00000001" --force <!--NeedCopy-->
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:
evdi-dkmspackage based on your Linux distribution:
sudo apt install evdi-dkms <!--NeedCopy-->
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 <!--NeedCopy-->
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 <!--NeedCopy-->
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 use
Xdamage, only software encoding is supported.