VMware Blast Extreme Optimization Guide

VMware Horizon 7 version 7.10 and later VMware Horizon Cloud Services

Introduction

Blast Extreme is the next-generation display protocol that was developed by VMware and included with VMware Horizon® 7. Although Blast Extreme is designed to provide an excellent, out-of-the-box configuration for most use cases, some network conditions and applications require additional tuning. This guide provides detailed information on how to configure and optimize Blast Extreme for these situations.

This guide is intended for IT administrators and implementors who want to provide end users with the best possible remote display experience. You should have:

  • A solid understanding of desktop and application virtualization

  • Familiarity with VMware Horizon and VMware vSphere®

  • A good working knowledge of networking and infrastructure, covering topics such as Active Directory, Group Policy, and supporting technologies

Blast Extreme Technology

In order to optimize Blast Extreme, it is important to understand two key configurable components: the transport protocol and display protocol codec.

Transport Protocol

Blast Extreme supports two transport protocols to carry the display traffic between clients and the Horizon infrastructure: TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).

  • TCP, the most common transport protocol on the Internet, has built-in data integrity checking and control to ensure that packets arrive at their intended destination without errors. Although this strategy makes for reliable delivery, the process adds overhead.

  • UDP does not employ such controls and is therefore well suited for applications like streaming video and online gaming, which need to efficiently send large amounts of data to the client but can tolerate occasional errors. Streaming video, for example, may freeze for a moment or pixelate briefly, but otherwise continue playing. Display protocols have similar performance characteristics.

Because of its efficiency and excellent performance, UDP, which is the default transport protocol Blast Extreme uses, should not be changed, with two exceptions. For the following conditions, VMware recommends that you use TCP rather than UDP:

  • Traffic must pass through a UDP-hostile network service or device such as a TCP-based SSL VPN, which re-packages UDP in TCP packets.

  • WAN circuits are experiencing very high latency (250 milliseconds and greater).

For all other network conditions, VMware recommends that you use UDP for the best user experience. And if Blast Extreme encounters problems making its initial connection over UDP, it will automatically switch and use TCP for the session instead.

Display Protocol Codecs

The second key configurable component is the codec used to encode and decode the screen content transferred by Blast Extreme. Blast Extreme supports three codecs: JPG/PNG, H.264, and H.265.

JPG/PNG

As its name implies, the JPG/PNG codec leverages two image formats, JPG and PNG, to encode and decode display content. These formats employ compression to reduce the size of the content before it is transferred across the network.

  • JPG is a lossy compression format. This means that some of the original image data is discarded (lost) as part of the compression process. While the JPG algorithm attempts to remove only redundant data, in practice other data is lost as well. Therefore, images compressed using JPG cannot be decoded and restored to the same quality they had before compression.

  • PNG is a lossless format. This means that display content encoded and compressed using PNG alone can be restored to match the quality of the original content.

Used together, the JPG/PNG codec is ideally suited for typical Windows and Linux applications, including Microsoft Office. It is especially good at reproducing intricate fonts and other screen content with fine details, including still images and low-motion 3D modeling used by design and engineering applications.

JPG/PNG can also be configured to use build-to-lossless mode. In this mode, the codec is able to support applications that require the display protocol to be lossless, ensuring nothing is lost in transmission. However, it is important to note that building-to-lossless increases session bandwidth utilization because more display information is sent across the network. Information on how to enable build-to-lossless mode is covered in the next chapter, How to Configure Blast Extreme.

H.264

Although JPG/PNG is ideal for ensuring still image quality, this capability hinders its ability to efficiently support rapidly moving screen content and motion graphics such as streaming video. Fortunately, Blast Extreme supports the H.264 codec for precisely this type of content. H.264, the most commonly used codec in the world, was designed specifically to support entertainment content and is known for its use in encoding Blu-ray movies. Because H.264 also provides good support for most Windows, Linux, and macOS applications, it is the default Blast Extreme codec option.

However, compared to other codecs, H.264 requires more processing power to perform its encoding and decoding operations. Fortunately, this processing can be offloaded from the CPU to graphics cards (GPU) in the device.

  • On the client, this means near universal H.264 GPU decode support, because nearly all devices with graphics cards manufactured since 2013 have hardware H.264 decode support, including cell phones and most thin clients.

  • On the server side, H.264 encoding can be offloaded to NVIDIA Tesla GPUs in vSphere hosts, freeing the costly CPUs in VMware ESXi™ hosts to support other tasks, which ultimately increases scalability.

