Desktop Compositing

In this tutorial you will find everything you need to enable desktop compositing on the Longhorn builds that support it.

I’d like to note that I am writing this tutorial with VMware workstation in mind. As such, all drivers provided on this page are meant for use with VMware. At the bottom of this page you’ll find a list of builds that have working desktop compositing. For each of these build I will list the combination of VMware version and display driver that worked for me. Note that it’s very well possible that other combination work out for you. Feel free to share any combinations not listed on this page in the comments section! If you cam here looking for drivers, they can be found at the very bottom of this page.

Hardware

In the case you have some old Longhorn-era hardware it worth the effort to try and get desktop compositing working. For some builds desktop compositing may even work out of the box. Your computer should at least have a graphics card with Pixel shader 2.0 and DirectX 9 support. Moreover, there should be Windows XP drivers available for it. You may need to install the driver package in Windows XP compatibility mode (right click > properties > compatibility).

Personal experience shows that the following graphic cards work very well with Longhorn and do allow desktop compositing.

  • Nvidia FX5200
  • Nvidia GT6600
  • ATI Radeon 9700

For both Nvidia cards driver I recommend driver version 61.77.

Checklist

There are a couple of things we need to make sure are supported and working before desktop compositing will work. These are the two things we want to have working.

  • Full hardware acceleration
  • DirectX feature support

Even when the hardware supports the above points the driver may limit these features. This is why it’s very important to have the right driver installed. To make matters more complicated, when virtualizing, the version of the hypervisor may also influence if desktop compositing works at all.

 

Accelerate 3D graphics

Your virtual machine will need to be off to change this setting. Go to the settings of the machine and under Display check the box to accelerate 3D graphics.

VMware VM settings

 

Installing the driver

From the list at the bottom of this page pick a combination of VMware version and display driver version. Most of the time display driver 6.5.2 will work on any VMware version just fine. Have trouble installing the driver? See this guide.

 

Enabling hardware acceleration

In client builds this is often on by default and you don’t need to set this yourself. In build with a Server SKU however, you need to set this by hand.

Right click on the desktop > Properties > Settings > Advanced > Troubleshoot
Move the slider completely to the right (Full). This enables full hardware acceleration.

 

Checking DirectX features

If you followed above steps correctly (and the display driver supports it) and Longhorn plays along nicely you should now have support for DirectDraw and Direct3D. Whether these two features are supported and enabled can be checked in the DirectX diagnostic tool. Open Run (Win + R) and type dxdiag. On the Display tab you will find the current status of all DirectX features. It should look something like below:

Dxdiag dialog 4074

Note that both DirectDraw and Direct3D are supported and enabled using the Vmware .5.2 display driver (SVGA II 11.06). The Notes section will show detailed descriptions whenever there are problems with the current driver.

If one of the two features cannot be enabled, something is wrong. You might want to try installing another driver or another VMware version altogether.

Desktop compositing in general

Desktop compositing is a special type of window manager. A window manager manages the windows that you see on your screen. What’s unique about a compositing window manager is in the fact that it provides a buffer for each application visuals. Once the window manager receives drawing information from an application, it draws this information to a buffer. The window manager then composites all buffer information into an image which is displayed on your screen. Since the compositing window manager has access to all image information on the system it’s extremely easy to add (3D) effects to all applications on the system. Because every application’s buffer is constantly updated, even when not directly in sight, it’s possible to show live-preview images in other applications. A good example of the latter are the live tool-tips as seen in Vista and later. The actual image is drawn by an unmanaged compositor, the Media integration Layer (MIL). MIL is also used to draw Avalon/WPF applications and therefore is sometimes also referred to as a Unified Compositing Engine (UCE). All windows to be rendered are represented as composition nodes in a composition tree. To deal with the visibility problem, windows are drawn from back to front. This way the windows in the back will be overlapped by the windows in front of it. This procedure is also known as the painter’s algorithm and makes it so effects like transparency are easier to achieve. All rendering done by the MIL is hardware accelerated using the computer’s GPU through DirectX. By caching the composition tree which includes all windows and the desktop (‘the scene’), MIL can provide a retained mode. When a window moves or is resized, the scene is changed and MIL will redraw and refresh the display in the next render cycle. This means that applications do not need to call the compositor themselves.

DCE vs. DWM

The abbreviations DCE and DWM can be used interchangeably. In the early days of Longhorn the desktop compositor was called Desktop Compositing Engine. After Milestone 4 most references to DCE were removed and the engine was renamed to Desktop Window Manager, DWM. Build 4039 was the last build to explicitly use the name DCE for the engine.

Interesting to note is that the patent application for the desktop compositor mentions neither DCE nor DWM to describe the compositing engine. Instead the abbreviation CDWM (Compositing Desktop Window Manager) is used to describe the engine.

 

3683

3683DCE

3683 DCE running on real hardware

VMware version: N/A: Only seems to work on real hardware

Driver version: N/A

Recent research by JaGoTu shows that this build actually already features DCE. The process of enabling DCE in this build is much the same as later Milestone 3 builds. You are, however, missing out on a UI to do so, like in 3706. Before you can start DCE you will first need to apply the registry key below and restart. You can give ‘StartupOptions’ one of the following values:

  • 0, Disabled
  • 1, Enabled on system startup
  • 2, Dynamic control

 Commands

rundll32 user32.dll,StartDCE
rundll32 user32.dll,StopDCE

