WPF Apps and GRID

XenServer 6.5 (CPU Governor defaulted to performance), XenDesktop 7.6 Feature Pack 3, Windows 7 64-bit virtual desktops
Dell R730 - Performance Per Watt (OS) enabled, single K2
Latest NVIDIA Drivers and components
Verified that GPU is functioning and performing as expected with Unengine, HTML5 web sites, etc.

I have a client leveraging a WPF (Windows Presentation Foundation) application that uses some version of .NET (unknown because the default image has all versions installed). The client believes that the WPF application leverages GPU but cannot confirm. When the application is installed on a Physical server (Windows 7 64-bit OS) with a K2000 card and local SSD storage, the application can open records within 3 seconds.

Same server, but putting on XenServer 6.5 (or vSphere 6 for that matter), replacing the K2000 with a K2 (using a 280Q or even passthrough) and local SSD VMs, the application opens records in 5 to 6 seconds. We don’t see GPU being hit either via the hyper visor management console but it could be the interval isn’t long enough to be seen by the charts.

I found some regkeys in the following article: Configuring Virtualised Autodesk and similar applications including XenApp GPU-sharing and tools for sanity checking DirectX/OpenGL usage | Citrix Blogs

[HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\ Multiple Monitor Hook] ”EnableWPFHook” =dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\CtxHook\AppInit_Dlls\ Multiple Monitor Hook] ”EnableWPFHook” =dword:00000001

But the article references XenApp/Server OS only.

  1. How can I verify a WPF app is or is not using GPU?
  2. Is there a test WPF that is known to use GPU that can be tested?
  3. Are the EnableWPFHook regkeys needed in a Desktop OS (either in the above regkey or somewhere else? 4) Is XenDesktop with 7.6 and above on a desktop OS, already WPF aware?
  4. any suggestion for enhancing performance of a WPF app (it is a COTS app so we can’t recode)
    Could a WPF app have problems in VMs?

Thanks to anyone who looks at this and responds.

PS Fun read - http://blogs.msdn.com/b/jgoldb/archive/2010/06/22/software-rendering-usage-in-wpf.aspx and http://snoopwpf.codeplex.com/

The registry keys aren’t necessary in a VDI implementation as there is no driver chaining to address.

For checking hardware vs software acceleration you may find this helpful

http://www.codeproject.com/Articles/784529/Solutions-for-WPF-Performance-Issue

See the section on detecting software rendering.

The Perforator tool is available here

Hi,

I know this is a very old forum post.
But I just wrote a blog post on how to validate if a WPF application is using hardware acceleration or not.
So if anyone has the same issues or questions, I highly suggest checking the blog out!

You can find the blog here:

Regards,
Jens

1 Like