HEVC (High Efficiency Video Coding, H.265)

The third Blast Extreme codec option is HEVC. High Efficiency Video Coding, or HEVC for short, is also known as H.265 and is the industry successor to H.264. HEVC provides up to 50 percent better compression with the same quality as H.264. Although using HEVC results in a similar improvement in session bandwidth efficiency, it requires substantially more processing power to encode and decode.

HEVC can also provide higher quality at similar compression ratios as H.264, but again at the cost of more processing power with no bandwidth savings. For this reason, HEVC in Blast Extreme requires that the ESXi hosts supporting the virtual desktops and RDSH servers have NVIDIA Tesla GPUs to offload encoding. HEVC will not work with CPU encoding alone. HEVC also requires clients to have graphics cards with H.265 decode support, but fortunately, as with H.264, most client devices manufactured since 2015 have them.

Codec Options

In addition to the three codecs, Blast Extreme supports several codec options that can be used to help support different use cases and network conditions.

H.264 with High Color Accuracy

If users are experiencing poor text or image clarity in certain applications with H.264 alone, Blast Extreme can be configured to use High Color Accuracy (HCA). HCA disables 4:2:0 chroma subsampling, providing a 4:4:4 sample rate instead. This means the encoder preserves all of the information related to color instead of sacrificing some to increase codec efficiency.

By default, H.264 in Blast Extreme uses a 4:2:0 sample rate, with the 2:0 indicating that only a quarter of the information about image color is included, compared to HCA’s 4:4:4. The 4:2:0 sample rate can result in color “washout” as well as text or image fuzziness when using some applications (for example, CAD) or some color combinations. If users experience any of these issues, HCA can be enabled to improve quality while preserving H.264’s multimedia efficiency.

Note: This additional color information with HCA increases session bandwidth utilization by 5 percent on average. H.264’s 4:4:4 GPU decoding is also not supported by many GPUs. This means the client resorts to CPU decoding, which can result in degraded performance on weak client hardware, particularly when using high-resolution monitors.

Encoder Switcher

New in Horizon 7.10 is the ability to configure Blast Extreme to dynamically switch between the JPG/PNG and H.264 codecs, depending on screen content type. In this mode, under typical application conditions, Blast Extreme uses the VMware JPG/PNG codec, which is optimized for text and still image quality.

But when rapidly changing screen content is detected, Blast Extreme automatically switches to multimedia optimized H.264. This capability not only provides a better user experience but also reduces the resources required for encoding overall. This provides increased scalability and better performance, especially in CPU-constrained ESXi environments without NVIDIA GPUs.

The encoder switcher switches the codec for an entire screen, not just a portion of a screen (screen region). In systems with multiple monitors, the encoder switcher will use the best codec for each screen. This can result in H.264 being used for one display and JPG/PNG being used for the other simultaneously. The encoder switcher also supports HCA for H.264, enabling HCA to be used for use cases involving multimedia content that exhibits color problems or lack of clarity with H.264 alone.

Offloading H.264 and H.264 with High Color Accuracy to an NVIDIA GPU

Like HEVC, the encoding for H.264 and H.264 with HCA can be offloaded to NVIDIA GPUs installed in the ESXi hosts. This not only provides a genuine hardware GPU to accelerate system and application graphics, it also frees the virtual CPUs for other tasks, helping to improve user experience and system scalability.

Offloading the display protocol encoding is enabled by default but can also be disabled if the GPUs must be dedicated to supporting other tasks. Instructions for configuring all of the Blast Extreme codec options are provided in the next chapter, How to Configure Blast Extreme.

Ideal Applications for Each Codec

The following table provides guidance on which codecs to use for various types of applications. It also tells whether a GPU is required on the client or server.

Table 1: Best Codecs to Use for Various Applications 
Codec Ideal Applications Supports
GPU Offload?
NVIDIA GPU Required?

JPG/PNG

Typical productivity applications such as Microsoft Office, plus those requiring support for fine details and higher still image quality.

No

No

PNG (Build-to-Lossless)

Applications requiring lossless reproduction of original screen content such as non-diagnostic medical imaging.

