Connection Experience Indicator for RDS, AVD & W365 version 1.3 released

Hi everyone, hope you are doing well. A while ago I created a tool for RDS, AVD and Windows365 environments that notifies users about changes in the user experience. It is called the Connection Experience Indicator. The tool is very popular and I received a lot of great feedback, thank you very much for this. Version 1.3 is now available and contains multiple fixes, improvements and a new logging feature.

If you want to download or read more about the Connection Experience Indicator (CEI), please check the original release blogpost which has been updated for the 1.3 release.

The new logging feature will submit connection state changes to the event log. This events can easily be collected in Azure Log Analytics, or another event monitoring tool. CEI uses a default event log source for .NET events so admin permissions are not needed to create a new event log source. Below an example of a connection state change event based on low bandwidth conditions:

As you can see the username and the available bandwidth is included in the event. When a high threshold has been exceeded a warning event will be logged:

The logging feature is enabled by default and can be disabled when adding the -log false parameter.

Please check the original blogpost for more information, thanks for reading and have a great day.

AppVentiX 3.3 is now available!

Splash_Small

AppVentiX 3.3 is available, this release includes a rebranded content inventory, ability to clone machine groups, a new App-V cache validation procedure (to make sure the cache is always in a healthy state), new use cases for MSIX management and support for MSIX bundles.

AppVentiX has a free community version and installs under 10 minutes, AppVentiX doesn’t need any back-end infrastructure. You will get immediate results which will make you confident about releasing new applications and updates in real-time. AppVentiX supports Azure Virtual Desktop (AVD), Windows 365, VMware and Citrix deployments both on-premises and in the cloud. Both persistent and non-persistent configurations are supported. The solution is powerful, light weight and integrates easily in your existing environment.

Check out the AppVentiX 3.3 release notes here:

AppVentiX 3.3 Release

Remote Display Analyzer 2106 released

Hi all,

Happy to announce that a new version of Remote Display Analyzer (RDA) has been released: RDA version 2106.

What’s new in Remote Display Analyzer version 2106:

  • A new Teams Offloading status has been added for Microsoft AVD, Citrix & VMware

Teams Citrix

  • Support for Microsoft Azure Virtual Desktop (AVD) RDP Shortpath

AVD Shortpath

  • A new Citrix Build-to-Lossless Quality Slider has been added

indicator

  • Added GUI ability to turn on/off NVIDIA GPU monitoring

gpu_enable_disable

  • RDA now supports session disconnect / reconnect, monitoring now continues if session is reconnected
  • A Microsoft Max FPS Policy check for server\multi session OS has been added
  • Fixed NVIDIA license detection issue with server\multi session OS
  • Support for all the latest Microsoft, Citrix and VMware versions
  • Various fixes and improvements

You can check which RDA build you are using by clicking on the about (i) button at the top of the RDA window. You will also find the possible parameters there.
Thanks for all the community feedback received. The 2106 version is now available on the website.

Remote Display Analyzer 2007 released

Hi all,

Happy to announce that a new version of Remote Display Analyzer (RDA) has been released: RDA version 2007.

What’s new in Remote Display Analyzer version 2007:

  • RDS GPU policy detection, reminder to configure this setting and easily verify if GPU is leveraged for RDS workloads

  • Multi language OS support for RDS\WVD
  • Enhanced support for Citrix EDT with MTU size detection, MTU discovery detection and available EDT bandwidth detection

  • The Receiver client version is now detected and displayed next to the detected VDA version
  • Citrix Glyph detection support
  • Citrix build to lossless configuration option has been added

  • Support for the latest Windows 10 Builds
  • Support for the latest Citrix VDA (2006) version
  • Support for the latest VMware Horizon (7.12) version
  • Various Fixes and improvements

You can check which RDA build you are using by clicking on the about (i) button at the top of the RDA window. You will also find the possible parameters there.
Thanks for all the community feedback received. The 2007 version is now available on the website.

Connection Experience Indicator for RDS, AVD & W365

(Current version 1.3) (updated 9-3-2022)

I created a tool for RDS, AVD and Windows365 environments that notifies users about changes in the user experience.  It is called the Connection Experience Indicator. This tool does the following:

  • Support users by pointing out issues that affects the user experience
  • Reduce the number of help desk calls related to user experience issues
  • Show notifications about the latency to the virtual desktop. Notify when the latency is good and warn when latency is high or very high
  • Show notifications about the available bandwidth. Notify when the available bandwidth is good and warn when the available bandwidth is weak or poor
  • Integrated in the Windows 10 & 11 notification center
  • Integrated in the taskbar and when you click on the icon a small window will be shown that provides real-time information about the connection to the virtual desktop
  • Single exe (no installation required) can be easily started with login script or other mechanism
  • The tool can be configured with parameters so it can be adjusted to your environment (please find all settings below)
  • Log connection changes in event viewer so they can be used to analyze in, for example, Azure log analytics

