Thursday, October 02, 2014

Citrix Adaptive Display moving to GPUs

 

What is Citrix Adaptive Display and why should I care?

Before adaptive display there was Progressive Display which worked well back in the day, but if you wanted to tune it, it is was a manual dark art. It was often misconfigured resulting in a poor experience, so lets just move on.

Then came Adaptive Display, the first generation. It was based on progressive display but was auto tuning according to the available bandwidth and the capabilities of the client. Simply, it would use a different compression algorithm for moving images and still images and tune it on the fly.

Now there is Adaptive Display Second generation. It is now based on different codecs, the ‘SuperCodec’ from Citrix dynamically decide which compression is used for different parts of the screen. The most important codec is the H.264 deep compression codec known as HDX 3DPro. Add to this Desktop Composition Redirection.

If you want to offload you can also redirect Desktop Composition to the client if supported. This will work with the Microsoft applications like Internet Explorer, Office 2010+. You can also tune the quality of Desktop Composition Redirection can be configured in the following policy: Desktop_Composition_graphics_Quality

HDX 3DPro (H.264 Deep Compression codec) has now evolved and it can completely encode in host CPU. This new version, called the Deep Compression V2, uses even less bandwidth then before but hits the CPU harder. The load on the host side increases and can affect the scalability of the total solution, when CPU resources are limited or scalability is a concern in your environment you may need to tune this down or optimise it.

If you need to bring down the graphics performance you can turn on the legacy graphics mode policy to get the user density you are aiming for and scalability targets but this affects the user experience. And that kind of defeats the purpose of what we are aiming for.

So instead move to a Graphics Processing Units (GPU). The GPU can do the heavy graphics lifting.

In XenDesktop 7x you have the following options:

  • Leverage the GPU directly (Either physically or through the Hypervisor GPU pass-through)
  • Leverage the GPU indirectly through GPU virtualisation (Available by using Nvidia GRID and others)

Leveraging the GPU directly has been available for a while now but was one-to-one solution for Windows 7 VDI (Hosted shared desktops based on 2008 r2 etc. you could share a GPU with multiple sessions on the same server OS)

Graphics are first rendered and compressed in the GPU and then send down the client, so first the output of the GPU needs to be captured, compressed and tuned by the ICA client, this process is called screen scraping. Screen scraping, is not required when using a Nvidia GRID because it comes with an API which allows remote display protocols (ICA client) to access the frame buffer, (the encoding engine of the GRID card) directly. This means to you the job is rendered and sent remotely with almost no delay.

XenServer supports GRID GPU virtualisation and the remote display APIs. This is in early test for VMware and not on the map for HyperV.

So for the best graphics yet on VDI, get XenServer, XenDesktop and a bunch on NVidia GRID K1/2 Cards.

The newest Citrix Receivers supports the new codecs so stay current.

If you want to tune Adaptive Display you have the following settings, BUT ALWAYS leave it default until you have a test bed:

  • Max frames per second
  • Target Minimum Frame rate (up to 60 on newer receiver)
  • Minimum Image Quality
  • Moving Image Compression
  • Extra Colour Compression (Chroma and Luma)
  • Heavyweight Compression
  • Lossy Compression level
  • Legacy Graphics Mode
  • Visual Quality
  • Desktop Composition Redirection
  • Desktop Composition Redirection Quality

No comments:

Blog Archive