No

No

H.264

Multimedia applications such as streaming video, video games, and productivity applications with rapidly changing content.

Yes

No

H.264 with
HCA

H.264 applications that require higher color quality or that exhibit lack of clarity with H.264 alone.

Yes

No

Encoder Switcher:
JPG/PNG and H.264

Same applications as for the JPG/PNG codec and the H.264 codec.

No

No

Encoder Switcher:
JPG/PNG and H.264 with HCA

Same applications as for the JPG/PNG codec and the H.264 with HCA codec.

Note: Requires Horizon Agent 7.10 and VMware Horizon® Client 5.2 or later.

No

No

High Efficiency
Video Coding (HEVC)

Applications that require the same quality as H.264 with less bandwidth utilization or that require higher quality with similar bandwidth utilization as H.264.

N/A

Yes

NVIDIA Encoded H.264
(H.264 offloaded to GPU)

Same applications that are ideal for H.264 while offloading the encoding from the ESXi host CPUs to an NVIDIA GPU.

N/A

Yes

NVIDIA H.264 with HCA

Same applications that are ideal for H.264 with HCA while offloading the encoding from the ESXi host CPUs to an NVIDIA GPU.

N/A

Yes

How to Configure Blast Extreme

To use Blast Extreme, the virtual desktop pool or RDSH server farm must first be configured to use the protocol as the default or be configured to allow users to choose it. For information about configuring this setting, see Setting Up Virtual Desktops in Horizon Console, Setting Up Published Desktops and Applications in Horizon Console, and Administering Cloud Pod Architecture in Horizon 7, available from the VMware Horizon 7 Documentation site.

Configuration Settings for End Users

If users are permitted by the pool configuration to select a display protocol, Blast Extreme must be selected for each connection’s properties using the Horizon Client.

Choosing Blast Extreme in the Horizon Client Options

Figure 1: Choosing Blast Extreme in the Horizon Client Options

Horizon Client is also where users can select a codec (H.264, HEVC, or JPG/PNG) and configure H.264 to use High Color Accuracy. To select the JPG/PNG codec, the user simply needs to deselect both H.264 and HEVC.

Decoding in the Horizon Client Blast Options

Figure 2: Selecting H.264 Decoding in the Horizon Client Blast Options

No client settings are required to enable NVIDIA offload of H.264 and H.264 with HCA. Unless disabled by an administrator, virtual desktops and RDSH servers with NVIDIA GPUs will automatically use the NVIDIA H.264 encoder.

Configuration Settings for Administrators

All of the codec options and Blast Extreme settings can be controlled by administrators. The settings are configured in the Windows Registry of the Windows virtual desktops and Microsoft RDSH servers. There are several ways that these settings can be applied.

One of the easiest methods is to use the Windows Group Policy template provided with each release of VMware Horizon. The Blast Extreme template is named: vdm_blast.admx and can be found in the VMware-Horizon-Extras-Bundle-xxx.zip file, with xxx indicating the corresponding version of Horizon.

Group Policy Settings for Blast Extreme

Figure 3: Group Policy Settings for Blast Extreme

For more information about the specific Group Policy settings and how to import the ADMX template, see VMware Blast Policy Settings in Configuring Remote Desktop Features in Horizon 7.

While most of the Blast Extreme settings are included in the ADMX template, some are not.  All configuration settings can be made directly in the Windows Registry of each virtual desktop and RDSH server using your preferred tool for making such registry changes. VMware recommends using VMware Dynamic Environment Manager™ (formerly known as User Environment Manager). Options can also be set in the registry of the templates used to deploy pools of desktops and farms of RDSH servers. This ensures that all systems deployed from these templates are configured properly for Blast Extreme.

The registry location to configure Blast Extreme is:

HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.\VMware Blast\Config

Each setting is a string value (REG_SZ). The following table documents the key codec and transport settings. Most settings make the option available to be used (set to 1) or not (set to 0). In other words, the settings do not directly enable the feature, such as forcing all connections to use H.264. However, this example can be achieved by disabling support for the H.264 codec’s competing options: JPG/PNG and HEVC.

Note: for all settings in the following table, if the key is set to 1 support is enabled; if it is set to 0 support is disabled.

Table 2: Codec and Transport Registry Settings 
Setting Registry Name and Description Default

H.264 Codec

EncoderH264Enabled – Enables or disables support for H.264.

1 (enabled)

H.264
High Color Accuracy

EncoderH264YUV444 – Enables or disables support for High Color Accuracy for H.264.

1

HEVC (H.265) Codec

EncoderHEVCEnabled – Enables or disables support for the HEVC codec (H.265).

1

JPG/PNG Codec

EncoderAdaptiveEnabled – Enables or disables support for the VMware JPG/PNG codec.

1

Build-to-Lossless
Mode (PNG)

EncoderBuildToPNG – Enables or disables build-to-lossless mode for the JPG/PNG codec.

0 (disabled)

Encoder Switcher

EncoderSwitchEnabled – Enables or disables automatic switching between H.264 and JPG/PNG based on screen content.

0

NVIDIA H.264
Offload

EncoderNvidiaH264Enabled – Enables or disables support for offloading H.264 encoding to NVIDIA GPUs installed in the ESXi hosts.

1

NVIDIA H.265
Offload

EncoderNvidiaHEVCEnabled – Enables or disables support for offloading HEVC encoding to NVIDIA GPUs installed in the ESXi hosts.

1

UDP Transport

UdpEnabled – Enables or disables support for the UDP transport protocol.

1

Audio Support

AudioEnabled – Enables or disables audio support.

1

How to Verify the Configuration

If the end user can be interrupted, or if you are performing configuration testing, the easiest way to see the running session configuration is to use the Horizon Performance Tracker if it is installed in the VM. The Horizon Performance Tracker is an option that can be selected during the Horizon Agent installation on the virtual desktop or RDSH server.

In the following screenshot, the Horizon Performance Tracker is reporting that the Blast session is using UDP and the NVIDIA HEVC codec. Audio is also enabled, but is not currently being used. The display protocol is transferring 6 frames per second, and estimates of network bandwidth and latency are provided.

Horizon Performance Tracker Reports Details of a Blast Extreme Session

Figure 4: Horizon Performance Tracker Reports Details of a Blast Extreme Session

If the Horizon Performance Tracker cannot be used, the most effective way to verify the Blast Extreme configuration is to examine the log files on the virtual desktops and RDSH servers. The log files are located in:

<SystemDrive>:\ProgramData\VMware\VMware Blast\

To determine whether the session is using UDP or TCP, review the latest entries in the Blast-Worker-SessionId<#>.log file, and look for the entries such as those shown in the following table

Table 3: Log Entries for Determining the Transport Protocol Used
Codec / Codec Option Log File Entry

UDP

[VVCSessionManager] BlastSocketDataSockActivatedCb: Data Connection:UDP

TCP

[VVCSessionManager] BlastSocketDataSockActivatedCb: Data Connection:TCP

The running codec and codec options can also be identified by examining the latest entries in the Blast-Worker-SessionId<#>.log file, as detailed in the following table.

Table 4: Log Entries for Determining the Codec Used 
Codec / Codec Option Logfile Entry

JPG/PNG
(Adaptive Codec)

VNCRegionEncoder_Create: region encoder adaptive. Screen 0/1 @ Resolution: 3840 x 2160.


(Build-to-Lossless)

MainApp::OnEncoderConfigChanged: Encoder config changed: EncoderBuildToPNG = 1.

H.264

VNCRegionEncoder_Create: region encoder h264 4:2:0. Screen 0/1 @ Resolution: 1920 x 1080.

H.264 with
High Color Accuracy

VNCRegionEncoder_Create: region encoder h264 4:4:4. Screen 0/1 @ Resolution: 3840 x 2160.

Encoder Switcher
(JPG/PNG and H.264)

VNCRegionEncoder_Create: region encoder switch. Screen 0/1 @ Resolution: 3840 x 2160.

Encoder Switcher
in Operation

SwitchEnc: 1 Screen 0 switching to h264 4:2:0 encoder.

SwitchEnc: 1 Screen 0 switching to h264 4:4:4 encoder.

SwitchEnc: 1 Screen 0 switching to adaptive encoder.

HEVC

(requires NVIDIA GPU)

VNCEncodeRegionNvEncGetNvEncHandle: region encoder NVIDIA NvEnc HEVC using YUV 4:2:0 color space.

NVIDIA Encoded H.264

