Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a Windows XP SP3 machine, with up-to-date patches. It has DirectX 9.0c, version number

Can I disable DirectDraw, but have Direct3D still active?

I read the Wikipedia articles about DirectDraw and Direct3D, but do not know if I understand them correctly:

That is, it contains many commands for 3D rendering; however, since version 8, Direct3D has superseded the old DirectDraw framework and also taken responsibility for the rendering of 2D graphics.

Does that mean DirectDraw is now a part of Direct3D? Because I cannot disable DirectDraw without disabling Direct3D, but it works the other way around.

share|improve this question
DirectDraw does not exist in Direct3D9. What gave you the idea to disable DirectDraw in the first place? – Oliver Salzburg Jun 25 '12 at 14:44
I'm examining options against crashing AoE II when clicking chat or diplomacy. dxdiag.exe lets me disable "DirectDraw", "Direct3D" and "AGP acceleration" (I'm not sure about the last point). But disabling it every time the game is played is not an option, except for doing it programmatically, but trying to do so just re-infused my hatred against Win32 programming. – GodsBoss Jun 25 '12 at 19:32
up vote 3 down vote accepted

The Wikipedia page for DirectDraw (and the other DirectX components) is pretty clear about the situation. But I’ll summarize and consolate the relevante bits (paraphrasing of course):

1:1 At first, there was only darkness and graphical chaos. 1:2 One day, Microsoft said let there be a single, consistent graphical framework and created DirectDraw, and there was, and it was good. 1:3 Microsoft told it to go forth and frolic in the garden of hardware and create many beautiful 2D pictures. 1:4 DirectDraw did and it too was good.

2:1 One day, the serpent of ambition came to DirectDraw and told it of wondrous 3D pictures. 2:2 The serpent convinced DirectDraw that it can make 3D pictures by eating of the fruit of the knowledge tree, so DirectDraw ate the fruit and began trying to create 3D pictures.

3:1 Microsoft, seeing that DirectDraw was lonely and worked too hard to create 3D graphics by itself, took pity on it and using parts of DirectDraw, created Direct3D. 3:2 DirectDraw and Direct3D lived happily together for a time.

4:1 With the help of their neighbors, DirectDraw and Direct3D begat DirectX. 4:2 DirectX was a humble child, but one full of potential. 4:3 DirectX was also a jealous child and strived to destroy its brother OpenGL who only lived in the magnificent castles of Mainframe.

5:1 DirectX 1 begat DirectX 2 and DirectX 2a who, unlike DirectX 1 and 2, was a part of the city of Windows. DirectX 2a went forth and multiplied for four and two generations, creating frameworks that allowed beauty and games that were most awesome to blossom.

6:1 By the time of DirectX 6, son of DirectX 5, the DirectX family had grown slovenly and fat and was difficult to manage.

7:1 The people of the land complained of the inbreeding of DirectX 7. 7:2 They did not like the incestuous overlap between the functions of DirectDraw and Direct3D. 7:3 Seeing this corruption of HIS creations, Microsoft decreed that there be only one framework. 7:4 To cleanse DirectDraw of the sins of envy, pride, and gluttony, HE sent a mighty developmental flood as well as object-oriented fire and brimstone and a pillar of cryptographic salt to the town of DirectDraw.

8:1 For DirectX 8, HE left DirectDraw behind and started over with just Direct3D, who had survived because it followed instructions and did not look back as DirectDraw officially died. 8:2 Direct3D complained not of the loss of its beloved DirectDraw, and seeing this loyalty, Microsoft gave it a new, and even better partner. 8:3 HE took the surviving, still pure 2D functions of DirectDraw and created DirectX Graphics so that Direct3D may be happy and fully functional.

9:1 DirectX 8, son of Direct3D and DirectX Graphics (and their neighbors) begat DirectX 9 which was a fine child. 9:2 DirectX 9 lived for many, many years, longer than anyone else. 9:3 It accomplished many wondrous things and made its ancestors proud. 9:4 The villagers of XP, where DirectX 9 now lived, still worshiped Microsoft but began to also worship idols of golden penguins and ate of the forbidden apples. 9:5 This made Microsoft angry and HE exiled the village of XP. 9:6 HE left the long, and grey-bearded DirectX 9 in XP and create the city of Vista with the proud new child DirectX 10. 9:7 In the city of Vista, many people had to upgrade their homes to pay the high taxes of DirectX 10.

