Improving RemoteFX performance in Hyper-V

As I wrote earlier its possible to run RemoteFX on some of the slowest GPU´s you can buy today (on a regular CPU actually), but you might not get the performance you need to get anywhere. This time I will go through some of the options you have for getting it to work a bit better. Keep in mind that I am writing this with a really poor GPU in mind (yes, the Intel HD 2500 is not good for anything else than browsing).

The basics

First some basic things. For a slow GPU you want to make sure the GPU is the actual bottleneck so don't be cheap when you assign memory. I used 4 GB on the VM. Use higher if you want and then lower it until you find a good sweet spot in case you want the memory back. Assign more than one core to the VM to start with.

Use RemoteFX over a wired LAN (100 Mbit or more). Avoid using WiFi since a lot of bandwidth is needed to get good quality, especially if you configure the group policies to get the highest quality with no compression.

The maximum resolution is divided into the amount of monitors you select. More monitors, lower resolution. Use one monitor for this test and add more later if you want.

Version considerations

Besides the basic stuff above, the first thing to keep in mind is that you need to use RDP 7.1 to get RemoteFX to work properly when using Windows Server 2012. I believe this was released for Windows 7 in SP1. The client actually reports version 6-something, but if you check the about screen it says if it supports RDP 7.0 or 7.1. RDP and Remote Desktop Connection are not the same thing.

There are also some fairly big differences between running Windows 7 and Windows 8. As one example, Microsoft have done a lot of work when it comes to reducing the bandwidth when using RemoteFX (and RDP in general) in Windows 8. I did some simple tests on this to see what difference it makes and found that when running Windows 8 it consumed about 30% less network traffic compared to Windows 7 when running the same sequence in a full screen game (Torchlight). According to Microsoft the difference can be much bigger depending on what you are doing on your VM. If you are going to use Windows 7 you need to make sure that SP1 is installed before enabling the RemoteFX GPU. If you add it before that you will run into problems getting it to work, even if you add SP1 afterwards.

Group Policies

This is probably the most interesting part of the performance configuration. This is also the main place where Microsoft want you to tweak the environment to suit your purposes.

Use gpedit.msc and go to Computer Settings, Administrative templates, Windows Components, Remote Desktop Services, Remote Desktop Session Host, Remote Session Environment.

Here are some settings you can play around with to get the performance better, depending on what you will use it for. I played around with the settings and after a while the performance became a bit better with the Intel HD 2500 but I did not see any great improvement. The new GUI (which until recently was called Metro) in Windows 8 worked great with all the animations and everything, but that kind of worked even without RemoteFX so not a huge difference there. Movies played better in smaller windows than before, but frames were sometimes lost. Full screen videos, especially HD, was crap to be honest. I did not expect much from this hardware, but I was hoping for a bit better performance.

I would expect that tweaking these settings on a proper GPU will probably give better results compared to what I got. I will not post my settings right now because I don't think they are useful for anyone else. I will instead get back to this when I have used a better GPU and can give some examples of what could help. My suggestion here would be that you should play around with the settings and see what you can get.

1 comment

  1. Konstantinos Paschalidis06 October, 2012 00:10

    One thing that I'm not certain of is if GPU offloading takes place only in Hyper-V VDI scenarios or in RDP scenarios as well? Furthermore if this applies the same to Windows Server 2012 and Windows 8 Pro/Enterpise as RDP hosts.

    According to Brian Madden, GPU encoding takes place only when using Hyper-V virtualization. Can you confirm that? If so, how can I access this VDI remotely from a i.e. Win7 box? Can I install something like hvremote for that?

    ReplyDelete