If you would like to read the other parts in this article series please go to:
- Remote Desktop Services in Windows Server 2012/2012 R2 and Windows 8/8.1 (Part 1)
- Remote Desktop Services in Windows Server 2012/2012 R2 and Windows 8/8.1 (Part 2)
In Part 1 of this series, we looked at how changes and improvements in Remote Desktop Services in Windows Server 2012/2012 R2 and Windows 8/8.1 have improved the overall experience for end-users. In Part 2, we discussed how additional enhancements and additions have made RDS easier for IT pros to deploy, secure and manage. In this, the third and last part of the series, we’ll wrap it up by taking a look at changes to an important feature that benefits both end users and admins: RemoteFX.
Understanding RemoteFX: What it does and how it does it
Microsoft first introduced RemoteFX as a new feature in Server 2008 R2 SP1. It’s an enhancement to the Remote Desktop Protocol (RDP). Remote Desktop Protocol/RemoteFX’s primary competitors are Citrix HDX, which was formerly known as ICA, and VMware’s PCoiP (PC over IP).
TechNet, in its usual inscrutable style, describes RemoteFX as the “enabling of a rich user experience by providing a 3D virtual adapter, intelligent codecs, and the ability to redirect USB devices in virtual machines.” But what exactly does that mean?
First, it means graphics are rendered on the host computer (the RDP server) instead of on the client device, and the applications use the host’s GPU and CPU to run at full speed. The data on the screen is compressed and then encoded by the RemoteFX encoder. Then the compressed bitmaps are sent to the client, where the RemoteFX decoder decodes it. The experience is almost the same as running the applications on the local computer. This relies on virtualization of the GPU, the graphics processing unit.
RemoteFX allows the single GPU on a Hyper-V server to be shared by multiple virtual desktops on multiple clients, including thin and “ultrathin” clients (the latter referring to client systems with no local operating system or storage that boot from the network, also called “zero clients”). In October 2013, Microsoft released Remote Desktop apps for iOS and Android devices that use RemoteFX to provide a rich desktop experience on those devices. The apps are available in the Apple App Store and Google Play Store.
Let’s look at what had been some of the differences between what you got when using your local desktop and when working over RDP. I can still remember when Remote Desktop (then called Terminal Services) was a very pale imitation of the “real” desktop. In the Windows NT days, you couldn’t even print to local printers; that feature was added in Windows Server 2000 but still had limitations. Then the Windows XP RDP client added support for 24 bit color and sound.
It wasn’t until version 6.0 in Vista that we finally got support for multiple monitors – which, to me, was a big deal because for almost a decade and a half I’ve always had three monitors connected to my primary desktop machine. Finally, with the 6.1 version that came with Windows Server 2008 and SP1 for Vista, we got full printing capabilities without the need to install printer drivers on the server in order to print on a local printer.
Version 7.0, in Windows 7 and Server 2008 R2, really upped the ante on the user experience – at least, if you had the Ultimate or Enterprise edition. Multi-monitor support was improved and we could even get the Aero Glass experience over RDP. Windows Media Player redirection was also added, although we still couldn’t (and still can’t) play TV in Windows Media Center over an RDP connection. (Note that you can, however, use a VNC program to do this).
RemoteFX finally came along in version 7.1, which was included in Windows 7 SP1 and Server 2008 R2 SP1. That first version gave us the virtual GPU that is the basis of the RemoteFX capabilities. The vGPU gives the virtual machines access to the advanced functions of the hardware GPU, such as 3D rendering. Another important part of RemoteFX is the USB redirection component. This is what makes it possible for you to access USB devices that are connected to your local computer when you’re working on the remote virtual desktop.
The RemoteFX codec is designed to provide high quality video, photos and text over limited bandwidth networks in real time by compressing the data while reducing latency. This is in contrast to, for example, the H.264 codec was designed for pre-rendered content such as TV and movies. The RemoteFX codec can run in software on the CPU or on the client GPU, or on a custom chip on a card or embedded in thin client hardware.
Server 2012/Windows 8 and Server 2012 R2/Windows 8.1 improvements to RemoteFX
As with other popular features, Microsoft has continually improved RemoteFX in each subsequent version of its server and client operating systems since first introducing it in Server 2008 R2 and Windows 7. Some of the enhancements are just “catch up,” such as implementing support for later versions of DirectX for the virtual GPU. Windows Server 2012 supports DX9 to DX11.
Remote Desktop Protocol version 8 is included in Windows 8 and Server 2012, and it can also be installed on Windows 7 SP1 as an update. The very latest version is RDP version 8.1, which logically enough comes with Windows 8.1 and Server 2012 R2. One of the improvements that is most welcome to me is the support for more monitors running at higher resolutions. As mentioned previously, I’m a multi-monitor fan and with Windows 8/8.1 as the client, RemoteFX now supports as many as 4 monitors per virtual machine at my usual resolution of 1920 x 1200. If you’re willing to drop that back to 1280 x 1024, you get support for 8 monitors per VM. Unfortunately, if you’re into high dollar high resolution displays, you’re still limited to just two per VM at 2560 x 1660 – but my guess (and hope) is that this will change in future iterations of RemoteFX.
Of course, today’s computing trend is toward more and more mobile computing, and these days, mobile means touch-enabled. Tablets and convertible systems with removable or “fold-away-able” keyboards that can function as either tablet or laptop are quickly growing in popularity – so much so that Microsoft itself got into the game with the Surface devices. Even on the desktop, touch-enabled monitors are slowly but steadily gaining favor. That makes sense, because Windows 8/8.1 is a touch-centric operating system and the modern user interface works best with touch gestures.
Thus it also makes sense that the latest incarnation of RemoteFX provides support for multi-touch, so that a user can use a touch-enabled device such as a tablet to access his or her remote desktop sessions. That’s an important factor in making the client-side experience as seamless as possible and makes the modern UI much more user-friendly with Windows 8/8.1 desktops.
Finally, performance is always an issue with any technology that works across a network. I can remember how the first versions of Remote Desktop were a bit laggy, even over a fast LAN. The first iteration of RemoteFX worked only on the LAN, but Server 2012/Windows 8 RemoteFX significantly improved the performance of virtual desktops, even across a wide area network. It can detect the connection speed automatically and adjust for that to give you the best performance.
The adaptive encoding feature is another important enhancement to RemoteFX that is part of version 8. It makes it possible to use the best codec for the type of content being encoded and use AVC/H.264 hardware for video if that hardware is available on the client system. Now in version 8.1, it gets even better. The H.264 support now includes images as well as video, so if there’s an AVC/H.264 hardware module, RemoteFX can offload both the video and image processing to it. The CPU will continue to decode text. This results in much higher frame rates. The Surface RT and similar devices can benefit from this performance improvement.
Note that you will need a compatible video card on the Windows server running Windows Server 2012 R2 in order to use RemoteFX with video acceleration. That means a card that supports DirectX 11.0 or later and a WDDM 1.2 or later driver. (Note that support for XDDM drivers was removed in Server 2012 and will not load; only WDDM drivers are supported).
RemoteFX is an important component – or rather, set of components – that give users of Microsoft’s Remote Desktop technologies a realistic emulation of the local computing experience with a desktop that’s delivered over the local network or Internet. In this article, we provided an overview of what RemoteFX is, how it works, how it has evolved over the years and some of the specific improvements to it that have been made in Windows Server 2012/2012 R2 and Windows 8/8.1. This wraps up our three-part series on what’s new in Remote Desktop Services. I hope it makes you want to go out there and deploy a VDI.
If you would like to read the other parts in this article series please go to: