Remote Desktop goes Graphical
Anyone who has ever tried to run anything with a high graphics content in a remote desktop (RDP) session will know how poor the performance is, video clips can be measured in frames per minute rather than frames per second.
Microsoft may just have a solution for this in SP1 of Windows 2008 R2 and Windows 7 which is to be released 1st quarter next year. The new enhnacement to RDP called RemoteFX will offer LAN users a gui experience more akin to a physical desktop than which can currently be achieved using an RDP session. RemoteFX support will be included in RDP 7.1 clients which currently is only available in the release candidate of 2008 R2 SP1 and Windows 7 SP1, next year expect more hardware vendors to release thin clients with RDP 7.1 support, can’t find any information regarding a 7.1 client being released for XP or Vista.
RemoteFX can work in 2 modes both requiring 2008 R2 SP1 on your host, the 1st mode allows users who RDP to the server directly to experience improved graphical performance, the 2nd mode which requires HyperV running on the host allows the hosts GPU ( graphics card ) to be virtualised and shared amongst Windows 7 SP1 VM’s running on the host. From what I have read the 2nd mode offers better performance as it utilises the power of the hosts GPU whereas the 1st mode relies on software only to achieve the boost in graphical performance, the MS site does however mention using a dedicated RemoteFX encoder card installed in the host to boost performance, don’t know if these are available at present .
I decided to setup a test server to evaluate the graphical perfomance boost RemoteFX offers Windows 7 SP1 VM’s. There are a few pre-requisites when choosing hardware for a RemoteFX host, firstly you need a CPU with SLAT support, I first tried a quad core Intel 6600 with no luck, you are looking at higher end Intel i series CPU’s or Intel Xeon 5500 or above, see extract below taken from MS site:-
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).
Secondly you are going to require a decent GPU, remember your GPU’s processing power and video memory is going to be virtualised and shared amongst your VM’s. The minimum memory requirement is 400MB of dedicated video memory, the table below (taken from MS site) shows video memory requirements for different screen resolutions, multiply this be number of VM’s you intend on running:-
| Maximum resolution | Maximum number of monitors in virtual machine setting | |||
|---|---|---|---|---|
| 1 monitor | 2 monitors | 3 monitors | 4 monitors | |
| 1024 x 768 | 75 MB | 105 MB | 135 MB | 165 MB |
| 1280 x 1024 | 125 MB | 175 MB | 225 MB | 275 MB |
| 1600 x 1200 | 184 MB | 257 MB | 330 MB | N/A |
| 1900 x 1200 | 220 MB | 308 MB | N/A | N/A |
For my test server I used a HP ML350 G6 with a single Intel 5520 quad core with Hyper Threading enabled. GPU was a modest Nvidia Geforce GT240 1GB which can be picked up for around £60.
Server was loaded with a fresh install of 2008 R2 and then had the RC of SP1 applied, HyperV role added and RemoteFX role added which is found as a component of the Remote Desktop Services role.
Created a Windows 7 Enterprise VM ( apparently requires Enterprise or Ultimate ), and added the new RemoteFX 3D Video adapter to the virtual machine, before doing this make sure you have enabled remote desktop in the virtual machine as once the RemoteFX adapter is added you will no longer be able to access the VM’s console through HyperV manager.
As the RDP 7.1 client is only available on SP1 and I didn’t have a spare PC available to load another copy of Windows 7 SP1 I was forced to RDP from the 2008 R2 SP1 host to the Windows 7 VM, to enable the RemoteFX on the RDP client make sure that the experience setting within the RDP client is set to LAN.
Once connected I can tell straight away the visual improvement, Windows 7 AERO is running, let’s try something a bit more intesive and use the Aero 3D flip feature, impressed runs as smoothly as I’ve seen on any physical desktop.

RemoteFX Windows 7 Aero Flip
So what about video in our RDP session, obtained a HD (720p) mkv file, installed K-Lite codec pack into the VM and luached the video clip in Media Player Classic. The video played back suprisingly well with only the ocassional torn frame, running HD video in an RDP session is probably not what you would expect to find in a typical business environment but if it can handle the rendering of HD content then it should have no problems with lower quality video such as the likes of YouTube.

RemoteFX HD Video Rendering
So how about some heavy 3D content, installed a copy of 3DMark06 into the VM to test how it handles heavy 3D game type rendering. I was quite suprised the test ran at all and didn’t bomb out when it saw the virtualised GPU, although the 3D tests ran there was a very noticeable difference in frame rates achieved running the tests within the virtual machine as opposed to running it directly on the host. For example the 1st 3D test shows a battle scene in a space dock, in the virtual machine the average frame rate was around 12 fps, running the same test on the physical host showed and average frame rate of around 30 fps. Hardcore gamers are not going to want to run on virtualised PC’s at the moment but that’s not what RemoteFX was designed to do.
Where RemoteFX will appeal is in VDI implementaions where users want a more dynamic gui experience from their PC/Thin Client than is currently offered by the RDP. With this in mind let’s try scaling out a little, I’ve made another 3 copies of our Windows 7 SP1 VM and powered them all up (4 total).
Windows and Aero still behaving themselves nicely no noticeable degradation with 4 VM’s running. Launched the HD video in all 4 VM’s and although it did play it was more jerky than running it in a single VM, clearly running 4 HD movies even on a physical host on a low end video card would be pushing it. Also bear in my all 4 VM’s and the host are running off a single SATA disk so that would probably also degrade the performance somewhat. Still watchable, very impressive.

RemoteFX on 4 VM's playing HD videos
With another CPU and a higher end GPU (RemoteFX supports up to 4 in the same host) we should be able to a acheive a decent VM density on our host.
Often Microsoft are playing catchup with VMware but in regards to RemoteFX I think they are on to a winner, although VMware with it’s View product supports rich graphical sessions using PCoverIP to get decent performance is going to require a PCoverIP offload card and also the licensing costs involved with implementing the VMware infrastructure and VMware View.


Leave a Reply