This document serves a guide for Linux VDA 1.3 Graphics configuration and fine-tuning. For system requirements and installation guide, please refer to Linux VDA Installation Guide on Citrix Documentation.
There are quite a few configuration parameters under HKLM\System\CurrentControlSet\Control\Citrix\Thinwire regrading to graphics that can be tuned with ctxreg utility.
Thinwire plus is enabled by default, for both standard VDA and 3D Pro.
In addition to the Operating System requirement, H.264 has minimum requirement on Receiver version, if client does not meet the requirements, it will fallback to thinwire plus.
OS | Windows | Mac OS X | Linux | Android | iOS | Chrome OS |
Minimum requirement for H.264 | 3.4 or later | 11.8 or later | 13.0 or later | 3.5 | 5.9 | 1.4 |
Latest Receiver feature matrix is available here.
Run the following command to advertise H.264 encoding in VDA:
sudo ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AdvertiseH264" -d "0x00000001" --force
For HDX 3D Pro setting AdvertiseH264 only enables software H.264 encoding. Run this command to enable hardware encoding:
sudo ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" –forceNote: Currently, hardware encoding only supports H.240 YUV420P.
MaxColorDepth
Default 0x20, type DWORD.
This option specifies the color depth of graphics transferred through thinwire protocol to client.
To save bandwidth, set it to 0x10 (Preferred color depth for simple graphics) or 0x8 (the experimental low bandwidth mode).
Quality
Visual quality
Default: 0x1(medium), type: DWORD, valid values: 0x0(low), 0x1(medium), 0x2(high), 0x3(build to lossless), 0x4 always lossless.
To save bandwidth, set Quality to 0x0(low).
TargetFPS
Target frame rate
Default: 0x1e (30), Type: DWORD
MinFPS
Target minimum frame rate
Default: 0xa (10), Type: DWORD
MaxScreenNum
Maximum number of Monitors client can have
Default: 0x2, Type: DWORD
For standard VDA, the maximum value can set is 10, and for 3D Pro, the maximum value can set is 4
Use the following command to check whether H.264 encoding is in use (1 means H.264 and 0 means TW+):
sudo ctxreg dump | grep H264
The results should resemble:
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
Run this command (0 means not in use, 1 means in use):
sudo ctxreg dump | grep HardwareEncoding
The results should resemble:
create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" –force
Another way is to use nvidia-smi command, output should be like the following if hardware encoding in use:
nvidia-smi
Tue Apr 12 10:42:03 2016In order to verify if the NVIDIA GRID™ graphics driver is installed correctly, run “nvidia-smi”; the results should resemble:
nvidia-smi
+------------------------------------------------------+In some cases, e.g. the GPU pass through case, the output indicates that the video card is not loaded correctly. This may caused by the following script:
/etc/X11/ctx-nvidia.sh
If you are seeing redraw issues on screens other than the primary monitor check that the NVIDIA GRID™ license is available.
The log file of Xorg is named like Xorg.{DISPLAY}.log under /var/log/ folder.