Registry key

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DesktopComposition]
"StartupOptions"=dword:00000002

 

3706, 3713, 3718 and 4001

A window twirls around the screen in build 4001 as it closes.

A window twirls around the screen in build 4001 as it closes.

VMware version: 6.5.x

Driver version: 6.5.x

All these builds have similar DCE effects which can easily be enabled via a button in the user interface. In Display Properties click Advanced. Next, select Allow dynamic controls, apply and click ‘Enabled now’. Not only do these four builds have an alpha transparency effect on each window, but they also include new animations for minimizing and closing. These build’s DCE requires a VMware version in the 6.5 range.

 

4011 and 4015

4011-2014-12-27-21-50-47

DCE in build 4011

VMware version: 6.5.x

Driver version: 6.5.x

Commands

rundll32 uxdesk.dll,DCEStart
rundll32 uxdesk.dll,DCEStop

Unlike earlier builds, DCE in these only adds alpha-transparency and no minimize/close animations.

 

4033, 4039 & 4042

DWM enabled on 4039, look at those beautiful glass borders!

DCE enabled on 4039

VMware version: 6.5.x, 7.1.x, 10

Driver version: 6.5.2

Commands

C:\Windows\i386\sbctl start
C:\Windows\i386\sbctl stop

In most cases a restart of explorer is required to make the task- and sidebar visible again. Build 4033 has a bug in DCE which causes it to automatically fall-back to CPU processing instead of hardware processing. Therefore, running DCE in this build will not unlock the special borders. By default builds 4039 and 4042 have an opaque theme. You can, however, perform the trick described here to enable Aero glass.

 

4066

DWM on 4066, resulting in some blurry green borders.

DWM on 4066, resulting in some blurry green borders.

VMware version: 6.5.x, 7.1.x, 10

Driver version: 6.5.2

Commands

Ctrl + Shift + F9

This build uses the green placeholder theme by default, a patched desksrv by FZajac is available which provides glass borders. Replace desksrv with the patched copy at C:\Windows\System32\ and C:\Windows\System32\dllcache\.

 

 

4074

DWM on 4074 with a DWM theme enabled.

DWM on 4074 with a DWM theme enabled.

VMware version: 6.5.x, 7.1.x

Driver version: 6.5.2

 Commands

C:\Windows\i386\sbctl start
C:\Windows\i386\sbctl stop

Registry key

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"MILExplorer"=dword:00000001

The Aero theme can be enabled on this build. See my post titled Aero done right for more information on how to create the Aero theme.

 

Drivers

Grab your VMware drivers here.

 



  14 comments for “Desktop Compositing

  1. nicky
    26th March 2015 at 1:37 am

    cool add dce on 4042 please

  2. Melcher
    2nd May 2015 at 3:48 pm

    The earlier builds do require the specific VMware version mentioned to be installed (3706, 3713 and 3718). Just setting the compatibility for those builds will not do the trick. Build 4066, 4039 and 4042 work with the 6.5.2 driver on VMware 10 without setting the compatibility.

  3. ovctvct
    22nd May 2015 at 7:06 pm

    Actually, 3706 already has the DCE animations when closing/minimizing, not just 3713+, I tested it a while ago in VMWare 6.5.1 to discover it had full DCE.

    • Melcher
      23rd May 2015 at 10:40 am

      Thanks, I will change the info here accordingly.

  4. Windows OS
    19th June 2015 at 12:34 am

    Could you restore your older “Aero Done Right” page for Longhorn 4074? That had more information for that specific build, and files to help you out.

  5. RoyFoy
    18th September 2016 at 12:10 am

    Can you try to get Areo in build 5219

  6. The Chosen One
    29th September 2016 at 12:12 am

    Melcher, I managed to grab “TWIWMTB” 4074 build,7.1, and I am using VMware and I have been following your website’s instructions, but I can’t get DWM working! I think I have found the culprit. When I look in the vm’s settings, the “Enable 3D Acceleration” option is greyed out and it says that “You need to update VMware tools before you can enable 3D acceleration”. VMware tools don’t work in Longhorn, and I have already installed the hounsell drivers in the vm. Can you please show me how to work around this? I have been wanting to enable DWM on Longhorn for a long time….

  7. The Chosen One
    29th September 2016 at 12:13 am

    Sorry, I meant to say that I have the TWIWMTB 4074 and i am using Vmware 7.1.

    • AeroWiz
      29th September 2016 at 12:52 pm

      Are you using the VM in 7.1 compatibility mode or are you using workstation version 7.1? Because I only ever had this issue when using VMware workstation 11.

      • The Chosen One
        29th September 2016 at 8:07 pm

        I’m using VMware Workstation Player 7.1

        • AeroWiz
          30th September 2016 at 8:19 pm

          The versioning of VMware Player and VMware Workstation do not align. Seeing that VMware Player is relatively new it’s probably build on the same tech as VMware Workstation 11. You’ll need to use an older version of player, but I’m unsure what exact version.

  8. The Chosen One
    1st October 2016 at 6:33 pm

    Good News! I tried it on VMware Worstation 7.1 and it worked!!! It looks so awesome! Why can’t windows look like that today? Right now, it looks ugly with that flat Metro UI. At first on the Aero Done Right post, I thought you guys meant that I was supposed to use the player version. Can you edit it so that it could say “You need VMware Workstation 7.1”? Because right now, it just says “Vmware 7.1”. Thanks for everything! I’m going to be testing other builds now! 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *