Internet Explorer 11 has retired as of 15 June, 2022
DirectX SDK - (June 2010)
This download is the legacy DirectX SDK. It is now end-of-life and should only be used for maintaining older software. For targeting DirectX for Windows 7 or later, use the modern Windows SDK instead.
571.7 MBThe system headers in this legacy DirectX SDK are newer than the Windows 7.1 SDK, but older than system headers in the Windows 8.x SDK, Windows 10 SDK, or later. For details on usage and recommendations for each component and library in this legacy DirectX SDK, see Microsoft Docs.p For XAudio2, the recommendation is to use https://aka.ms/XAudio2Redist instead which supports Windows 7 or later with the latest version. It uses a simple aplication-local redistribution model.
Users wishing to install the DirectX runtime for the purposes of playing an older game built using the legacy DirectX SDK should instead install the DirectX End-User Runtime. See related resources at the bottom of this page.
Supported Operating Systems
Windows Server 2008, Windows XP, Windows Server 2003, Windows 7, Windows Vista
- Click the Download button on this page to start the download
- Do one of the following:
- To start the installation immediately, click Run.
- To save the download to your computer for installation at a later time, click Save.
- To cancel the installation, click Cancel.
What's New in the June 2010 DirectX SDK
This version of the DirectX SDK contains the following new features, tools, and documentation.
Visual Studio 2010 Support
The June 2010 DirectX SDK includes support for Visual Studio 2010. The DirectX SDK will continue to support Visual Studio 2008 as well. However, Visual Studio 2005 will no longer be supported.
PIX: Object Naming Support
The June 2010 version of PIX supports naming for most resource objects in Direct3D (D3D). Direct3D enables developers to attach arbitrary data to objects in D3D code using the SetPrivateData API for application-specific usage. PIX will now display specific string data for objects in the Object Table and other user interface elements where a human-readable object name will provide a much more effective experience for the user.
PIX: Usability Improvements
The June 2010 version of PIX includes improvements to the PIX user interface:
- The Object Table shows the size and shader model for each shader.
- In the Shader Debugger, there is a new toolbar button that enables the display of all constant registers/variables immediately, rather than the first time they are read.
- In the Shader Debugger, it is possible to copy register and variable data to the clipboard.
- The Summary pane has a new Direct3D Information section, that shows details about what Direct3D capabilities are present on the computer.
The June 2010 release updates XNAMath to version 2.03, which includes the following changes:
- Addition of XMVectorDivide to optimize SSE2 vector division operations
- Unified handling of floating-point specials between the Windows SSE2 and no-intrinsics implementations
- Use of Visual Studio style SAL annotations
- Modifications to the C++ declarations for XMFLOAT2A/3A/4A/4X3A/4X4A to better support these types in C++ templates
The June 2010 DirectX SDK removes versioning from several Direct3D data types that cross runtime versions. This change makes legacy data-type names equivalent to the new version-less data-type names. Therefore, you can use either legacy or version-less names. However, your code will be cleaner and easier to maintain if you use the version-less names.
New D3DCreateBlob Function
The June 2010 DirectX SDK includes a D3dcompiler_43.dll that exports the new D3DCreateBlob function. Therefore, you are no longer required to use D3d10.dll to create and use an arbitrary length data object.
New ID3D11ShaderReflection Method
The June 2010 DirectX SDK adds the following new method to the ID3D11ShaderReflection interface:
HLSL has been updated with the following fixes and features:
- The frexp intrinsic function has been updated to return a mantissa in the range of [0.5,1.0].
- New intrinsic functions have been added for better debugging support.
- printf -- submits custom shader messages to the information queue.
- errorf -- submits custom shader error messages to the information queue.
- abort -- submits custom shader error messages to the information queue and terminates the current draw or dispatch call being executed.
- Left-Hand-Side typecasting is now illegal and will cause a compile error.
- Expressions such as (int)myFloat = myInt; are no longer valid. Use myFloat = (float)myInt; type syntax instead.
The HLSL Effects compiler (fxc.exe) has been updated with the following fixes and features:
- No-optimization (/Od) compiles will produce less-optimized code than before in order to provide improved debugging.
- No-optimization (/Od) now implies (/Gfp).
- New compression (/compress) and decompression (/decompress) options have been added to enable the bundling and unbundling of shader files.
- A new numbering instructions (/Ni) flag has been added to turn on numbering of instructions in shader disassembly.
- Fxc.exe has a new @command.option.file feature for specifying command options in a file. This enables the /compress and /decompress options to be used on many files at once.
The new D3DX_DXGIFormatConvert.inl inline header includes light-weight conversion functions for use in Compute Shaders or Pixel Shaders on D3D11 Hardware that can be useful when applications need to simultaneously read and write to textures, such as in-place editing scenarios.
The June 2010 DirectX SDK includes the following documentation enhancements:
- Added links to descriptions of data types for parameters and return values to help developers locate related types.
- Added additional header and lib information to reference pages for APIs implemented in DirectX samples.
For a description of what was added in previous releases, see Features Introduced in Previous Releases in the DirectX SDK documentation.
Known Issues with the June 2010 DirectX SDK
Support for Visual Studio 2010 and Visual Studio 2005
Beginning with the June 2010 release, the DirectX SDK supports Visual Studio 2010. The June 2010 release continues to support Visual Studio 2008 Service Pack 1. The DirectX SDK no longer supports Visual Studio 2005; the February 2010 release was the last release to support Visual Studio 2005.
Support for DirectSetup
Beginning with the June 2010 DirectX SDK, DirectSetup no longer supports operating systems earlier than Windows XP Service Pack 2 and Windows Server 2003 Service Pack 1.
Visual Studio 2008 Path Registration Sometimes Fails
In the June 2010 release, the DirectX SDK installer will attempt to automatically register the executable, include, and library path settings needed for compilation of samples and other DirectX programs. In some circumstances, however, automatic registration fails and, therefore, attempts to include DirectX SDK headers result in errors. To work around this issue, manually add the proper path registration to Visual Studio. For more information, see the instructions in the topic "Installing DirectX with DirectSetup" in the section "Install the DirectX SDK".
DirectX SDK Does Not Register Include/Library Paths with Visual Studio 2010
With Visual Studio 2010, the model for adding include, library, and executable paths has changed. In Visual Studio 2008 and previous versions, paths were specified as global settings under Tools\Options. With Visual Studio 2010, paths are now specified on a per-project basis on a VC++ Directories page. All the Visual Studio 2010 projects for the DirectX SDK samples and tools include direct per-project references to the DirectX SDK--via the DXSDK_DIR environment variable--and will compile without any additional steps. New projects that make use of DirectX SDK headers, libraries, or tools should have these references added to the VC++ Directories property page. For more information, see the topic "Installing DirectX with DirectSetup" in the section titled "Install the DirectX SDK", as well as the Visual Studio team blog entry: Visual Studio 2010 C++ Project Upgrade Guide.
Samples Content Exporter Requires Visual Studio 2008
In the June 2010 DirectX SDK, the Samples Content Exporter is designed to use Autodesk FBX SDK 2010.2. The Samples Content Exporter does not work with later versions of the Autodesk FBX SDK (2011.x). Also, the Autodesk FBX SDK does not yet support Visual Studio 2010, and the DirectX SDK Visual Studio 2010 projects for the Samples Content Exporter therefore use the 'v90' toolset provided with Visual Studio 2008. As a result, you must have Visual Studio 2008 installed in order to compile the Samples Content Exporter. For more information, see the Visual Studio team blog post entry: C++ Native Multi-Targeting.
Help Integration for Visual Studio 2010
The new Microsoft Help System (MHS), delivered via Visual Studio 2010, enables you to view documents on the MSDN Library using a standard browser. You can also select documents to download from the MSDN Online content publication web site (MSDN cloud) to your computer for viewing when a connection to the Internet is unavailable or undesirable. You can access this functionality from the Help Library Manager. To launch the Help Library Manager, select:
Start | All Programs | Visual Studio 2010 | Visual Studio Tools | Help Library Manager
The MHS is set to Online Mode by default. The first time you click a Help shortcut, you will be asked to confirm that you wish to connect to the Internet to view documentation in the MSDN cloud. If you wish to view documentation when a connection to the Internet is unavailable, you can import documentation sets (books) from the MSDN cloud and install these books to your computer. You can then switch to Offline Mode to view content on your computer by default.
- To import content to your local computer for viewing in offline mode, select "Install Content from online" in Help Library Manager. For the DirectX SDK documentation, select the "Win32 and COM Development" content title.
- To check for updated content in the MSDN cloud that you can import, select "Check for updates online" in Help Library Manager.
- To remove imported content from your local computer, select "Remove content" in Help Library Manager.
Beginning with the August 2009 DirectX SDK, the Windows Graphics documentation is provided as a separate documentation collection from the main DirectX SDK documentation collection. The Windows graphics documentation collection includes content for Direct3D 9, Direct3D 10.x, Direct3D 11, D3DX, DXGI, and HLSL.
In the June 2010 release, the Direct2D documentation is incorrectly marked preliminary and subject to change. This is the official, release documentation for Direct2D; this warning can be safely ignored.
Direct3D 11 Runtime
To obtain the Direct3D 11 runtime, please install the release version of Windows 7 or Windows Server 2008 R2. Windows Vista users can follow the procedure described in KB 971644 (or KB 971512 for corporate network users). For more details, see Direct3D 11 Deployment for Game Developers.
The Effects runtime for Direct3D 11 (FX11) is available as shared source in the DirectX SDK. For more information, please refer to Effects (Direct3D 11) and Effect System Interfaces (Direct3D 11) in the Windows Graphics documentation. The Effects 11 source is now located in the samples directory(Samples\C++\Effects11).
DirectX 11 Runtime Symbols
The modern DirectX Runtime is part of the operating system (OS), and symbols for the DirectX components (Direct3D, DirectInput, DirectSound, etc.) are provided as part of the OS symbol packages. DirectX 11 Runtime symbols are included in the Windows 7 and Windows Server 2008 R2 symbols packages available on the Microsoft website. However, we recommend using the Microsoft symbols server instead for the most current and correct set of symbols when debugging DirectX applications.
Note that DirectX 11 Runtime symbols for the down-level KB 971644 and KB 971512 update for Windows Vista and Windows Server 2008 are not included in the OS offline symbols package. They can be obtained from the Microsoft symbol server.
The Provided D3D9D.dll for Windows XP is Versioned for Service Pack 2
The D3D9D.dll that is included in the February 2010 and later DirectX SDKs is versioned for Windows XP SP2. If you use this DLL on Windows XP SP3 with an application that uses the Windows Presentation Framework (WPF), the code in the DLL will assert. This issue does not occur on Windows Vista or Windows 7. If you require only debug output, that is, you do not require symbols, you could also use the checked version of D3D9.dll, which is compatible with Windows XP SP3. Just rename the checked D3D9.dll to D3D9D.dll. The checked version of D3D9.dll is available to MSDN subscribers.
Control Panel for DirectX 9 Debug Output is Specific to 32-bit or 64-bit Applications
In order to turn DirectX 9 debug output on or off, you must use the DirectX control panel appropriate to the application being debugged. Use the 64-bit DirectX control panel for 64-bit applications and the x86 DirectX control panel for 32-bit applications.
D3DCompiler_42.dll and D3DCompiler_43.dll Are in Their Own Cab
Beginning in the August 2009 DirectX SDK release, D3DCompiler_*.dll has been moved out of the D3DX CAB to a new CAB: D3DCompiler_*_*.CAB. The D3D_Compiler functionality implements the offline HLSL compiler for D3D 9, 10, or 11. This change decouples the compiler from D3DX.
New Warning X3206: Implicit Truncation of Vector Type
Beginning in the August 2009 release of the DirectX SDK, the HLSL compiler will warn when an implicit truncation of a vector type occurs. For example, the follow code would elicit the warning.
float4 FastShadow ( float3 vLightPos, float4 vDiffColor )
float2 vLightMax = vLightPos + g_fFilterSize;
if ( bTextured ) In.vDiffColor.xyz *= DiffuseTex.Sample ( DiffuseSampler, In.vTCoord );
To avoid the warning, swizzle out the vector components as shown below.
float4 FastShadow ( float3 vLightPos, float4 vDiffColor )
float2 vLightMax = vLightPos.xy + g_fFilterSize;
if ( bTextured ) In.vDiffColor.xyz *= DiffuseTex.Sample ( DiffuseSampler, In.vTCoord ).xyz;
IXACT3Engine::PrepareWave Doesn't Support xWMA
In the March 2008 and later SDKs, the IXACT3Engine::PrepareWave doesn't support xWMA. If you want to use xWMA in XACT, you can prepare those waves by calling one of the following methods:
The latest and most complete source for debugging symbols is the Microsoft Symbol Server. We recommend using the symbol server rather than using the included partial symbols package. For instructions about using the Microsoft Symbol Server, see http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx.
Installation Notes for All Platforms
- This SDK is supported on the most recent service packs of the following operating systems: Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, Windows 7, and Windows Server 2008 R2. This SDK supports Visual Studio 2008 Service Pack 1 and Visual Studio 2010.
- Before installing the current DirectX SDK, remove previous versions of the DirectX SDK.
- Use the Samples Browser to install samples included with the DirectX SDK.
- Some samples require that you have installed the latest Microsoft Windows SDK on your system.
- If you are using Visual Studio and run the Platform SDK Integration tool, all custom include and library paths will be erased for Visual Studio 2008, including those added by the DirectX SDK. To fix the issue, developers need to either reinstall the DirectX SDK or manually add the paths to Visual Studio 2008.
- If you encounter compilation issues related to the DirectX headers, make sure that the include directories in Visual Studio 2008 are set correctly. On the Win32 platform, make sure that there is a reference to the DirectX headers. "$(DXSDK_DIR)include" should appear in the include directory "$(VCInstallDir)Include." In Visual Studio 2010, this directory should be added on a per-project basis in the VC++ Directories property page in the project properties dialog.
- Several virus protection software applications interfere with SDK installation. They may require you to disable virus protection software until SDK installation is completed.
- Your system may be corrupted, or cryptographic services may be disabled, if you encounter the following error message during installation: "A cabinet file is necessary for installation and cannot be trusted." To resolve the problem, try the following:
- Enable cryptographic services. On the Start menu, right-click My Computer, and then click Manage. The Computer Management window appears. In the left navigation pane, click Services and Applications. In the right pane, double-click Services, and then double-click Cryptographic Services. The Cryptographic Services Properties property sheet appears. On the General tab, ensure that Service Status is Started, and that Startup Type is Automatic.
- If you are running Windows on a FAT32 drive, run scandisk.
- Try the resolution steps in Detecting digital signing issues in Windows XP.
- Try the resolution steps in You cannot install some updates or programs.
- Remove temporary files in the %temp% folder. If you are installing an end-user runtime, also remove "%windir%\system32\directx\websetup Error."
- External firewall programs may indicate that the file InstallDeveloperFiles.exe wants to access the Internet. This is by design, and should be enabled.