When the Connection Experience Indicator starts it will notify the user about the connection to the virtual desktop:

When you click on the icon you will see the client name, the virtual desktop name and real-time information about the connection:

When the latency or available bandwidth is below the default or configured thresholds the user will be notified that the user experience might be affected:

The taskbar icon is changed and when you click on the icon you will see that the connection state has changed:

When users are in areas with poor internet conditions (hotels \ public WiFi, etc), the user gets notified that the user experience is affected:

Clicking on the icon will reveal a very high latency which is causing a reduced experience:

You can also change the window to transparent mode by clicking in the window. This will allow the window to run on top without being intrusive on the screen:

You can also drag the window around and place it somewhere else on the screen.

The Connection Experience Indicator can be configured with parameters so you can adjust it to your own environment and preferences. But please note that you don’t have to configure parameters, if a parameter is not provided it runs with the default values:

Parameter Use case Default value
-pb The poor available bandwidth threshold (Mbps). When this threshold is reached a poor connection notification is shown. 2
-pl The poor latency threshold (ms). When this threshold is reached a poor connection notification is shown. 150
-wb The weak available bandwidth threshold (Mbps). When this threshold is reached a weak connection notification is shown. 5
-wl The weak latency threshold (ms). When this threshold is reached a weak connection notification is shown. 75
-measureinterval The time interval that thresholds are measured and real-time information is updated (in seconds) 5
-shownotifications Enable\Disable if notifications are displayed to the user True
-timetoshownotification The time a notification will be displayed before it disappears (in seconds) 10
-timebetweennotifications The time between notifications, a notification is always displayed when the connection state changes. If the state doesn’t change a notification will be displayed every x period to update the user about the connection state 3600 (1 hour)
-transparent Configure if the window will open in transparent mode by default False

Example:
ExperienceIndicator.exe -pb 5 -wb 10 -pl 175 -wl 100 -transparent true

Logging is automatically enabled and can be disabled by adding the -log false parameter.

The Connection Experience Indicator is provided as community tool for free without warranty of any kind.

Note for (Enterprise) customers that are in need for a supported version:
It’s possible to request a company license for Remote Display Analyzer this also includes support for the Connection Experience Indicator.

Please click here to download the latest version of the Connection Experience Indicator.

Release notes:

1.1 : Initial release
1.2: Fixed an issue that could cause high CPU usage when the session was disconnected or locked, the session state detection has been improved, added support for other (native installed) OS languages, executable is now signed with correct timestamp
1.3: Multiple fixes and improvements, added a new logging feature to submit connection state changes to the eventlog

Remote Display Analyzer 1911 released

Hi all,

Happy to announce that a new version of Remote Display Analyzer (RDA) has been released: RDA version 1911.

What’s new in Remote Display Analyzer version 1911:

  • RDA now supports the latest Windows 10 builds for both RDS and WVD deployments
  • Support for the latest Windows Virtual Desktop (WVD) Infrastructure agent

  • Support for the latest Citrix VDA (1909) version and latest HDX updates
  • RDA will now also show you in real-time if hardware encode is being used. This is handy when you run workloads and want to verify if the video codec is leveraging hardware encoding. See screenshot below:

  • Support for the latest VMware Horizon (7.10) version and latest Blast updates
  • VMware Blast codec switching and the new Blast codec has been integrated (and can be changed on the fly):

  • Integration with click-to-photon: Click-to-photon uses a small device that can measure response times in remote display environments. You can find more information about the click-to-photon device on the GitHub page of Magnar Johnsen. The click-to-photon device is connected from the endpoint to the remote session using comport redirection. The tool running in the remote session generates screen updates and the device at the endpoint calculates the time between the remote screen update and the endpoint device receiving the update. This statistics are reported back in Remote Display Analyzer.

  • Last but not least: RDA build 1911 contains overall improvements and bug fixes

You can check which RDA build you are using by clicking on the about (i) button at the top of the RDA window. You will also find the possible parameters there.
Thanks for all the community feedback received. The 1911 version is now available on the website.

RDP protocol improvements in Windows 10

Intro
As you might know the RDP protocol in Windows 10 consists of different type of codecs (both proprietary and standardized video compression codecs). They belong to a broader set of technologies also known as RemoteFX. There are currently 2 type of codec configurations possible in Windows 10:

  • A combination of different codecs, one optimized for text and one for moving graphics (like video content)
  • The full screen AVC video codec

You can configure them with policies and check which configuration you are using by checking Event ID 162 in the following eventlog location:

Applications and Services Logs -> Microsoft -> Windows -> RemoteDesktopServices-RdpCoreTS -> Operational

  • Initial profile 2 means you are using the codec combination
  • Initial profile 2048 means you are using the full screen AVC codec

