2

I have a WPF application that runs as a service and renders 2D graphical elements to take jpg snapshots. All this happens without any Window or visible control.

The application typically runs on servers with very crappy video adapters: does this have a negative impact on the application's performance?

Is there a way I can tell WPF/.NET to ignore the video adapter for rendering so that I can make some direct comparison tests on the same machine?

2
  • Is this WPF for web or WPF for client app? Commented Aug 20, 2010 at 9:42
  • It's a "full" WPF client app, running as Windows service. Upon further investigation I noticed that when running as a service I always get Rendering Tier 0. If the application runs as a "normal" Windows app (with a visible Window), then I get rendering tier 3. The question becomes slightly different, as it seems that the way it is the video adapter is never used for anything. Is there a way to make use of it? Commented Aug 20, 2010 at 10:24

1 Answer 1

2

I found the answer. For future reference:

Session0 isolation is preventing services to make use of hardware acceleration (in WPF but also in anything else) starting from Windows Vista/2008. You can read more here: http://www.microsoft.com/whdc/system/sysinternals/session0changes.mspx

If you are running XP or 2003, services can run in an interactive session that loads the video drivers: if you check the option "allow service to interact with desktop" then hardware acceleration is used (you get rendering tier 2 provided that your hardware supports it), otherwise you get rendering tier 0 (software only).

Please beware that if you connect with remote desktop and start the service, the service will use that session (which is NOT accelerated) and will run in rendering tier 0.

(obviously this means that in Vista/7/2008 and later you can run the service with a crappy video adapter without any consequence)

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.