Calista Technologies was acquired by Microsoft in January 2008. The technology was soon after merged and renamed RemoteFX. Now, with Windows Server 2008 R2 with Service Pack 1 (SP1), it introduces a set of end-user experience enhancements for Remote Desktop Protocol (RDP) that enable a rich desktop environment within the corporate network.
RemoteFX describes a set of RDP technologies – most prominently graphics virtualization and the use of advanced codes – that are being added to Windows Server 2008 R2 Service Pack 1. These technologies are based on the IP that Microsoft acquired and continued to develop since acquiring Calista Technologies.
RemoteFX is a technology that allows you to virtualize the Graphical Processing Unit (GPU) on the server side and deliver next-generation rich media and 3D user experiences for VDI. Hyper-V is the first hypervisor in the industry to support true multi-user GPU virtualization for VDI deployments. RemoteFX enables new low cost ultra-thin client devices to enter the market. Together, these technologies will drive down the end-point cost and reduce endpoint power consumption to as little as a few watts.
RemoteFX does this via a technique known as host-based rendering, which means the entire final composited screen image is rendered on the remote host and then compressed and sent down to the client (in effect this moves more computing into the datacenter and lessens the importance on specific client devices or client specs).
GPU vendors have already announced their active support for Remote FX, and thin client and system-on-a-chip vendors are showing their products that support RemoteFX. Many hardware and software companies have engaged with Microsoft as RemoteFX partners with the goal to build a formidable ecosystem of first-class user experience solutions: AMD, AppliedMicro, Citrix, Cloudium Systems, Dell, DevonIT, HP, LG, Nvidia, Quest, Riverbed, Texas Instruments, ThinLinx, Via, Wondermedia, Wyse and others.
Traditionally, graphics remoting protocols like RDP have approached remoting in a client-centric way. These protocols intercept graphics on the host device and then efficiently forward the intercepted graphics instructions to the client device. This style of remoting is client-centric because the architecture relies heavily on the rendering capabilities of the client software and hardware. If you have a powerful client device with a rich software stack and your host has all the right graphics intercept points, you can have a great user experience over a relatively low-bandwidth connection with a client-centric graphics solution. But, if you have a less complex client device and/or are missing some important graphics intercept points on the host, client-centric remoting will result in gaps in the experience, such as choppy video or missing graphics. Client-centric remoting originated when there was limited bandwidth from the datacenter to the end-user desktop.
Today, bandwidth is less expensive and in many places widely available. Today’s modern Windows desktop includes rich media and 3D graphics content. Additionally, a wide array of graphics types is now relevant to Windows users. These changing conditions call for the addition of a new model that can support all graphics types, including 3D, by sending highly compressed bitmaps to the endpoint device in an adaptive manner.
You can ensure a consistent end-user experience for a wide array of devices if you follow the VDI model and enable movement of a large portion of the client software and hardware into the datacenter. With host-centric remoting, all the graphics can be intercepted on the host at a very low layer in the software stack. All graphics are rendered on the host into a single frame buffer (a temporary holding station for graphical updates) that represents the end-user display. Changes to the frame buffer are sent to the client at a frame rate that dynamically adapts to network conditions and the client’s ability to consume the changes. The changes are sent to the client endpoint as highly compressed bitmaps by using an encoding scheme optimized for Windows desktop content. The basic graphics requirement for the client endpoint is that it supports the ability to decode and display the highly compressed bitmaps that it receives from the host. At a minimum, the client needs the decoder counterpart to the encoder that was used on the host as well as a basic graphics display capability.
What does RemoteFX do?
Microsoft RemoteFX enables the delivery of a full Windows user experience to a range of client devices including rich clients, thin clients, and ultrathin clients. RemoteFX delivers a rich user experience for Virtual Desktop Infrastructure (VDI) by providing a 3D virtual adapter, intelligent codecs, and the ability to redirect USB devices in virtual machines. RemoteFX is integrated with the RDP protocol, which enables shared encryption, authentication, management, and device support. RemoteFX also delivers a rich user experience for session-based desktops and RemoteApp programs to a broad range of client devices.
RemoteFX can function independently from specific graphics stacks and supports any screen content, including today’s most advanced applications and rich content (including Silverlight and Adobe Flash), ensuring that end users maintain a rich, local-like desktop experience even in a virtualized thin-client environment. RemoteFX also adds mainstream USB device support to virtual desktop computing, including support for USB drives, cameras and PDAs connected to the client device. RemoteFX also provides a platform for hardware and software partners to enhance RemoteFX capabilities in a variety of possible host, client and network configurations.
Microsoft designed RemoteFX to be flexible, allowing a combination of CPU, GPU, and custom chip-based encoding and decoding. Any combination of host and client encoders and decoders are inter-compatible, and there’s absolutely no difference on the network between the different methods of encoding or decoding.
Hardware and software requirements
To use RemoteFX, the virtualization server must be running Windows Server 2008 R2 with SP1, the virtual machine must be running Windows 7 Enterprise with SP1 or Windows 7 Ultimate with SP1, and the remote client computer must be running either Windows Server 2008 R2 with SP1 or Windows 7 with SP1. To connect to the virtual machine, the remote client computer requires an updated version of Remote Desktop Services (included in the service pack for all editions of Windows 7).
There are several hardware requirements that must be met when you deploy a RemoteFX server:
SLAT-enabled processor – The processor in the RemoteFX server must support Second-Level Address Translation (SLAT). In virtualization scenarios, hardware-based SLAT support improves performance. On Intel processors, this is called Extended Page Tables (EPT), and on AMD processors, it is called Nested Page Tables (NPT).
GPU – At least one graphics processing unit (GPU) is required on the RemoteFX server. The GPU driver (such as Nvidia drivers version 195.62 and above, and ATI driver versions 8.720 and above, HP, Dell and others) must support DirectX 9.0c and DirectX 10.0. If more than one GPU is installed in the RemoteFX server, the GPUs must be identical. The GPU must have sufficient dedicated video memory that is separate from system memory. To use Live Migration, the source and destination RemoteFX servers must have the same GPU installed. As the maximum monitors and resolutions are increased for each RemoteFX-enabled virtual machine, the amount of required video memory also increases. The GPUs in the server must have sufficient video memory for all virtual machines that are turned on at the same time. Windows Server 2008 R2 with SP1 has been tested for up to 12 virtual machines per GPU, for a total of 24 virtual machines on two physical GPUs, providing the necessary dedicated video memory.
If you are using RemoteFX on an RD Session Host server, the processor on the RD Session Host server must support Streaming SIMD Extensions 2 (SSE2). The RemoteFX encoder is optional server hardware, and it can be installed for additional scalability on the RemoteFX server. The hardware encoder card must be installed in a PCI Express x4 slot or greater. For the RemoteFX for RD Session Host scenario, GPUs are not required.
RemoteFX encoder – The RemoteFX encoder is optional and can be installed for additional scalability on the Microsoft RemoteFX server.
Hardware Considerations for RemoteFX
Configure a RemoteFX 3D Video Adapter
What functionality does RemoteFX provide?
With RemoteFX, users of virtual desktops and applications can watch full-motion video, enjoy animations built with the Microsoft Silverlight browser plug-in, and run 3-D applications—all through a standard Remote Desktop Services connection.
The new functionality that is provided by RemoteFX is described in the following sections:
Host side rendering – Host side rendering allows graphics to be rendered on the host device instead of on the client device. This enables support for all graphics types by sending highly compressed bitmap images to the endpoint device in an adaptive manner. This also allows the applications to run at full speed on the host computer by taking advantage of the GPU and the CPU, which provides an experience that is similar to a local computer.
GPU Virtualization – GPU Virtualization is a technology that exposes a virtual graphics device to a virtual machine. RemoteFX exposes a WDDM driver with the virtual desktop, and it allows multiple virtual desktops to share a single GPU on a Hyper-V server. GPU Virtualization in RemoteFX enables end users to run graphical applications on a virtual machine. It also enables administrators to share physical graphics devices across multiple knowledge workers with virtual machines running on a Hyper-V server.
Intelligent Screen Capture – Intelligent Screen Capture is responsible for checking screen content changes between frames and transmitting the changed bits for encoding. Intelligent Screen Capture tracks network speed and then dynamically adjusts according to the available bandwidth. Intelligent Screen Capture understands the network capability between the client and host devices with regards to rendering and compression. The virtual GPU renders the applications, and Intelligent Screen Capture understands which part of the screen has changed and then compresses and transmits those changes. If the network connection is degraded on the client device, Intelligent Screen Capture sends fewer frames across the Internet to avoid network congestion. Intelligent Screen Capture is designed to support fast networks, in which case it can send more frames to ensure a good user experience.
RemoteFX Encoder – The RemoteFX Encoder allows encoding on the processor, on the GPU, or on dedicated hardware. After the screen data is compressed, it sends the data to the virtual desktop, which transfers the bitmaps by using Remote Desktop Connection (RDC) client computers. In computers where the processors are consistently busy, the dedicated hardware ensures that the user experience is not affected.
RemoteFX Decoder – The RemoteFX Decoder decodes bitmaps that have transferred from the virtual desktop to the client computer. RemoteFX Decoder decodes the bitmaps on the client computer by using software in the GPU or processor, or by using a hardware decoder. The RemoteFX Decoder enables low cost, easily manageable client devices. The flexibility to use the processor, GPU, or a hardware decoder helps provide a RemoteFX experience to a wide variety of client devices ranging from low complexity devices to rich clients.
RemoteFX for Remote Desktop Session Host – RemoteFX enables access to the RD Session Host server from rich clients, thin clients, and ultrathin clients. It also ensures lower bandwidth usage as compared to Windows Server 2008 R2 when transferring rich graphics applications.
RemoteFX USB Redirection – RemoteFX USB Redirection allows many devices to be redirected to an RD Virtualization Host server at the USB level. Advantages of this solution include that no device drivers are required on the client computer, and a universal interface is provided that works with any USB device on any platform where RemoteFX USB Redirection is supported. This solution redirects many types of devices, including audio devices, storage devices, human interface devices, all-in-one printers, and scanners.
Which editions include RemoteFX?
RemoteFX is available in the following editions of Windows Server 2008 R2 with SP1:
- Windows Server 2008 R2 Standard with SP1
- Windows Server 2008 R2 Enterprise with SP1
- Windows Server 2008 R2 Datacenter with SP1
- Microsoft Hyper-V Server 2008 R2 with the Windows Server 2008 R2 SP1 update applied
RemoteFX is not available in the following editions of Windows Server 2008 R2 with SP1
- Windows Web Server 2008 R2 with SP1
- Windows Server 2008 R2 for Itanium-Based Systems with SP1
To use RemoteFX on a virtual desktop, you must be running one of the following editions:
- Windows 7 Enterprise with SP1
- Windows 7 Ultimate with SP1
Note: The client computer that is used to connect to a RemoteFX-enabled session can be any operating system that is running Remote Desktop Connection 7.1.
Standby for more articles on this topic.