Linux Virtual Delivery Agent

Non-GRID 3D graphics

Overview

The Linux VDA supports both NVIDIA GRID 3D cards and non-GRID 3D cards.

Installation

To use the non-GRID 3D graphics feature, you must:

Configuration

Modify Xorg configuration files

For NVIDIA graphics cards

If your 3D card driver is NVIDIA, the configuration files are installed and set automatically.

For other types of 3D cards

If your 3D card driver is NOT NVIDIA, you must modify the four template configuration files installed under /etc/X11/:

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

Using ctx-driver_name-1.conf as an example, do the following to modify the template configuration files:

  1. Replace driver_name with your actual driver name.

    For example, if your driver name is intel, you can change the configuration file name to ctx-intel-1.conf.

  2. 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:

    1. See the 3D card guide provided by the manufacturer for configuration information. A native configuration file can be generated. Verify that your 3D card can work in a local environment with the native configuration file when you are not running a Linux VDA session.

    2. Copy the “Device” section of the native configuration file to ctx-driver_name-1.conf.

  3. 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-->
    

Enable non-GRID 3D graphics

The non-GRID 3D graphics feature is disabled by default. You can run the following command to enable it by setting the XDamageEnabled value to 1.

/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-GRID 3D cards. This enhancement offloads graphics display to Extensible Virtual Display Interface (EVDI) virtual monitors.

Note:

The maximum number of EVDI virtual monitors varies for different distributions.

Monitor blanking works for Ubuntu 20.04, Debian 11.3, and Debian 10.9 VDAs. To use monitor blanking, complete the following two steps:

  1. Install the evdi-dkms package based on your Linux distribution:

    sudo apt install evdi-dkms
    <!--NeedCopy-->
    
  2. 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-->
    
  3. If you are using an Intel graphics card, disable the display manager. Otherwise, the Intel card is occupied by the display manager and not available for Citrix remote sessions.

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

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

This feature supports only software encoding.

Non-GRID 3D graphics