Citrix XenDesktop / XenApp: Setting Graphics Policies – it’s simpler than it appears!

I get an awful lot of inquiries about the graphics mode policies available for HDX in Citrix XenDesktop/XenApp. The GUI shows a vast array of options and its clear from how haphazardly they seem to be set in support call logs that many users are confused as to what these do and actually fail to realise most of the settings pertain to a legacy graphics modes that they aren’t using. Cleaning up the architecture, documentation and GUI is a high priority for us, but it’s not quite there yet.

HDX has a number of different graphics modes for remoting desktops and apps. Originally the HDX team at Citrix wrote a “thinwire” mode based on JPEG and bitmap remoting that was optimised for the OSs of the time which based their graphics stacks around GDI/GDI+, specifically Windows 7 and Windows Server 2008 R2 and earlier. As the first graphics mode, it evolved over time:

  • We initially added a lot of control via policies
  • As we learned many policies became unnecessary as we added automated adaptive behaviour within the product
  • We added some extra policies at customer demand
  • We couldn’t remove policies even when they were no longer necessary as many customers wished to retain the legacy behaviour

Time and OSs moved on, Windows 8.x and Windows 2012 R2 upwards no longer used GDI/GDI+ but based their graphics stacks around DirectX technologies. Citrix in turn developed new graphics modes suited to the architecture of the newer OSs and in newer versions of XenDesktop named the original thinwire mode “legacy graphics mode” because it’s designed and optimised for “legacy OSs”.

By the time we introduced the newer graphics modes, we now had the adaptive orchestration capabilities in the code and had learned which policies were really necessary. However certain constraints in the GUI mean we still have to include all the policies available for every graphics mode a user might use.

My colleagues published a very useful table for XenDesktop/XenApp 7.6 showing which policies apply to which mode, here, with an excellent article that also explains what each graphics mode does and how to investigate graphics modes. Here is that table (note how most policies only apply to legacy mode”:

Policy User/Computer DCR H.264 H.264 compatibility mode Legacy Graphics Mode Comment
Desktop Composition graphics quality User X
Desktop Composition Redirection User X Disabling DCR mode on DCR capable VDAs/Endpoints  will enable H.264 (or H.264 Compatibility Mode)
Display memory limit Computer X X X
Display mode degrade preference Computer X
Dynamic window preview Computer X X X This feature only valid for seamless applications (Published apps or Local App Access)
Image caching Computer X
Legacy graphics mode Computer X This policy will enable Legacy Graphics Mode
Maximum allowed color depth Computer X
Notify user when experience is degrade Computer X Valid for RDS only
Persistent cache treshold Computer X
Queuing and tossing Computer X
Extra color compression User X Extra Color Compression is  an optimization that saves upto 20% on the size of lossy compressed images, but at the expense of quality. Turning it off makes some images, like text over a complex background appear sharper.
Extra color compression threshold User X
Heavyweight compression User X
Lossy compression level User X
Lossy compression level threshold value User X
Minimum image quality User X Valid for Legacy Adaptative Display ONLY : it sets the minimum acceptable quality for transient (moving) images.
Moving image compression User X Enables or disables Adaptative Display
Progressive compression level User X If enabled, adaptative display is disabled and switch to progressive display
Progressive compression threshold value User X
Target frame rate User X X X
Target minimum framerate User X Valid for Legacy Adaptative Display ONLY  : it uses this setting to decide when to drop quality for transient (moving) images.
Visual quality User X X

You should only ever be using legacy mode for OSs for which it is designed i.e. Windows 7, Windows 2008 R2 and earlier. I’ve taken the table above and deleted every policy that only relates to legacy graphics mode. These are the only policies in XenDesktop 7.6 as it was initially released which you need to consider if you are not explicitly setting your deployment to use legacy mode.

Policy User/Computer DCR H.264 H.264 compatibility mode Legacy Graphics Mode Comment
Desktop Composition graphics quality User X
Desktop Composition Redirection User X Disabling DCR mode on DCR capable VDAs/Endpoints  will enable H.264 (or H.264 Compatibility Mode)
Display memory limit Computer X X X
Dynamic window preview Computer X X X This feature only valid for seamless applications (Published apps or Local App Access)
Target frame rate User X X X
Visual quality User X X

IMPORTANT: You must not extrapolate this reduced table to later Feature Packs of XD7.6, VDA releases etc. as it is likely some new policies will be added for Framehawk and a few legacy graphics policies may be reused to support the emerging Thinwire+ technologies.

As you can see we’ve done a pretty good job tidying up the configuration that unfortunately hasn’t been reflected in the GUI yet. So… if you aren’t using legacy graphics mode (which should only be applied to Windows 7, Windows 2008 R2 and earlier) it really is fairly simple. Legacy graphics mode on 7.6 has to be explicitly turned on via a policy (in the first table above).

References:

5 thoughts on “Citrix XenDesktop / XenApp: Setting Graphics Policies – it’s simpler than it appears!

Add yours

  1. Pingback: Virtually Visual

Leave a comment

Blog at WordPress.com.

Up ↑