I have this WPF app that continuously displays live images from a 5MP digital camera. Images are converted from byte array to bitmapsource first and then displayed in a Image control:
m_imageControl.Source = MyBitMapSource;
While streaming, CPU utilization was about 30-35%. "RenderCapability.Tier >> 16" indicated "Tier 2" so I assume my system should be adequate and WPF will try to utilize hardware rendering as much as possible.
Interestingly, if software rendering was forced by using:
RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;
CPU utilization fell to about 25% and app reported same displayed frame rate (no performance hit).
I am puzzled by this result as I thought hardware render should give better performance (less CPU) than software rendering. Could some one shine some light on this?
My System set-up are:
- OS: Windows 7 64-bit Utimate
- CPU: Intel i3 530 Quad-Core 2.93HGhz
- Video Card: NVIDIA GeForce GT 520 1G dedicated RAM
- Video Card Driver: NVIDIA 8.17.12.9573 09/02/2012