I am making an app that scrolls information on the desktop. The window is transparent. I am starting out simple, trying to find the lowest CPU use for animating things and I am starting with a simple TextBlock.
On my development machine, I get a very smooth animation across the screen setting the Canvas.Left property with a DoubleAnimation. However, on another Vista computer I get about a 1 second lag every 6 to 7 seconds. On an XP machine, it is again quite smooth. I have tried on 3 other machines and its 50% good and bad. I have 3.5 SP1 installed on all the machines.
CPU use on the systems never goes above 10%. I can see that I am not doing any software rendering. The Video card on my desktop is a nVidia Geforce 7xxx series, and one of the choppy machines was using a nVidia Geforce 88xx card. All are using the same driver release and the most currrent. Screen res usually is 1920×1080, with the exception of my Dev machine which is much larger ( 2560×1600)
HOWEVER – if I use Perforator to DISABLE dirty region support – it is smooth on all machines but CPU is now at 30%
I am lost. The choppiness is almost like clockwork. There is nothing else going on on the machines having the issues, all machines tested were Core 2 Duos, plenty of ram, latest drivers, latest Service Packs, I just dont know what else to do. I would expect simply higher CPU use, not lag.
If you are using the AllowsTransparency property you will have performance and compatibility problems.
The technical explanation is here:
http://blogs.msdn.com/dwayneneed/archive/2008/09/08/transparent-windows-in-wpf.aspx
from my personal (and painful) experience some display drivers will crush your program and others will make Windows work erratically when you have a WPF transparent window on screen for a long time, I recommend you try to re-write your GUI to not use transparency.