Responding to Comments from "The role of the Windows Display Driver Model in the DWM"

As usual, lots of great, insightful comments (and thanks for the kudos)…

Jevan on the DWM team gives a nice response to some of the issues raised.

Stephane and Lorenzo ask about battery life, heat, and power management.  That’s worthy of a separate post, and I’ll add it to the list of topics.  Foreshadowing, let me say that the DWM works hard to be smart about avoiding rendering when and where it’s not necessary, which is critical for power management.

asdf (is that your real name J?) wonders about what I meant by “effectively no more ‘surface lost’ messages from DirectX”.  I’m actually not 100% sure on this, but I do believe that there truly aren’t any more of these messages, unless you happen to run out of both system memory and disk-based virtual memory.

Regarding the discussion arc on memory usage with Aleki, Frederik, Princess, and Michael, two buffers are required per window for GDI applications, but not for the reasons surmised.  For DirectX/WPF applications, only one buffer is required.  I’ll discuss more in the future “Memory Usage in the DWM” topic. 

Nevertheless, the prevailing comment about the memory requirements being large are absolutely true… fortunately the graphics cards and integrated systems often do have substantial amounts of memory, and the WDDM does the absolutely critical job of virtualization. 

It’s also very important to realize that not all visible windows need to have their memory buffers in graphics memory all the time.  For instance, if a window isn’t updating, then it can remain paged out.  Similarly, when windows are moved around, only those that are being “unoccluded” or actually moved need to be in memory.

The fact that the DWM does work well in a large variety of usage scenarios and machine configurations is indication that while the memory requirements are large, the system can and does continue to work well.


Comments (6)

  1. NeARAZ says:

    About ‘surface lost’: I think you can still get lost surfaces if you change your video card/drivers while the computer is running!

  2. Sven Groot says:

    A while ago, I had a problem with my computer hanging whenever I did anything that stressed the 3D card. I discovered this was because the GPU fan had melted off(!) so the card was overheating. Based on when I first saw game hangs, I’ve been running like this since before Vista 5342 was released. And by itself, Vista never managed to hang my PC, so apparently it wasn’t taxing the GPU too much.

    As for lost surface messages, I’m not so sure they’re gone. In fact, I use a self-written image viewer that uses Direct3D exclusive mode to view images full screen, and I obviously take care of surface lost problems which works in XP. But in Vista, sometimes I get an uncaught SurfaceLostException somewhere when switching back to the window. I haven’t yet looked into what’s causing this exactly.

  3. Jorge Coelho says:

    "And by itself, Vista never managed to hang my PC, so apparently it wasn’t taxing the GPU too much."

    Which can be good (i.e.; it’s been fine tuned to use as little resources as possible) or VERY BAD (i.e.; if it’s not taxing the GPU, it’s taxing the *CPU* instead). How much of the Aero Glass UI is hardware accelerated?

  4. Dean Harding says:

    Jorge: From what I understand, ALL of it is hardware accelerated. It’s just that 99.9% of the time, your standard Windows UI is completely static (as I type this comment, for example, the only thing updating is the actual comment box and a couple of my tray icons (CPU graph, network usage, etc)) which is completely unlike your regular game where the whole screen is updated every frame.

  5. Here’s a list of topics that I have posted on (with active links) or expect to post on (without links)…