Where is the DirectX SDK?


See also “Where is the DirectX SDK (2015 Edition)?

The DirectX SDK is now part of the Windows 8.0 SDK. The new Windows 8.0 SDK is where you’ll find DirectX 11.1, Direct2D, DirectWrite, DXGI 1.2, WDDM 1.2, DirectXMath, Feature Level 11.1 devices, XINPUT 1.4, XAUDIO 2.8, WIC2, the “Developer Runtime” (debugging layers and the REF device), and the latest HLSL compiler (D3DCompiler_*.DLL). Samples are now shipped online and can be found at the MSDN Code Gallery. We recommend using the Windows 8.x SDK instead of the DirectX SDK, or at a minimum using the Windows 8.x SDK primarily with only specific usages of the legacy DirectX SDK.

The Windows SDK for Windows 8 (aka Windows 8.0 SDK) is included with Visual Studio 2012, and is also available as a standalone package for use with Visual Studio 2010.

The Windows SDK for Windows 8 supports building both Windows Store apps (a.k.a. Metro style apps) and desktop Win32 applications on Windows 8 and Windows Server 2012. It supports building desktop Win32 applications for Windows 7, Windows Server 2008 R2, Windows Vista, and Windows Server 2008. It cannot be directly installed on Windows Vista or Windows Server 2008.

See the MSDN page “Where is the DirectX SDK?” for a complete list of “DirectX SDK” content now available in the Windows SDK. Be sure to see the DirectXTex and DirectXTK libraries as well.

The DirectX SDK (June 2010) is still available as the last release of the standalone DirectX SDK, but we strongly encourage developers to begin to transition to using the Windows SDK instead. Instructions for ‘mixing’ use of the new Windows SDK and older DirectX SDK content can be found here. Remember that for Windows Store app development, do not use the DirectX SDK.

I’ll be posting more articles in the coming weeks to address various aspects of these changes and how it impacts game development on Windows, so stay tuned.

VS 2010 Users: The standalone Windows 8.0 SDK does not integrate a new “platform toolset” option for Visual Studio 2010 to use the newer headers. See this post for more details.

_WIN32_WINNT: When building an application that is ‘down-level’ when using headers in the Windows 8.0 SDK, be sure to explicitly select the correct ‘minimum’ _WIN32_WINNT value. For Windows 8, that is 0x0602 (which is the default when building code with Visual Studio 2012 and for all Windows Store apps). For Windows 7 use 0x0601, and for Windows Vista use 0x0600. Typically this is done as part of the project configuration via Preprocessor Definitions. See Using the Windows Headers for more information.

Developer Runtime: One of the reasons for installing the DirectX SDK is to get the ‘developer runtime‘ with debug versions of various components and the reference devices. The Windows 8.0 SDK includes these debugging facilities for Direct3D 10.x/11.x, Direct2D, and DXGI for Windows 7 and Windows 8. Parts of the DirectX SDK (June 2010) developer runtime are not compatible with Windows 8, and won’t install, so the Windows 8.0 SDK is required for DirectX debugging support on Windows 8. The Windows 8.0 SDK does not include support for debugging Direct3D 9 applications. The only way to get the debug version of Direct3D 9 for Windows 8 is to install a ‘checked’ version of the OS.

IE10 Note: Be sure to read up on KB 2670838 as it impacts DirectX development on Windows 7 Service Pack 1.

Redist: The vast majority of components in Windows 8.0 SDK are ‘in box’ with the supported versions of the OS, or have no DLL component (such as DirectXMath). There is a redist\D3D folder in the Windows 8.0 SDK with the D3DCompiler_*.DLL and D3DCSX_*.DLL which can be redistributed directly with your Win32 desktop applications (see HLSL, FXC, and D3DCompile). These DLLs support Windows Vista, Windows 7, and Windows 8. For any legacy DirectX SDK components, you must still make use of DirectSetup (be sure to read Not So Direct Setup and DXSETUP Update)

Windows 7 SDK: Note that many components of “DirectX” have been included in the Windows SDKs for years. Windows SDK 7.0A (included with VS 2010) and Windows SDK 7.1 include headers and import libraries for Direct3D9, Direct3D9Ex, Direct3D 10.x, Direct3D 11.0, Direct2D, DirectWrite, DXGI, DirectSound, DirectInput, DirectMusic “core”, DirectShow, and XINPUT 9.1.0.

DXUT: The version of DXUT11 in the DirectX SDK (June 2010) is heavily tied to D3DX which requires the legacy DirectX SDK. See DXUT for Win32 Desktop Update for a newer release.