10:1 Later on, DirectX 10 begat Direct2D which was like DirectDraw++, and it was so-so. 10:2 It was a proud and demanding child, not content with fine homes like XP and instead insisted on living within the kingdom of Windows 7. 10:3 It was also a greedy child, declaring a need for much video-card wealth, even though it was really just a petty 2D framework. 10:4 The people complained and so Microsoft made it available to the citizens of Vista. 10:5 Not content with that, the people of XP who still lived in small huts, invaded and conquered Vista where they looted and pillaged and kidnapped DirectX 10 to their home in XP. 10:6 DirectX 10 eventually bowed to the people’s will and learned to live and work in XP, but never with its full heart.

11:1 DirectX 10 begat DirectX 11, but this time the people could not kidnap it to their village of XP. 11:2 They saw that many of the new knights, soldiers, Zerg, and other foreign nobles demanded the presence of king DirectX 11 or queen DirectX 11, and so they acquiesced and either settled for what they had or paid the multitude of taxes so that the greatness of DirectX 10 and 11 could be visited upon them.

12:17:12:6:2 Far away, near the edge of the world where sea-beasts, dragons, and llamas wreak terror, a grand and ancient calendar of the Mayan kingdom was discovered, in which the end of the world was predicted (not really, but let’s just pretend).

13:0:0:0:0 Seeing the idolatry and corruption in the world, the God of Microsoft sent four great solar flares of white, red, black, and pale upon the world and destroyed all electronics. Only the astronauts who were raptured away upon the ark survived while the rest of the world fell into chaos and turmoil for seven upon seven years.

So basically, unless you are using DirectX 7 or lower (which you’re not), you will not be able to disable just DirectDraw (as a whole) since it no longer exists as a standalone framework. Instead, you can only disable the DirectDraw functions from DirectX.

This of course may or may not have an effect on Direct3D since some 3D functions rely on 2D functions (ah, uni courses, how interesting were ye…).

I can’t speak categorically, but based on other similar scenarios and Microsoft’s history, I highly doubt that they designed it so that parts of the framework could be toggled on or off; it’s pretty much guaranteed to be an all-or-nothing affair. That is, if you disable DirectDraw, then Direct3D goes down too because it is built, and relies upon 2D. If you disable 3D, then 2D still works since 3D calculations are not required to do 2D work.

All that said, you are not actually disabling either DirectDraw or Direct3D. The buttons you are referring to (below) don’t disable the frameworks, they only disable hardware-acceleration. The functions still exist and are still available for the software; they just run much slower because they are performed by via the CPU/RAM instead of via the GPU/VRAM.

If disabling acceleration fixes the problem, then it is because the software is old and not compatible with newer hardware/drivers. You may have to make a compromise by accepting the inconvenience of toggling the acceleration on/off before after running the game (or just live without acceleration).

DXDiag DirectX acceleration

share|improve this answer
+1 for the awesome history of DirectX! :) – Nate Koppenhaver Jun 27 '12 at 3:55
Wow! Thank you very much, especially for that biblish part. I'll take one of the alternatives, then. – GodsBoss Jun 28 '12 at 8:16
If your video-card is still supported by the manufacturer, you could try posting a bug-report in the hopes of having them fix the issue with a future driver release. – Synetech Jun 28 '12 at 14:28

Given that DirectDraw is now implemented in Direct3D, that would now make it a subset of Direct3D.

So, by disabling the DirectDraw interface in your Direct3D runtime, your other Direct3D rendering capabilities should not be affected.

To get a bit technical, I would imagine, by disabling DirectDraw, all attempts to retrieve a IDirectDraw7 instance will fail. While attempts to retrieve a IDirect3D9 instance will still work fine.

share|improve this answer
Why didn't I think of that? I will give it a try and test if I can create instances in a small test program. Thanks a lot! – GodsBoss Jun 26 '12 at 16:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .