Thinwire progressive display

Session interactivity can degrade on low bandwidth or high latency connections. For example, on connections with less than 2 Mbps bandwidth or latency of more than 200 ms, scrolling on a webpage can become slow, unresponsive, or choppy; keyboard and mouse operations can lag behind graphics updates.

Through version 7.17, you were able to use policy settings to reduce bandwidth consumption by configuring the session to Low visual quality, or setting a lower color depth (16-bit or 8-bit graphics). However, you had to know that a user was on a weak connection. HDX Thinwire could not dynamically adjust static image quality based on network conditions.

Starting with Version 7.18, HDX Thinwire, by default, switches to a progressive update mode when available bandwidth falls below 2 Mbps, or network latency exceeds 200 ms. In this mode:

  • All static images are heavily compressed.
  • Text quality is reduced.

For example, in the following graphic where progressive update mode is active, the letters F and e have blue artifacts, and the image is heavily compressed. This approach significantly reduces bandwidth consumption, which allows images and text to be received more quickly, and session interactivity improves.

localized image

When you stop interacting with the session, the degraded images and text are progressively sharpened to lossless. For example, in the following graphic, the letters no longer contain blue artifacts, and the image appears at source quality.

localized image

For images, sharpening uses a random block-like method. For text, individual letters or parts of words are sharpened. The sharpening process occurs over several frames. This approach avoids introducing a delay with a single large sharpening frame.

Transient imagery (video) is still managed with adaptive display or Selective H.264.

How progressive mode is used

By default, progressive mode is on standby for the Visual quality policy settings: High, Medium (default), and Low.

Progressive mode is forced off (not used) when:

  • Visual quality = Always Lossless or Build to Lossless
  • Preferred color depth for simple graphics = 8-bit
  • Use video codec for compression = For the entire screen (when full-screen H.264 is desired)

When progressive mode is on standby, by default it is enabled when either of the following conditions occurs:

  • Available bandwidth drops below 2 Mbps
  • Network latency increases above 200 ms

After a mode switch occurs, a minimum of 10s is spent in that mode, even if the adverse network conditions are momentary.

Change progressive mode behavior

You can change the progressive mode behavior by running the following command:

sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\SOFTWARE\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ProgressiveDisplay" -d "<value>" --force

where <value>:

0 = Always off (do not use under any circumstances)

1 = Automatic (toggle based on network conditions, default value)

2 = Always on

When in automatic mode (1), you can run either of the following commands to change the thresholds at which progressive mode is toggled:

sudo /opt/Citrix/VDA/bin/ctxreg  create -k "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ProgressiveDisplayBandwidthThreshold" -d "<value>" --force

where <value> is <threshold in Kbps> (default = 2,048)

Example: 4096 = toggle progressive mode on if bandwidth falls below 4 Mbps

sudo /opt/Citrix/VDA/bin/ctxreg  create -k "HKEY_LOCAL_MACHINE\SOFTWARE\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ProgressiveDisplayLatencyThreshold" -d "<value>" --force

where value is <threshold in ms> (default = 200)

Example: 100 = toggle progressive mode on if network latency drops below 100 ms.

Thinwire progressive display