Marek
Marek

Reputation: 2597

Wpf performance hungry test app to test if Citrix is using GPU for rendering and if it makes any difference

We have a Wpf app hosted by a single Citrix Server used by up to 8 remote users. The WPF app is usually used with a high resolution and multiple monitors at the same time so we want to make sure the GPU is used for rendering instead of CPU.

We are using grids, canvases, checkboxes and all kind of WPF controls.

I want to test if it adds any value to use 3D acceleration hardware on the Citrix servers because we are about to order new hardware and I am not sure if it is worth spending the extra money.

Some info is given away by Citrix on link below so I think of writing WPF "hungry" test app but I am not sure what it should look like.

http://support.citrix.com/proddocs/topic/xendesktop-7/hd-3d-gpu-acceleration-win-server-os.html

EDIT

Any idea what this WPF app should look like so I can make sure it uses GPU or is there a better way to test this? Which wpf controls should I use in the test app or is there similar test app written already?

Many Thanks

Upvotes: 0

Views: 1669

Answers (1)

donovan
donovan

Reputation: 1472

As a general rule, the composition of your WPF app will not affect whether the CPU (software rendering) or the GPU (hardware rendering) is used. WPF will always use hardware rendering when it is available on the machine, and will fallback to software rendering if it can't find hardware support.

Having said that, there are some things that WPF will always render using software rendering. E.g. the legacy effects derived from BitmapEffect.

You can use the WPF perf tools to see whether software rendering is being used:

http://msdn.microsoft.com/en-us/library/aa969767%28v=vs.110%29.aspx

The Perforator tool has an option to highlight sections of the app rendered in software with a purple tint.

So to answer your question, pretty much any WPF app you can create will use hardware rendering, just don't use anything derived from BitmapEffect. You can double check that software rendering isn't used by running the app on your desktop first and using Perforator to profile it. Once you've confirmed it doesn't use any software rendering you can test it in your Citrix environment with/with-out 3D hardware installed to see what kind of performance improvements you get.

Upvotes: 1

Related Questions