VNCEncodeRegionNvEncGetNvEncHandle: region encoder NVIDIA NvEnc H264 using YUV 4:2:0 color space.

NVIDIA H.264 with
High Color Accuracy

VNCEncodeRegionNvEncGetNvEncHandle: NvEnc reports H264 YUV 4:4:4 mode is supported.

 

Optimizing Blast Extreme

One of the goals for Blast Extreme is to provide an excellent out-of-the-box configuration for most local area network (LAN) use cases, negating the need to perform complex tuning or learn hundreds of policy settings. However, some use cases and situations require additional tuning, especially for wide area networks (WANs).

  • VM sizing and optimization – Before tuning Blast Extreme, it is critical to properly size and optimize the virtual desktops, Microsoft RDSH servers, and supporting infrastructure. When helping customers troubleshoot poorly performing infrastructures, VMware Professional Services routinely finds that the virtual desktops have not been sized properly and are consequently running out of critical resources such as virtual CPUs.

  • ESXi host sizing and resource allocation – We also frequently discover that the underlying ESXi hosts are overutilized and are exhibiting clear indicators of problems impacting user experience such as high CPU Ready times. Therefore, it is imperative to start by verifying that the VMs and virtual infrastructure are sized properly and have sufficient resources and available capacity. 

  • Multiple monitors and screen size and resolution – Another important aspect to consider is the size of the monitor (or monitors) to be used, and their screen resolutions. Monitors with higher screen resolutions, and use cases with multiple monitors, require more system resources, especially CPU and network bandwidth. If you need to support use cases with more than two displays of any resolution, NVIDIA GPUs should be installed in the ESXi hosts.  

  • Operating system optimization – The next component to optimize is the Windows operating system. Windows desktop and server operating systems are not designed for efficient virtualization. By default, they are expected to be installed on dedicated, physical hardware, and not separated from their intended users by networks and display protocols.

    Fortunately, VMware has developed a free tool to optimize Windows desktops and servers. It disables or tunes the elements that unnecessarily waste system resources when used in shared, virtual environments. The VMware Operating System Optimization Tool can be downloaded from  https://flings.vmware.com/vmware-os-optimization-tool and includes optimization templates for both Windows desktop and server operating systems.

Once infrastructure resources and capacity have been verified, and the virtual desktops and servers have been optimized, the performance of the display protocol can be tuned as necessary. 

The following registry settings have been determined through extensive testing to provide the biggest impact on system resources and user experience. Like the codec and transport options, they can be set using Group Policy or using your preferred method of making registry changes.

Table 5: Optimization Settings 
Setting Registry Name and Description Default

Max Session Bandwidth

MaxBandwidthKbps – The maximum bandwidth used by all services (display, keyboard and mouse, file transfer, clipboard, and so on), in kilobits per second.

1000000

Minimum Session Bandwidth

MinBandwidthKbps – The minimum bandwidth used by all services, in kilobits per second.

256

Max Session Bandwidth kbps per Megapixel Slope

MaxBandwidthKbpsPerMegaPixelSlope – The maximum bandwidth used to transfer screen contents per megapixel remoted, in kilobits per second.

6200

Lowest Starting H.264 Quality

H264maxQP – The lowest quality that H.264 will start with before building the screen to higher quality. The range is 1‑36, where 1 is the highest quality.

36

Max Frames per Second

EncoderMaxFPS – The maximum frames per second that Blast Extreme will display.

30

Audio Support

AudioEnabled – Enables or disables Audio support.

0 – disabled
1 – enabled

1

Client-Drive Redirection

FileTransferState

0 – disable upload and download
1 – enable upload and download
2 – enable file upload only
3 – enable file download only

1

Clipboard

ClipboardState

0 – disabled in both directions
1 – enabled in both directions
2 – enabled client to server only
3 – enabled server to client only

2

Tuning Blast Extreme for Wide Area Networks

The most common reason to tune all display protocols is to enable them to support wide area networks (WANs). WANs typically have just a fraction of the bandwidth that is available on local area networks (LANs). Because WANs involve long-haul circuits or even satellite connections, they also impose latency (delay), extending how long it takes packets to travel from sender to receiver. Some even suffer from packet loss, where packets never arrive at the destination at all! Fortunately, Blast Extreme can be tuned to handle all of these situations.

