Display adapter priority and monitor creation in Citrix sessions
Citrix have created this very important knowledge article CTX237608 about GPUs in Citrix from release 7.16 and forward.
This article is valid for following Citrix products:
- Citrix XenDesktop 7.16 using Microsoft Windows 10
- Citrix XenDesktop 7.17 using Microsoft Windows 10
- Citrix XenDesktop 7.18 using Microsoft Windows 10
(IDD) Indirect Display Driver model was introduced in Microsoft Windows 10 and Citrix is now using this technology.
I experienced myself an issue with an AMD Radeon WX4100 GPU having a black screen or desktop “freezes” at login and by adding CitrixIDD registry key I got it working. Other GPUs may be impacted so please test. Please be aware that with implementing Citrix IDD you loose vendor specific (control panel) settings, because Citrix bypass the GPU vendor capture APIs and you will have less performance resulting in less FPS. But I have experience myself that performance works amazing with enabling CitrixIDD and it solved my issue with a black screen/desktop that froze.
Update 29 August 2018
Its recommended getting a native driver from the GPU vendor instead of using Citrix IDD to get the best performance the GPU vendors provide via their APi.
Below is relevant for Citrix customers
- Connecting with HDX to machines provisioned manually or MCS or PVS to a virtual Microsoft Windows 10 with Citrix Client OS VDA 7.16 and above.
- Connecting with HDX using Citrix RemotePC to a physically PC with Microsoft Windows 10 and Citrix Client OS VDA 7.16 and above.
Starting with XenDesktop 7.16 the Citrix Virtual Desktop Agent (VDA) for Windows 10 automatically selects the best display adapter to use for the user session during connection time. This feature eliminates the HDX 3D Pro mode installation option from previous versions and allows for the same Windows image to be used for virtual machines with and without GPUs alike.
There are three different display adapters (or drivers) that may be used in a Citrix session:
- Citrix Display Only (DOD) – This is the standard adapter used for all Citrix sessions when there is no GPU detected on the VDA.
- GPU Vendor’s – This may be one of the GPU adapters from NVIDIA, AMD, or Intel that Citrix supports for HDX 3D Pro workloads as documented in CTX131385.
- Citrix Indirect Display (IDD) – This adapter is used in sessions where a GPU is detected but no Citrix supported vendor driver is found. It can be considered as “generic” GPU support.
These can be seen in the Windows Device Manager or any tool that queries display configuration details.
By default, the optimal configuration will be automatically selected in most cases. Manual configuration options should only be used as needed to support specific use cases, as instructed by Citrix Technical Support, or for troubleshooting and diagnostic purposes.On VDAs version 7.16 and newer, administrators can pre-define how display adapters and monitors are configured for the user session using the following Windows Registry Key:
To select the preferred display adapter and assign usage priority (merits) for multiple display adapters
Value data [number]: Highest number gets the first preference
To restrict the number of monitors that can be created per display adapter
Value data [0-8]: depending on the number of monitors a GPU adapter can support
With the registry settings illustrated above, the administrator has configured the Citrix Indirect Display adapter with highest preference followed by the Nvidia adapter and maximum number of monitors allowed for both to 1. In this example, the session will use the Citrix IDD adapter for the primary monitor and the NVIDIA adapter for the secondary monitor, for a user connecting from an endpoint with two monitors.
There may be cases where using the Citrix IDD adapter (generic GPU support) is preferred or required, over the GPU vendor’s. Mainly as a troubleshooting step or a workaround to issues with GPU vendor adapters. For these cases the registry key may be configured with the single value as follows:
DWORD CitrixIDD = 3
Use Citrix IDD as a workaround to the following known issues:
Connecting to a VDA using Intel GPU from an endpoint with one or more monitors in portrait mode fails. This is a known issue with Intel drivers.
Connecting to a VDA with Nvidia GPU from an endpoint with 5 monitors results in the contents on the primary and 5th monitors being duplicated (mirrored).