Product Documentation

Configure graphics

Feb 26, 2018

This article provides a guide for Linux VDA graphics configuration and fine-tuning. As of Version 7.17, Linux VDA 3D Pro supports vGPU for NVIDIA Pascal GPUs (Tesla P40).

For more information, see System requirements and the Installation overview section.

Configuration

Thinwire is the display remoting technology used in the Linux VDA. The technology allows graphics generated on one machine to be transmitted, typically across a network, to another machine for display. 

The Use video codec for compression graphics policy sets the default graphics mode and provides the following options for different use cases:

  • Use when preferred. Default option, recommended for typical desktop workloads.
  • For the entire screen. Delivers Thinwire with full-screen H.264 to optimize for improved user experience and bandwidth, especially in cases with heavy use of 3D graphics. 
  • For actively changing regions. Not supported yet. Fallback to Use when preferred.
localized image

Note

To use hardware encoding in Linux VDA 3D Pro, enable the Use hardware encoding for video codec policy and select For the entire screen.

Some other policy settings, including the following visual display policy settings can be used to fine-tune the performance of display remoting:

For a full list of the policies supported by the Linux VDA Thinwire, see Policy support list.

For information on the configuration of multi-monitor support on the Linux VDA, see CTX220128.

Troubleshooting

Check which encoding is in use

Run the following command to check whether H.264 encoding is in use (1 means H.264 and 0 means TW+):

Command Copy

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H264

The results resemble:

Output Copy

create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "H264" -d "0x00000001" --force

create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AdvertiseH264" -d "0x00000001" --force

Check whether hardware encoding is in use for 3D Pro

Run the following command (0 means not in use. 1 means in use):

Command Copy

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep HardwareEncoding

The results resemble:

Output Copy

create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" --force

Another way is to use the nvidia-smi command. The output resembles the following if hardware encoding is in use:

Output Copy

Tue Apr 12 10:42:03 2016     

+------------------------------------------------------+                     

| NVIDIA-SMI 361.28     Driver Version: 361.28         |                     

|-------------------------------+----------------------+----------------------+

| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |

| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |

|===============================+======================+======================|

|   0  GRID K1             Off  | 0000:00:05.0     Off |                  N/A |

| N/A   42C    P0    14W /  31W |    207MiB /  4095MiB |      8%      Default |

+-------------------------------+----------------------+----------------------+

                                                                              

+-----------------------------------------------------------------------------+

| Processes:                                                       GPU Memory |

|  GPU       PID  Type  Process name                               Usage      |

|=============================================================================|

|    0      2164  C+G   /usr/local/bin/ctxgfx                          106MiB |

|    0      2187    G   Xorg                                            85MiB |

+-----------------------------------------------------------------------------+

Verify that the NVIDIA GRID graphics driver is installed correctly

To verify that the NVIDIA GRID graphics driver is installed correctly, run nvidia-smi. The results resemble:

Output Copy

+------------------------------------------------------+

| NVIDIA-SMI 352.70     Driver Version: 352.70         |

|-------------------------------+----------------------+----------------------+

| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |

| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |

|===============================+======================+======================|

|   0  Tesla M60           Off  | 0000:00:05.0     Off |                  Off |

| N/A   20C    P0    37W / 150W |     19MiB /  8191MiB |      0%      Default |

+-------------------------------+----------------------+----------------------+

 

+-----------------------------------------------------------------------------+

| Processes:                                                       GPU Memory |

|  GPU       PID  Type  Process name                               Usage      |

|=============================================================================|

|  No running processes found                                                 |

+-----------------------------------------------------------------------------+

Set the correct configuration for the card:

Command Copy

etc/X11/ctx-nvidia.sh

HDX 3D Pro multi-monitor redraw issues

If you are seeing redraw issues on screens other than the primary monitor, check that the NVIDIA GRID license is available.

Check Xorg error logs

The log file of Xorg is named similar to Xorg.{DISPLAY}.log in the /var/log/ folder.

Known issues and limitations

For vGPU, the XenServer local console shows the ICA desktop session screen

Workaround: Disable the VM’s local VGA console by running the following command:

Command Copy

xe vm-param-set uuid=<vm-uuid> platform:vgpu_extra_args="disable_vnc=1"

NVIDIA K2 graphics cards do not support YUV444 hardware encoding in pass-through mode

It is a limitation of NVIDIA K2 graphics cards.

Gnome 3 desktop popups slow when logging on

It is a limitation of Gnome 3 desktop session startup.

Some OpenGL/WebGL applications do not render well upon resizing the Receiver window

Resizing the Citrix Receiver window changes screen resolution. The NVIDIA proprietary driver changes some internal states and might require applications to respond accordingly. For example, the WebGL library element lightgl.js might spawn an error saying that 'Rendering to this texture is not supported (incomplete frame buffer)'.