FX:  The version of Effects 11 in the DirectX SDK (June 2010) needs the a few includes from the legacy DirectX SDK. See Effects for Direct3D 11 Update for a newer release.

D3DX: As noted on MDSN, all versions of D3DX are deprecated including D3DX11. See Living without D3DX.

Tools: Some of the developer tools are in the Windows 8.x SDK, others are not. See DirectX SDK Tools Catalog.

Samples: A number of samples from the DirectX SDK (June 2010) release have been updated and posted to MSDN Code Gallery. See DirectX SDK Samples Catalog.

Related: DirectX SDKs of a certain ageVS 2012 and Windows 8.0 SDK RTM

See also: Where is DXERR.LIB?, GDF Tools, XDSP.H, SH Math, BC6H/BC7Encoder

Comments (8)

  1. Crystal says:

    wow, what a lot of information and links, thanks, Chuck.  I am, however, overwhelmed, and hoping you can help me with just a few links to better understand how to generate tones — not the system beep, richer sounds.  I understand sound waves and can send parameters (ie: frequency, duration, attack, decay, timbre) — are there links you would recommend for me?  My preference in languages is VB, JS, then C#.  I looked at the XAudio2 link since 'audio' was in the page name, but was lost … if that is the way, however, I will buckle down and learn.

    thank you, Chuck

    Warm Regards,

    Crystal

    *

      (: have an awesome day 🙂

    *

  2. XAudio2 is intended for 'game audio' engines which rely heavily on real-time mixing. If you are looking for a Win32 desktop solution, the legacy DirectMusic software synthesizer might be a place to start. There are likely dozens of "3rd party" solutions to various kinds of audio synthesizers.

    Some quick links I noted in a web search:

    http://msdn.microsoft.com/en-us/magazine/ee309883.aspx

    http://channel9.msdn.com/coding4fun/articles/Generating-Sound-Waves-with-C-Wave-Oscillators

     

  3. DANIEL says:

    IC H VINDS SCHEISE VON IHNEN DAS DORT DAUNLOWD STED ABER WO KANN MAN ES

  4. My German is pretty rusty, so I'm not sure what is you are asking. The legacy DirectX SDK (June 2010) is still available on MSDN Downloads. The Windows 8.0 SDK standalone is also available on MSDN Downloads.

  5. Trwoodward says:

    Do you know if the DirectXTK version of DXUT will have the same interface as the current version? Might be starting a project soon that I want to use DXUT for, but will wait for the new version if there are going to be significant changes to the interface.

  6. DXUT is very C centric and like the old OpenGL glUT. I'm trying to balance improving a number of complaints by C++ users over the years and being fairly easy to port to.

    For the most part, DXUT just sets up a render loop and you do the rest in your sample.  The details of the glue will likely change here, but functionality it's pretty similar.

    The much more impactful change is the use of DirectXTK instead of D3DX.

  7. Elisha McNutt says:

    I am outraged at Microsoft for having gutted a system that worked. I bought two books at the beginning of 2013 from which to learn DirectX11. Then the infamous loss of XNA and DirectX11 (in its prior form) happened. Then the Windows 8 debacle happened. It appeared that Microsoft was in a dive to doom, so I waited to see the company collapse. Microsoft recovered, but graphics programming for new developers has not. Why was a solution to protect newcomer graphics programmers too difficult for Microsoft leaders? A shell program that included a working Visual Studio and DirectX SDK combo, so that older learning manuals could be used, should have been done. When you say that old code needs to be changed to workable new code, then you are saying that a learner must change the code in a teaching manual, so that it works right in order to learn from. It is a chicken and egg problem that should have been avoided. A shell program to learn with. That is all that was needed.

  8. @Elisha – I'm sorry you have found this experience so personally frustrating, but it's unfortunately the reality for technology to change. Sometimes that change is incremental, and other times is it more abrupt. When you add the kinds of timelines that are normal for the print industry to the mix, you can easily get a book that is outdated on it's first printing. I've tried to address these issues for the books I've seen, and as I've pointed out numerous times on this blog the instructions on MSDN tell you exactly how you can continue to use the legacy DirectX SDK (June 2010) release in combination with the Windows 8.x SDK that comes with VS 2012/2013/2015. With those instructions, your existing DirectX 11 books/tutorials should work just fine for learning traditional Windows desktop development with DirectX.

    For C++ development, DirectX Tool Kit has some tutorials that should prove useful.

    For C# development with DirectX, you can use SharpDX, Unity, or MonoGame.