Where is the DirectX SDK (2015 Edition)?

As noted on MSDN, the DirectX SDK is deprecated. The June 2010 release is the last release, and "DirectX" is now part of the Windows SDK. There are really only three scenarios where you should continue to use the old DirectX SDK:

You have code (or perhaps an older book) that makes use of D3DX9, D3DX10, D3DX11, or XACT Engine.

Your application uses use XAudio2 and supports Windows 7 systems.

You are targeting Windows XP with the alternate v1x0_xp Platform Toolset.

Remember that use of the legacy DirectX SDK is not supported for UWP app or Xbox One development.

Developer Runtime: The Windows 8.1 SDK or Windows 10 SDK is where you obtain the latest DirectX Developer Runtime that is compatible with Windows 7, Windows 8.0, and Windows 8.1. The DirectX Developer Runtime for Windows 10 is an optional Windows feature you enable in the operating system. You can also enable it on Windows 10 via the command-line using an admin prompt:

FX: The latest version of Effects for Direct3D 11 is available on GitHub and does not require the legacy DirectX SDK or any version of D3DX.

DXUT: The latest version of DXUT for Direct3D 11 is available on GitHub and does not require the legacy DirectX SDK or any version of D3DX.

Tools: Some of the developer tools are in the Windows SDK others are not. See DirectX SDK Tools Catalog for a complete inventory.

Samples: A number of samples from the DirectX SDK (June 2010) release have been updated and posted to GitHub. They do not require the legacy DirectX SDK or any version of D3DX. See DirectX SDK Samples Catalog.

Both the Windows 8.1 SDK Spring 2015 update and the Windows 10 SDK include Direct3D 11.0/11.1/11.2, DXGI 1.0/1.1/1.2/1.3, DirectXMath 3.07, and Direct2D/DirectWrite 1.0/1.1/1.2. They also include the legacy Direct3D 10.0/10.1, Direct3D9Ex, Direct3D 9 headers, DirectSound8, DirectInput8, and DirectMusic "core" APIs. See DirectX SDKs of a certain age for a full catalog of older DirectX APIs and their locations.

XInput: The Windows 10 SDK includes the Windows.Gaming.Input WinRT API which is supported on Windows 10. Both the Windows 8.1 SDK and Windows 10 SDK include XInput 1.4 which is supported on Windows 8.x and Windows 10. You should use XInput 9.1.0 to support Windows 7. See XINPUT and Windows 8 and DirectX Tool Kit: Now with GamePads.

XAudio: The Windows 10 SDK includes XAudio 2.9 which is supported on Windows 10. The Windows 8.1 SDK and Windows 10 SDK include XAudio 2.8 which is supported on Windows 8.x and Windows 10. You have to use the legacy DirectX SDK and XAudio 2.7 to support Windows 7. See XAudio2 and Windows 8 and Known Issues: XAudio 2.7.

DirectX SDK: If you need to make use of legacy DirectX SDK components such as D3DX9, D3DX10, D3DX11, or XAudio 2.7 with VS 2012, VS 2013 or VS 2015, see MSDN for details on mixing the Windows 8 or Windows 10 SDK correctly with the legacy DirectX SDK. Be sure to The Zombie DirectX SDK as well. If you are targeting Windows XP which makes use of the Windows 7.1A SDK, see Visual Studio 2012 Update 1.

DirectX 12

There is something called the DirectX 12 SDK which was used as a beta vehicle for the development of DirectX 12 through the Early Access Program. Now that the Windows 10 SDK is final, you don't need access to the DirectX 12 SDK at all. The DirectX 12 samples are on GitHub.

D3DX: Note that there is also a header file called d3dx12.h which is an all inline header with some utility code shipped in the GitHub samples. D3DX12 is not in any SDK, there's no DLL, and there's no REDIST for it. DirectX Tool Kit, DirectXTex, and DirectXMesh also support DirectX 12.

You can use many WinRT APIs from Windows desktop apps, including Windows.Gaming.Input on Windows 10. See DirectX Tool Kit's GamePad for an implementation using WRL that works from desktop apps (assuming you initialize WinRT). You'll have to do some runtime detection if you want to try to make a single EXE work prior to Windows 10 using XInput and make use of Windows.Gaming.Input on WIndows 10, but if you are using XInput 1.4 you are already requiring Windows 8.0 or later.

I have testing farm with Win10 x64 systems with both Win8.1 and Win10 SDKs installed (default settings). I'm running both WHCK 2.0 and 2.1 tests. Most WGF11XXX tests run fine, but the WGF11Tessellation and WGF11Shader5x tests give me the following error:

SetupD3D: CreateDevice failed with error 0x887a002d.

Internet points me to the app not finding the DirectX Debug runtime. I was near certain the WDKs would take care of this, but they're not. I don't have Visual Studio installed on the farm systems btw.

That did indeed take care of it. We had been using the tried-and-true method of "trial and error" to cover our bases, but this was the missing piece. Had I read this prior I would've known, but at least now I know where to go. Thanks for keeping us devs up to date on this!

The Windows 8.0, Windows 8.1, and Windows 10 SDKs are all compatible with Windows 7. VS 2012, 2013, and 2015 support Windows 7 SP1 for both development and targeting. Direct3D 11.1 is supported on Windows 7 SP1, although with some limitations.

Setting up a system for C++ development work for Direct3D 11 on Windows 7 is as easy as installing VS 2012, 2013, or 2015. You can add DirectX Tool Kit using NuGet. It's actually a lot easier than it was with the legacy DirectX SDK.

Windows 7 is also not 'current'. It was first released in 2009, which at this point is coming up to 7 years ago. There have been three major releases of Windows since, and by the lifecycle policy that has been in place for a long, long time has already left 'mainstream' support.

As the last person to work on the DirectX SDK, I've felt a personal drive to be a good steward of it's legacy, and I mean that word in the traditional meaning rather than the technical field's over-use of it to mean "thing we did last year". In the Windows 8 era, it would have been a reasonable charge to say that the lack of an updated DirectX SDK was a hindrance to Windows 7 developers, which is why I've done so much of this work on my own recognizance.

Thanks to the company's more welcoming position on open source, I have excellent channels to continue to support the community while helping to bridge the gap to Microsoft's new platforms. If you aren't interested in Xbox One, Windows Store, or universal Windows apps yet, all this material is still useful to you for Windows 7 development -and- you will be in a much better position to move to the any of these platforms if and when you choose to.

The standalone DirectX SDK had many virtues, but it also isn't necessary. The main problem is understanding the transition, and the loss of a well-known, well-understood, easily discoverable delivery vehicle for the latest news for Windows game developers targeting Windows 7. That is exactly what most of the past 5 years of blog posts has been about…

@Marin – D3DCompile_46 and D3DComplile_47 both work fine on Windows 7, but there's no "Runtime" that deploys them to Windows 7. You should copy it out of the Windows SDK redistd3d folder and put it side-by-side with your application EXE. See HLSL, FXC, and D3DCompile.