D3DImage and Software Rendering
If the WPF render thread is doing software rendering, D3DImage will not show up. I don't think we specifically called this out in the documentation so it can come as a surprise when you first encounter it. Off the top of my head, here are times when the render thread is in software:
- RenderCapability.Tier == 0
- You set HwndTarget.RenderMode = SoftwareOnly
- A video card driver before November 2004 (date subject to change in the future)
- Remote desktop
- The window size is larger than the max texture size of the video card (rare)
All of these cases should be covered by simply checking #1 except for #2. You might be surprised by #4, but in 3.5 SP1 we had to change how remoting works.
You're probably thinking that I left out RenderTargetBitmap and printing since they both use software rendering, but they happen on the UI thread! D3DImage will show up because they call CopyBackBuffer().
-- Jordan
P.S. Don't forget to read the perf notes when using D3DImage