We’ve had a few support queries raised recently as to why in XenApp, Microsoft Internet Explorer has GPU acceleration turned off for DirectX applications like Fishbowl, but it works fine with other browsers such as Google Chrome. It turns out this is by design, hard-coded into IE by Microsoft.

Microsoft explicitly turns off GPU acceleration for IE in a remote desktop session. See article http://support.microsoft.com/kb/2528233 under “Do My Video Card and Video Driver Support hardware acceleration?”. You can leave feedback on the article for Microsoft.

Microsoft state:

If Internet Explorer 9 detects that your video card or video driver does not support GPU hardware acceleration, it uses software rendering instead of GPU rendering for the following reasons:  

  • Internet Explorer 9 is running in a remote desktop session.

The uber-geeky mystery (developer-to-developer time)

One of our engineers curious about this played around with a XenServer kernel to probe whether there was a workaround to override this feature. We have a strong suspicion that this is being blocked by the viridian flags (IE seems to turn off GPU usage if viridian enlightenments are enabled. You can turn these off on XenServer by setting platform:viridian=false in your VM config; but you will find your VM’s performance is worse as Windows will then rely on Xen’s emulation of h/w – i.e. not useful!), which mean that it will affect hypervisors such as Citrix XenServer or Microsoft’s own Hyper-V. Whilst playing with these flags might confirm the hypothesis it will not prove a workaround.

Side Note: I added some information on checking DirectX and OpenGL application usage of rendering libraries and GPUs is optimal yesterday, on this post.

I’ve no idea why Microsoft have designed it like this, I did wonder if it might be tied to Hyper-V licensing or similar but I genuinely don’t know. XenServer actually deliberately uses the same mechanisms as Hyper-V to ensure optimal performance for Windows OSs on Citrix XenServer and in this case we seem aligned to their support for this feature!

Workaround

At the moment the only workaround I can suggest is to use an alternative browser or benchmarking application (e.g. Unigine Tropics), if you encounter this issue. I have queried this with Microsoft as to whether this will be configurable in the future but really they would need to hear from their IE customers of demand for a design change. So if you have encountered this issue please do let Microsoft know!

UPDATE – Nov 2014

After a long running case via front-line support at Microsoft, Microsoft confirmed that internally IE is turning off the ability to get GPU support. In this case because they were observing hangs and performance issues within IE that they attribute to the GPU and driver. They have agreed to update support KB’s like this one for the relevant IE versions: http://support.microsoft.com/kb/2528233

With this explanation:

  • If Internet Explorer 9 detects that your video card or video driver does support GPU hardware acceleration, it will use software rendering instead of GPU rendering for the following reasons:

My Support reference was: XXXXXXXXXXXXX, if anyone has raised similar. Microsoft have agreed to clarify that they do not believe there is a Citrix issue. I believe a customer would need to raise this in conjunction with their GPU vendor in order to get a detailed explanation of why IE is exposed to this GPU reliability / performance issue but Chrome is not. (Update 16th May 2015: Microsoft have indicated that our support case number is confidential information and have requested it is removed from the blog).