2
votes

I'm writing an application with a highly stylized WPF interface (all default Windows UI chrome is gone and all controls have custom styles). The application runs great on the machine I'm developing on (Core i7 with NVidia 550M) at barely 1% CPU. On a friend's brand new netbook (AMD Fusion C-50, Radeon HD 6250) it runs at maybe 1-2% CPU usage. But then I took my wife's old netbook to test it on something weaker (an original Dell Mini 9, Atom N270, Intel 945 Express graphics) and run the same application and it runs at nearly 50% CPU! However, it drops to like 4-5% when the application is minimized, so I figure it's got to be the actual GUI that's causing the problem.

But I'm not really familiar with how WPF is rendered (I'm using the latest .NET 4.0 framework). Is it really THAT graphics intensive? The GUI as it is, while stylized, doesn't really do much... just a progress bar that updates continuously and a couple of list animations that happen maybe every 3 minutes (it's a media app). But other than that, the GUI is fairly static.

Since I haven't given a lot of specifics of how the GUI was written I'm obviously not expecting an specifics on how to fix it, but I was hoping for some clarification as to how dependent the latest WPF is on having a relatively modern GPU (I admit, this GPU can barely handle an SD youtube video). Is there a "minimum requirements" for WPF 4? The application itself is really simplistic, so I'd hate for it to have really modern hardware requirements just because I used WPF.

1
Have you considered that the hardware is just crappy? The Atom processors are horribly slow. I've got an old AMD Athlon from 2001 that runs faster than a Z690. They're just not designed to do anything much beyond a bit of web browsing. - Polynomial
Have you tried profiling it to see where it's spending its time? This might help: msdn.microsoft.com/en-us/library/aa969767.aspx - Brook
@Polynomial - I realize the CPU is crappy, I'm just concerned by the 25x CPU increase and wonder if it really is the CPU or just the GPU. CPU-wise it's doing VERY little. - Adam Haile
@AdamHaile: Do you use AllowTransparency=True ? If so, try google something like: WPF AllowTransparency performance cpu - Morten Frederiksen
@Steven - The Atom processors are both a CPU and GPU. The architecture is shared, so it's horribly slow when doing anything mildly intensive. Pushing the GPU also slows the CPU, and vice versa. - Polynomial

1 Answers

1
votes

By virtue of DirectX, video acceleration will be preferred with fallback to software rendering if for any reason that fails. Is your wife's machine XP? Given that you're using custom window chromes etcetera you may have set AllowsTransparency=true? If so, your app may be falling back to software rendering as a result.

Use WpfPerf to figure out whether it's being software rendered. Ensure you have XP SP3 and if still unresolved, try this.