It is important to recognize, however, that no display protocol can provide a perfect LAN experience over typical WANs. Some tradeoff in system configuration, supportable applications, and user experience is to be expected. Remember that you are separating the user and their keyboard, monitor, and mouse from the system they are actually using. It is remarkable that this setup can be made to work over a WAN at all!

The following tuning recommendations apply to all WAN conditions. These optimizations directly reduce both CPU and network bandwidth. Reducing network bandwidth is key to enabling support for all adverse network conditions.

  • Optimize the virtual desktops and RDSH servers using the VMware Operating System Optimization Tool.
  • Use a single monitor with the lowest screen resolution supported by the use case. This will reduce both network bandwidth and CPU utilization. Depending on application workload, 4K displays can use more than double the resources as 1080P.
  • Use the encoder switcher to dynamically switch between the JPG/PNG and H.264 codecs unless the applications and screen content to be supported clearly favor the capabilities of one codec over the others. The encoder switcher will ensure that the most efficient codec is dynamically used based on screen content.
  • Do not use client-drive redirection unless absolutely required. Set FileTransferState to 0 to disable client-drive redirection.
  • Use Blast Extreme clipboard settings to reduce or block using the clipboard. Set ClipboardState to 0 to disable clipboard support.
  • Disable audio unless absolutely required. Set AudioEnabled to 0 to disable audio support.
  • Use Group Policy to prohibit use of desktop wallpaper. Desktop wallpaper unnecessarily expends both CPU resources to encode and network bandwidth to transfer. Use of a solid color with no image or pattern is recommended.
  • Use Adobe Flash redirection if extensive use of Adobe Flash must be supported. Flash redirection causes the client to download and execute Flash content instead of rendering it in the virtual desktop and sending it across the WAN. See Configuring Flash Redirection in Configuring Remote Desktop Features in Horizon 7.
  • Use HTML5 multimedia redirection if content such as YouTube must be supported. Like Adobe Flash redirection, HTML5 multimedia redirection causes this content to be downloaded and rendered by the client instead of the virtual desktop. See Configuring HTML5 Multimedia Redirection in Configuring Remote Desktop Features in Horizon 7.
  • Unless the JPG/PNG codec will be used exclusively, set H264maxQP (the lowest starting H.264 quality) to 28. This will force H.264 to start at higher quality and prevent it from expending bandwidth to send initial low-quality screens.
  • What about frame rate? After comprehensive testing, we have determined that limiting frame rate provides little to no reduction in bandwidth or CPU utilization for typical applications and use cases. Typical Microsoft Office use, for example, results in a very low display protocol frame rate. And limiting frame rate for multimedia use cases such as streaming video simply impairs quality and user experience. It is better to leverage HTML5 multimedia redirection to optimize such use cases.

Additional Optimizations for Low Bandwidth

The following settings are specifically for handling low-bandwidth conditions:

  • In testing, Blast Extreme has been measured using essentially the same amount of bandwidth with both TCP and UDP. Therefore, Blast Extreme can typically be left using its default setting of UDP unless the traffic must pass through a UDP-hostile network device such as a TCP-based SSL VPN.

  • Set MinBandwidthKbps (minimum session bandwidth) to 128 (the lowest currently supported setting).

  • Set MaxBandwidthKbps (maximum session bandwidth) and MaxBandwidthKbpsPerMegaPixelSlope (maximum display bandwidth) to the maximum desired bandwidth utilization per user.

Note that these minimum and maximum bandwidth settings are best effort, not hard limits. Blast Extreme will always resort to using more bandwidth, if necessary, to prevent the session from crashing.

Additional Optimizations for High Latency

Tuning to handle high latency starts with reducing bandwidth. The fewer packets the display protocol has to transfer across the network, the fewer that will be affected by high latency.

  • Set MinBandwidthKbps (minimum session bandwidth) to 128 (the lowest supported setting).

  • Set MaxBandwidthKbps (maximum session bandwidth) and MaxBandwidthKbpsPerMegaPixelSlope (maximum display bandwidth) to either the circuit speed or the maximum desired bandwidth utilization per user.

    The former option allows Blast Extreme to “burst” and use more bandwidth when necessary, while the latter attempts to more strictly control it. Keep in mind, however, that Blast Extreme will always resort to using more bandwidth, if necessary, to prevent the session from crashing.

  • Use TCP if latency is greater than 250 milliseconds. In testing, TCP has been shown to handle high latency better than UDP.

