As noted on Microsoft Docs, 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
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:
Dism /online /add-capability /capabilityname:Tools.Graphics.DirectX~~~~0.0.1.0
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. The
fx_* shader profile support in the HLSL complier is deprecated.
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.
The Windows 10 SDK includes the latest headers and link libraries for DirectX including Direct3D 12.0, Direct3D 11.3, DXGI 1.4, Direct2D/DirectWrite 1.3, and XAudio 2.9.
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. There is now a NuGet package for using XAudio 2.9 down-level on Windows 7 Service Pack 1, Windows 8.0, and Windows 8.1. See Microsoft Docs for details.
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 or later, see Microsoft Docs 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.
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 and DirectX 12 Visual Studio templates. D3DX12 is not in any SDK, there’s no DLL, and there’s no REDIST for it. You can obtain the latest version from GitHub. DirectX Tool Kit, DirectXTex, and DirectXMesh also support DirectX 12.