Both configurations gives a good out-of-the-box experience with a high level of quality. The full screen AVC codec implementation is pretty neat because they managed to leverage hardware encoders that normally only supports 4:2:0 encoding to reach a 4:4:4 quality level. While 4:2:0 compression is ideal for video content, 4:4:4 quality is needed to make text and still images sharp without blurry side affects. The full screen AVC codec implementation operates best when encoding can be done in hardware (GPU), it can however work with software based encoding (emulated GPU) but that will result in increased CPU utilization. Good to know is that the new HTML5 based web client always leverages the full screen AVC codec implementation.

(v)GPU
You might have heard that RemoteFX vGPU has been deprecated in Server 2019. Times have changed and GPU virtualization technologies have matured making the API intercept based technologies (like RemoteFX vGPU was) a legacy technology.  But no need to get sad about this, because we will get something nice in return: GPU Partitioning or GPU-P for short. It’s still under development but sounds very promising. With this technology multiple virtual machines can leverage the GPU directly (even load balance across multiple GPU’s) and by leveraging the GPU directly Microsoft can move away from the man in the middle role where they needed to maintain the API intercept driver to support new graphic standards. For now we can only leverage the GPU directly by using DDA (GPU pass through) or use GPU virtualization technologies from other vendors.

Windows Virtual Desktop (WVD)
The new GPU-P technology also opens the door for Microsoft to implement this on Azure, which would be a very welcome feature for WVD (the new RDS infrastructure  and multi-session Windows 10 edition hosted on Azure). Hopefully Microsoft will not be supporting the GPU-P technology only in Azure like they do with the new multi-session Windows 10 for WVD edition, this will really isolate this technology preventing broader use cases. I don’t think they will be doing this because they pull away RemoteFX vGPU and should provide an alternative for it.

What happened in a year time with the RDP protocol
With almost every new Windows 10 build the RDP graphics stack is updated, there is not much information you can find about such improvements, but they are certainly there.

While doing some investigation on different Windows 10 builds I noticed the protocol version is matched with the client to enable support for the latest features (both client and servers side). You can find this version numbers in the same eventlog as described in the intro. They look like this:

The client supports version 0xA0400 of the RDP graphics protocol (Build 1709)
The client supports version 0xA0600 of the RDP graphics protocol (Build 1809)

Some of the improvements in the RDP protocol are:

  • Screen regions and content are better classified (to make optimal use of the right codec and compression algorithm)
  • Webcam redirection improvements leveraging H.264
  • Down-scaling for 4K resolutions
  • GPU-P technology (announced) the AVC codec will also benefit from this

Time for a test!
I decided to do a simple test using Remote Display Analyzer to look at the improvements and changes Microsoft made to the RDP protocol in a year time. To do this I used 2 different Windows 10 builds: The 1709 and 1809 build (without updates) this will give more a less an indication of the improvements in a year time frame.
Remote Display Analyzer now also supports WVD, but I did not use it in this test because the current WVD private preview only has its RD gateways in the US and it doesn’t make much sense to let traffic flow across the globe. Will do some more testing with WVD later when it’s GA. To check the differences in the RDP protocol between the Windows 10 builds I performed the following test:

  • A direct RDP connection to both builds
  • Connection over LAN using a Windows 10 1809 client
  • Used the out-of-the-box RDP configuration on both builds
  • Both builds running on the same infrastructure
  • The test consists of playing a short video (not full screen) and scrolling some text. Exactly the same has been done on both builds
  • Please note that this was a manual test and it’s always better to automate such tests (I recommend REX analytics for this)
  • This results come without warranty of any kind and are based on my own observations using my own infrastructure. This is only to give you an indication of the differences I observed while performing this test

The results are below:

On the left you see the results of running the test on the 1709 build and on the right the results of running the exact same test on the 1809 build. I observed the following:

  • The 1809 build used less bandwidth (almost half) while I didn’t perceived a noticeable difference in frame quality. The send frames are more or less identical
  • The reported “available bandwidth detected” is different across the builds, I’m not sure what the reason for this is, the value of this counter looks a bit inconsistent so I’m not relying to much on this one
  • Overall my perceived user experience on the 1809 build was better (more fluid and snappier screen updates)

Conclusion
While you don’t hear much about it, Microsoft still makes improvements in their remote graphics stack and they should be doing this because it’s one of the most critical success factors of the upcoming WVD platform. The 1809 build performed much better on the LAN then the 1709 build, the lower bandwidth is also great news for WAN scenarios. I’m expecting more protocol improvements inline or shortly after the WVD release, I will certainly keep an eye out on this and will write a new blog post when more information is (publicly) available. Thanks for reading!