Additional Optimizations for Packet Loss

Like high latency, tuning for packet loss starts with reducing bandwidth. The fewer packets the display protocol puts on the network, the fewer that will be affected by packet loss.

  • Fix the network if packet loss is greater than 5 percent.

    Although Blast Extreme has been able to provide a functional desktop and application experience when packet loss is in excess of 20 percent, it is with noticeable degradation to user experience. Work with network partners and circuit providers to fix the network.

  • Use UDP unless the traffic must pass through a UDP-hostile network device such as a TCP-based SSL VPN. In testing, UDP has been shown to use less bandwidth than TCP in most situations.

  • Set MinBandwidthKbps (minimum session bandwidth) to 128 (the lowest supported setting).

  • Set MaxBandwidthKbps (maximum session bandwidth) and MaxBandwidthKbpsPerMegaPixelSlope (maximum display bandwidth) to either the circuit speed or the maximum desired bandwidth utilization per user.

    The former option allows Blast to “burst” and use more bandwidth when necessary, while the latter attempts to more strictly control it. Keep in mind, however, that Blast Extreme will always resort to using more bandwidth, if necessary, to prevent the session from crashing.

Note that while these optimizations are typically used with WANs, they can also be used on the LAN if the Blast Extreme default settings use more bandwidth or other system resources than desired.

Optimizing for Quality

The other common reason to tune display protocols is to increase quality. By design, Blast Extreme provides an excellent out-of-the-box user experience for typical applications and use cases on LANs. However, some applications and use cases require higher quality. Fortunately, these can typically be supported with additional resources and special tuning.

It is extremely important to recognize that optimizing for higher quality nearly always results in more system resources being used, not less. Except under very unique conditions, it is not possible to increase quality while limiting system resources.

The following tuning options are recommended to increase display protocol quality for all use cases and applications. Start with these recommendations before moving on to more specialized settings.

  • Do not starve the virtual desktops and RDSH servers of resources.

    Demanding graphical applications commonly require more than two virtual CPUs, even with hardware GPU support.

  • Ensure that ESXi hosts have sufficient resources, especially CPU. Monitor for high CPU Ready times (which are evidence of processor contention).
  • Deploy virtual desktops and RDSH servers on fast virtual disks (all-flash or flash-optimized).
  • Although RAM is rarely the bottleneck, monitor RAM to ensure it is not being over utilized by applications.
  • Use the encoder switcher to dynamically switch between the JPG/PNG and H.264 codecs unless the applications and screen content to be supported clearly favor the capabilities of one codec over the others. The encoder switcher ensures that the most efficient codec is dynamically used based on screen content.
  • Do not attempt to support high-quality use cases over a WAN or poorly functioning network.  Except in unique situations, optimizing quality increases bandwidth utilization, whereas optimizations for WANs require limiting quality to function over poor network conditions.
    • Even when there might be sufficient bandwidth, such as for a home-based user with a high-speed cable network connection, be certain to validate end-to-end bandwidth, latency, and packet loss before deciding if the use case can be supported.
    • Note that this guidance does not include Metropolitan Area Networks (MANs) or similar “LANs over long distance,” which typically have as much, if not more, bandwidth than common user LANs.
  • Optimize the Windows operating system in virtual desktops and RDSH servers using the VMware Operating System Optimization Tool, but recognize that some optimizations applied by default might reduce quality or disable features required to support higher-quality applications.

When to Leverage NVIDIA GPUs

Use NVIDIA Tesla or newer GPUs to:

  • Provide hardware graphics acceleration while offloading H.264 and H.265 encoding.

  • Support use cases with more than two monitors of any resolution.

Additional Optimizations to Increase Still Image, 3D Design, and Font Quality

