Background
On low bandwidth (< 2 Mbps) or high latency (> 200ms) links, session interactivity can suffer. For example, simple operations like scrolling a web-page may become quite tedious, unresponsive or “bursty” in nature. Keyboard and mouse operations can lag behind graphics updates. The end result is a session which is difficult to use and causes much frustration for the user.
Up to and including XenApp and XenDesktop 7.17, it was possible to help interactivity by configuring the session to “Low” visual quality, or setting a lower colour depth (16 or 8-bit graphics). Both reduce bandwidth consumption and both can be set by policy.
The problem with doing this is that the administrator must have prior knowledge that a user is on a weak connection: there was currently no way in which HDX Thinwire will dynamically adjust quality for static imagery based on network conditions.
Feature Description
In the XenApp and XenDesktop 7.18 release, a new Thinwire+ Progessive Display feature was introduced. HDX Thinwire will now switch to a progressive update mode if available bandwidth dips below 2 Mbps, or network latency drifts above 200ms. This feature is available on both Windows VDAs and Linux VDAs
In this mode, the following actions are taken:
- All images are heavily compressed.
- Text quality is reduced.
We can see the effects in this image:
- Notice the blue artefacts on the letters “F”, “e” and the heavily compressed image.
These steps are taken to drastically reduce bandwidth usage, allowing imagery and text to be received quicker and therefore improve session interactivity.
When the user has stop interacting with the session, the degraded images and text are progressively sharpened to lossless:
- Blue artefacts no longer apparent on letters “F”, “e” and the image is at source quality.
For images, sharpening is done in a random block like fashion. For text, individual letters or parts of words are sharpened. The sharpening process takes place over several frames so as to not introduce a delay with a single large sharpening frame.
Note: Transient imagery e.g., video will still be dealt with by adaptive display or Selective H.264.
Detailed Configuration Information
Progressive mode is, by default, on stand-by for the following
Visual Quality policy settings: “
High”, “
Medium” (default), and “
Low”.
Progressive mode is forced OFF/not used in the following cases:
- If “Visual Quality” = “Always Lossless” or “Build to Lossless”.
- If “Preferred Colour Depth for Simple Graphics” = “8-bit”.
- If “Use Video Codec” = “For the entire screen” i.e., when full-screen H.264 is desired.
In the cases where progressive mode is on stand-by, the mode will be enabled if:
- Available bandwidth drops below 2 Mbps, OR,
- Network latency increases to above 200ms.
Once a mode switch has occurred, a minimum of 10s will be spent in that mode, even if the adverse network conditions are momentary.
Change Progressive mode behavior
It is possible to change the behaviour of progressive display by updating the registry keys:
- On Windows VDAs, open Registry Editor and set the keys:
[REG_DWORD] HKLM\Software\Citrix\Graphics\ProgressiveDisplay
- On Linux VDAs, run the following command:
sudo ctxreg create -k " HKEY_LOCAL_MACHINE\SOFTWARE\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ProgressiveDisplay" -d "<value>" --force
Values:
0 – Always off i.e., do not use in any circumstances.
1 – Automatic i.e., toggle based on network conditions (default)
2 – Always on.
When in automatic mode (value: 1), you can also change the (bandwidth or network latency) thresholds by updating following registry keys:
- On Windows VDAs, open Registry Editor and set the keys:
[REG_DWORD] HKLM\Software\Citrix\Graphics\ProgressiveDisplayBandwidthThreshold
- On Linux VDAs, run the following command:
sudo ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ProgressiveDisplayBandwidthThreshold" -d "<value>" --force
Value: <threshold in Kbps> (default = 2048)
Example: 4096 = toggle progressive mode on if bandwidth falls below 4 Mbps
And also network latency:
- On Windows VDAs, open Registry Editor and set the keys:
[REG_DWORD] HKLM\Software\Citrix\Graphics\ProgressiveDisplayLatencyThreshold
- On Linux VDAs, run the following command:
sudo ctxreg create -k " HKEY_LOCAL_MACHINE\SOFTWARE \CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ProgressiveDisplayLatencyThreshold" -d "<value>" --force
Value: <threshold in ms> (default = 200)
Example: 100 = toggle progressive mode on if network latency rises above 100ms.
Requirements
Thinwire+ Progressive Display is a feature introduced in the 7.18 release, available on both Windows VDAs and Linux VDAs. At a minimum, version 7.18 VDAs is required.
The feature will work with currently supported versions of Citrix Receivers.