Desktop Window Manager (DWM, previously Desktop Compositing Engine or DCE) is the window manager in Windows Vista, Windows 7, Windows 8 and Windows 10 that enables the use of hardware acceleration to render the graphical user interface of Windows.It was originally created to enable portions of the new "Windows Aero" user experience, which allowed for effects such as transparency, 3D window switching and more.It is also included with Windows Server 2008, but requires the "Desktop Experience" feature and compatible graphics drivers to be installed.
This means that each program has a buffer that it writes data to; DWM then composites each program's buffer into a final image.
By comparison, the stacking window manager in Windows XP and earlier (and also Windows Vista and Windows 7 with Windows Aero disabled) comprises a single display buffer to which all programs write.
DWM works in different ways depending on the operating system (Windows 7 or Windows Vista) and on the version of the graphics drivers it uses (WDDM 1.0 or 1.1).
Under Windows 7 and with WDDM 1.1 drivers, DWM only writes the program's buffer to the video RAM, even if it is a graphics device interface (GDI) program.
This is because Windows 7 supports (limited) hardware acceleration for GDI and in doing so does not need to keep a copy of the buffer in system RAM so that the CPU can write to it.
Because the compositor has access to the graphics of all applications, it easily allows visual effects that string together visuals from multiple applications, such as transparency.DWM uses Direct X 9 to perform the function of compositing and rendering in the GPU, freeing the CPU of the task of managing the rendering from the off-screen buffers to the display.However, it does not affect applications painting to the off-screen buffers – depending on the technologies used for that, this might still be CPU-bound.DWM-agnostic rendering techniques like GDI are redirected to the buffers by rendering the user interface (UI) as bitmaps.DWM-aware rendering technologies like WPF directly make the internal data structures available in a DWM-compatible format.The window contents in the buffers are then converted to Direct X textures.