This is a mirror of official site: http://jasper-net.blogspot.com/

A Critical Deep Dive into the WPF Rendering System

| Tuesday, February 15, 2011
At first I didn’t think I’d publish this. I wanted to consider a bit of diplomacy and also thought I’m beating a dead horse.  After being convinced by some people who’s opinion’s I highly value, I decided to. Developers are investing quite a bit into Microsoft’s UX platforms should know more about how the innards of the platform works, as when they hit a brick wall, they can properly understand the issue and also communicate what they need changed in the platform more accurately.
I believe WPF and Silverlight are well made technologies, but…

If you’ve been following my Twitter stream the last few months, you might have noticed I’ve been taking what looks like some pretty cheap shots at WPF (and Silverlight for that matter) performance.  Why would I do that?  After all I have invested hundreds, and hundreds of hours of my own time over the years, evangelizing the platform, building libraries, community help, guidance etc.  I am by definition, personally invested. I want to see the platforms get better.
Performance, Performance, Performance

When developing an immersive, consumer based UX, performance is your number one feature.  It is the enabling feature that allows you to add all other features.  How many times have you had to scale back you UI because it was too jerky?  How many times have you came up with the “groundbreaking new UX model” that you had to scrap because the technology couldn’t handle it?  How many times have you told a customer they require a 2.4ghz quad core to get the full experience? I’ve been asked by customers why they cannot deliver the same fluid UX they have on their iPad application using WPF or Silverlight on a PC with four times the horses.  This technology may be good enough for line-of-business applications, but it falls short of being able to deliver a next generation consumer application.
I thought WPF was hardware accelerated?  Tell me why you think it is inefficient.

WPF is hardware accelerated, and is actually pretty neat how some parts of it work internally.  Unfortunately it doesn’t efficiently use the GPU nearly as well as it could.  It’s rendering system is very brute force.  I hope to explain that claim here.
Analyzing a single WPF rendering pass

For analyzing performance, we need to find out what WPF is really doing under the covers.  To do this, I use “PIX”, a Direct3D profiler that comes with the DirectX SDK.  PIX will launch your D3D based application and inject hooks into all Direct3D calls in order to analyze and monitor.

Read more: Jer's Hacks

Posted via email from Jasper-net

0 comments: