Over the next weeks, Shawn Bass and I will be presenting our latest results on comparing remoting protocols at different events and conferences, such as BriForum and Microsoft TechEd. One of the protocols we are testing intensively is Microsoft RDP 7.1 with RemoteFX, typically only referred to as “RemoteFX”. Now people started asking me questions about what it takes to do some RemoteFX testing if you don’t have access to a test lab with unlimited resources and budget. So here are the basics you need to know about RemoteFX if you are planning to give it a try.
The most common scenario for RemoteFX testing is a Windows 7 SP1 guest VM on a Windows Server 2008 R2 SP1 Hyper-V host. Ensure that the Hyper-V server’s CPU is Intel EPT or AMD NPT capable. Intel Nehalem processors – such as Xeon X5540, Xeon E5530, Intel i5 or Intel i7 – and AMD Opteron 2356 are good sample processors. Hyper-threading needs to be enabled on the RDVH server.
Being able to take advantage of modern video cards with their powerful GPUs is one of the most important aspects of RemoteFX. Video cards officially supported for RemoteFX are:
- ATI: ATI FirePro v5800, v7800 and v8800 series professional graphics, but I heard that the unsupported Quadro FX 580 and FX 3700 do work too. Don’t install the Catalyst or Crossfire packages. You can select the custom option when installing the ATI driver and uncheck the option to install the Catalyst package. The AMD/ATI side is covered by a FirePro 5800 in my lab.
- NVidia: Quadro FX 3800, 4800, 5800 and Quadroplex S4. Do not use version 196.75 of the drivers. NVidia has released an alert about this version of their drivers. Shawn and I are successfully using driver version 258.49 for Windows Server 2008 R2 with the Quadro FX 3800 cards we both have in our labs.
In a nutshell, the GPU must be compatible with DirectX 9.0 and – according to Microsoft – have a minimum of 1 GB of video RAM. You also need to disable the onboard video card on the Hyper-V server.
RemoteFX in a VDI scenario does not work with other hypervisors than Hyper-V. Only Hyper-V is able to virtualize the physical GPU in such a way that RemoteFX-capable guest systems can use it. As of today, only Windows 7 SP1 can be such a guest system. To make sure the components required for RemoteFX are available, all three relevant platforms – the Hyper-V server, the Windows 7 guest VM and the Windows 7 client computer – must have Service Pack 1 installed.
The basic configuration steps for RemoteFX on a Hyper-V server are fairly simple. On the Windows 7 VM allow connections from computers using Remote Desktop and add the user accounts that will be using this virtual machine to the local Remote Desktop Users security group. On the Hyper-V host add the Remote Desktop Services role with the RemoteFX role service enabled, making the Hyper-V server a RDVH server. Finally, install the RemoteFX 3D video adapter for the guest VM using the Hyper-V Manager. Your Remote Desktop session is using RemoteFX if the Start Menu shows the Shut Down button instead of the Log Off button.
You can also activate RemoteFX for user sessions on a RD Session Host server (RDSH server, formerly known as Terminal Server). In this scenario, the physical GPU of the server is not used to accelerate RemoteFX.
To activate RemoteFX the following configuration steps are required:
- On the RDSH server set the maximum color depth to 32 bits per pixel: Remote Desktop Session Host Configuration, under Connections, right-click RDP-Tcp, and then click Properties. On the Client Settings tab, select the Limit Maximum Color Depth check box, click 32 bits per pixel in the Limit Maximum Color Depth box, and then click OK. (Also possible in Local Group Policy: Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostRemote Session Environment).
- On the RDSH server, open gpedit.msc and navigate to Computer ConfigurationAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostRemote Session Environment. Double-click Configure RemoteFX, click Enabled, and then click OK.
- For optimal experience: On the RDSH server, open gpedit.msc and navigate to Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session HostRemote Session Environment. Double-click Optimize visual experience when using RemoteFX and select the Enabled option. In the Screen capture rate (frames per second) box, click Highest (best quality), and then click OK. Select the Enabled option. In the Screen Image quality box, click Highest (best quality), and then click OK. Restart the RDSH server.
For additional information I want to encourage you to read the following documents or articles:
Hardware Considerations for RemoteFX, including the video memory consumption for each virtual machine with maximum resolution and number of monitors
Checklist: RemoteFX Installation Prerequisites
Get Started with RemoteFX Deployment
Deploying Microsoft RemoteFX on a Remote Desktop Session Host Server Step-by-Step Guide
John Savill’s FAQ for Windows – Are there any performance counters to monitor the performance of RemoteFX?