Picture the typical trader. While traditionally you’ve found them on a trading floor or in a city center office, that’s changed with the pandemic as financial institutions are realizing the benefits of a hybrid work model.
That said, the typical trader workload has always pushed technology to the limit. If you can dream it, traders want it (and they want it spread across six or eight monitors, too!). The trader’s workload can even be more complex to deliver than 3D CAD apps. With a user focused on design tasks, there is generally an acceptable middle ground between performance and image quality, especially in challenging conditions.
Traders, on the other hand, expect nothing less than perfect quality and for screen updates to appear faster than a blink of an eye. I’ve been told that a delayed flash of a stock ticker could mean the difference between losing a million and making a million! So that’s why we’ve focused on improving Citrix HDX — and the graphics in particular — to deliver this use case. We’ve worked closely with some of the largest financial institutions to understand which settings work best, and I’m pleased to be able to share this information with you.
Delivery Controller Policies
Let’s consider policies first. There’s a common misconception that “full-screen video codec” or “build to lossless” is needed, along with a target frame rate of 60 FPS.
That’s not true!
My recommendation? Leave the policies at their default settings. This ensures that Selective H.264 is used and is guaranteed to give the best possible visual quality at the lowest possible bandwidth cost — perfect for working at home as well as in the office. For this use case, 30 FPS is generally plenty sufficient.
VDA
For the VDA graphics hardware and provider, you need a GPU given the number of screens going at full HD or greater resolution. Trader apps also benefit from GPU compute and rendering. For workstation VDAs such as Windows 10 (which is what we typically see deployed for this use case), we select one of the following providers to capture graphics:
- Citrix Display Only Driver (DOD): Used when a GPU is not present (not recommended).
- Desktop Duplication API + Vendor SDK: Used when a supported GPU (like NVIDIA) is present.
- Citrix Indirect Display Driver (IDD): Used when a GPU is present but there’s no supported vendor driver.
My recommendation is to enable IDD. Months of testing and analysis have shown that IDD performs as well as the other providers and offers other benefits like being able to correctly display protected content such as restricted e-mails in Microsoft Outlook.
Worried IDD will not use the GPU? Don’t be. It does. Apps still get the benefit of hardware-accelerated rendering, and we are still able to hardware encode content just like we do in the other cases.
As IDD is not the default, you must enable it via the registry on the VDA. Here’s how:
- Key: HKLM\Software\Citrix\Graphics\AdapterMerits
- Value: [DWORD] CitrixIDD = 3
(You might need to create the “AdapterMerits” key under “Graphics” if it doesn’t already exist.)
We plan to make IDD the default provider in an upcoming Citrix Virtual Apps and Desktops release, so stay tuned. And speaking of releases, another important consideration is which version of Citrix Virtual Apps and Desktops to use. For customers who are strictly LTSR only, we recommend 2203 with the latest CU pack. Otherwise, try the latest CR (that’s always my recommendation). CRs benefit from the latest graphics optimizations, and there’s one in 2206 that’s particularly applicable to this use case.
Please note, there is a known issue in 2203 and 2206 that may result in apps being limited to 22 FPS (it’s documented here). To work around it, set the following registry value on the VDA:
- Path: HKLM\Software\Citrix\Graphics
- Value: [DWORD] EnableTimerPeriod = 1
You won’t need this workaround in 2203 CU2 or 2209 and later.
Endpoint
Finally, let’s talk about the endpoint device. I won’t make vendor-specific recommendations, but I will say is that a device with a GPU is essential. Driving up to eight monitors is no easy task, so pick something that does it well. Windows or Linux is fine, but just make sure you have the latest Citrix Workspace app version installed. We’ve made some performance improvements to Citrix Workspace app for Windows beginning with version 2206.
For customers with more than three connected screens, we typically see multiple GPUs used on the endpoint. On Windows, and for historical reasons, we disable hardware acceleration if multiple GPUs are detected. We recommend forcing this back on by setting the following registry value on the endpoint:
- Key: HKLM\ SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\GfxRender
- Value: [DWORD] UseMultiGPUs = 1
(Please note, you might need to create the “GfxRender” key under “Modules” if it doesn’t already exist.)
To summarize:
- Delivery Controller: Leave policies at their default settings
- VDA: Enable IDD
- VDA: Enable timer period workaround (if needed)
- Endpoint: Use latest CWA and enable hardware acceleration for multiple GPUs (Windows only)
I hope you found this useful! Drop me a message here if you have any questions. Also, check out the following links for additional information on some of the things I covered above:
Disclaimer: The development, release and timing of any features or functionality described for our products remains at our sole discretion and are subject to change without notice or consultation. The information provided is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making purchasing decisions or incorporated into any contract.