These suggestions include codec and bandwidth settings:

  • Use JPG/PNG if supporting quality still images or complex fonts is the primary use case and no multimedia content needs to be supported such as streaming video.

  • Enable build-to-lossless mode if supporting a use case such as non-diagnostic medical imaging, which requires the display to be transferred without loss of quality. Note that this increases bandwidth and virtual desktop CPU utilization.

  • Enable High Color Accuracy (HCA) for H.264 if supporting an H.264 preferred use case that has exhibited display fuzziness, lack of font or image sharpness, or problems with color reproduction.

  • Consider using HCA for H.264 with the encoder switcher to dynamically leverage both JPG/PNG and the highest-quality H.264 configuration.

    Note: Like H.264, H.264 with HCA encoding can also be offloaded to NVIDIA GPUs.

  • Experiment with increasing MaxBandwidthKbpsPerMegaPixelSlope.

    • The default setting of 6200 is geared towards efficiently supporting a medium-quality use case.

    • Increasing this setting helps improve display quality at the expense of higher bandwidth utilization. Although it has more of an impact on multimedia and video gaming, experiment with different values, up to the maximum 100,000 to identify the best quality at an acceptable level of bandwidth utilization.

Additional Optimizations to Support High-End Multimedia and Video Gaming.

In addition to leveraging all of the optimizations described in the preceding section for still images, 3D design, and font quality, try the following suggestions:

  • Use NVIDIA GPUs. Use cases of this caliber nearly always require hardware GPUs to provide the necessary graphics capabilities.

    Note: NVIDIA GPUs will also offload H.264 and HEVC encoding.

  • Increase virtual desktop resources. More than 8 virtual CPUs might be required to support the most demanding use cases, especially video gaming, even with NVIDIA hardware GPUs.

  • Consider using the HEVC codec. HEVC supports higher-quality imaging with less bandwidth utilization than H.264. HEVC requires NVIDIA GPUs to be installed in the ESXi hosts to offload encoding. HEVC also requires a client device capable of HEVC GPU decoding.

  • Increase the frame rate. By default, Blast Extreme is capped at 30 frames per second (FPS). You can increase the rate, up to 60 FPS, by using the Windows Registry setting EncoderMaxFPS. In testing, video gaming workloads have been routinely benchmarked performing at 60 FPS.

 

Summary and Additional Resources

Blast Extreme was carefully designed to provide an excellent out-of-the-box experience, with no additional configuration required in almost all cases. For extreme low-bandwidth, high-latency, or high-performance uses cases, however, Blast Extreme comes equipped with several tuning options, as described in this guide.

Additional Resources

Blast Extreme Display Protocol in Horizon 7 Technical Guide

VMware Horizon 7 Documentation

VMware Horizon Client documentation

Configuring Remote Desktop Features in Horizon 7

Release Notes for Horizon 7.10

VMware Workspace ONE and VMware Horizon Reference Architecture

Deploying Hardware-Accelerated Graphics with View Virtual Desktops

Using Horizon Performance Tracker

VMware OS Optimization Tool

VMware Windows Operating System Optimization Tool Guide

About the Author and Contributors

Mark Ewert has been working in IT for over 25 years, with nearly two decades’ hands-on experience with VMware technologies. Specializing in IT architecture on every scale, Mark has designed hundreds of successful solutions for organizations of all sizes and verticals. Since first joining VMware in 2008, Mark has focused on helping customers succeed with their end-user computing endeavors. One of his key roles as Senior Product Line Manager on the VMware Desktop Product Management team is leading the effort to benchmark and develop comprehensive guidance for VMware Blast Extreme. 

The author wishes to thank the following people for their contributions to this paper and the growing knowledge of how to optimize VMware Blast Extreme:

  • Anirban Chakraborty, Senior Product Line Manager, Desktop Product Management, VMware
  • Kiran Rao, Senior Director, Desktop Product Management, VMware
  • Sandro Moiron, Staff Engineer, Virtual Workspace R&D, VMware
  • Sean Samenfeld-Specht, Director of Engineering, Virtual Workspace R&D, VMWare
  • Chris Halstead, EUC Staff Architect, EUC Mobile Marketing, VMware
  • Hilko Lantinga , Staff EUC Architect, Desktop Technical Marketing, VMware
  • Valeria Pressler, Staff Engineer, Virtual Workspace R&D, VMware
  • Mike Oliver, Staff Engineer, Virtual Workspace R&D, VMware
  • Jim Yanik, Senior Manager, EUC Technical Marketing, Desktop Technical Marketing, VMware

 

To comment on this paper, contact VMware End-User-Computing Technical Marketing at euc_tech_content_feedback@vmware.com.