We ran into an interesting problem at work...We're in the process of updating our machines to Windows 7...One of my colleagues came to me, complaining that he had lots of trouble with his remote desktop to his linux machines in Windows 7. It was really slow, and just using a simple text editor remotely was already impossible (which is unacceptable, since he has to develop on the linux machines). It worked fine in XP on the same machine (but we cannot multi-boot laptop machines, since they are required to have disk encryption, and for some reason the solution the IT department uses for this encryption is incompatible with a multiple OS installation).So, had he just wasted all his precious time installing Windows 7 on his machine, and does he have to go back to XP now?

Why was it so slow? We first tried to figure out if the drivers were installed correctly. We were a bit surprised to find that it was using an Intel Graphics driver. Most of our laptops have nVidia Quadro chips. His laptop was from the same Dell Precision series, but apparently his is the only model that does NOT have a proper GPU. It really did have an Intel Graphics chip (945G I believe). And it reported that it only had 8 MB of graphics memory.

Okay... so is this the problem then? Is the Intel chip just too slow? Doesn't really help that he has two monitors connected, I suppose. That will quickly eat through the video memory.So, I suggested to try the remote desktop client on my system instead. I have a desktop machine with a GeForce 9800GTX+ in it, with 512 MB. That should tell us whether the problem is caused by Windows 7 or by the Intel Graphics (I noticed that the regular Aero desktop seemed to run pretty well on the machine, it was specifically this application that was much slower).

Lo and behond, the performance was EXACTLY as horrible on my system as it was on his. So apparently there's more to this problem than the video card performance. But was it Windows 7, or the remote desktop client?We started going through the settings, and noticed that the client had DirectDraw acceleration, which was enabled by default.As it turns out, disabling the DirectDraw acceleration made it run much faster. About as well as on XP actually.

So we went back and tried it on his machine with the Intel chip. And indeed, it ran MUCH better now. Good enough to not have to install XP anymore. He could just comfortably use the remote desktop.

So, what do I conclude from this little episode?1) I'm quite surprised at how well Windows 7's GUI works. His machine was the absolute bottom of the barrel when it comes to hardware requirements. His chip BARELY supports the minimum pixelshader 2.0 requirement, and is most probably the slowest of its kind. Yet you can run Aero with all the eyecandy on and you can't really tell the difference with a high-end card like my GeForce.

2) Why didn't DirectDraw accelerate the remote desktop? I'm pretty sure that this is caused by the fact that the whole desktop is now rendered in Direct3D. The DirectDraw implementation will probably lock and unlock the surface a few times for each widget that it wants to update. In XP, the locking won't be a problem... but in Vista/Windows 7 you will probably be running into concurrency issues with Aero's own updates to various textures in video memory (Windows 7 no longer uses any kind of backbuffering in system memory either).GDI is a level higher, and allows Windows 7 more concurrency and asynchronous processing of drawing commands (another Windows 7 change), and that's probably why it coexists much better with the rest of the Aero desktop.