The DirectX SDK

The DirectX SDK contains APIs for graphics, audio and input. Below I describe some of the changes made in each of recent releases (for the history of DirectX see this here: DirectX History).

The DirectX end user runtime is generally synchronised with operating system releases e.g. DirectX 9.0c is in Windows XP SP2, Server 2003 SP1 and the Windows XP x64 Professional Version. DirectX 10 is Vista and DirectX 11 is Windows 7. The D3DX helper function library changes frequently and is not automatically downloaded by the end user. For a note on the issues with the Direct3D D3DX dlls and to download installers for ones that you may be missing please visit this page: D3DX DLLs. The SDK download is the same for Windows XP and Vista operating systems but DirectX 10 (Direct3D 10) can only run under the Vista operating system. DirectX 11 requires Windows 7.

DirectX SDK February 2010

Follow this link to download it: DirectX SDK Download Page

Not much new this time, main changes are:

  • PIX improvements focussing on Direct3D 11
  • IXAudio improvements for voice reuse

DirectX SDK August 2009

Follow this link to download it: DirectX SDK Download Page

Always make sure you uninstall previous versions of the SDK before installing the latest version. (Really do so – this caught me out once and what a nightmare it was to get back to a functioning computer!).

Main changes in this update

  • DirectX 11 RTM now officially released. It includes Direct3D 11, DXGI 1.1, Direct2D and DirectWrite (for text rendering)
  • Effects 11
  • D3DCSX library (Direct3D Compute Shader Extensions)
  • New and improved samples

DirectX SDK March 2009

Always make sure you uninstall previous versions of the SDK before installing the latest version. (Really do so – this caught me out once and what a nightmare it was to get back to a functioning computer!).

Main changes in this update

  • Technical preview of a new 2D library called Direct2D
  • Technical previews of DirectWrite (text rendering) and DXGI (DirectX Graphics Infrastructure) low level graphics functionality.
  • XNA Math comes over from the Xbox and provides a library of math support
  • Improvements to the audio libraries XAudio2, xAPO and xWMA and to the performance tool PIX
  • Updated samples
  • Technical preview of Direct3D 11 and Windows 7 support updates

DirectX SDK November 2008

Changes in this update

  • Direct3D 11 Technical Preview
  • XACT3 support for xWMA bit rates supported by XAudio2

DirectX SDK August 2008

Changes in this update

  • Many improvements to PIX
  • Notch filter added to XAudio2
  • Echo effect added to XAPO effects library
  • Games for Windows branding tool

DirectX SDK June 2008

Changes in this update:

  • PIX stability and performance improvements
  • New bitrate options for xWMA audio compression
  • xAPO effects library – new XAudio2 effects library for real time DSP effects like limiter, reverb and EQ
  • HLSL compiler changes – these changes may cause problems with code written for the SDK prior to March. Check the Micorsoft web site for details.
  • Some new articles and samples

DirectX SDK March 2008

Changes in this update:

  • Direct3D 10.1 RTM – update to Direct3D 10 providing new rendering features including:
    • New shader model (4.1)
    • MSAA sample pattern selection
    • More flexibility of resource handling
    • Note: version 10.1 requires Vista with Service Pack 1 installed
  • XAudio2 and XACT3
    • Both of these are now release versions
    • Both now support xWMA decoding in software on Xbox 360 and Windows
  • PIX stability improvements
  • Includes support for Visual Studio 2008
  • Dropped support for Visual Studio 2003

DirectX SDK November 2007

Changes in this update:

  • XAudio2 Beta improvements
    • XAPO – a DSP plug-in model so you can write your own DSP effects
    • Plus a number of other improvements
    • No more changes will be made to XAudio, so you should use XAudio 2 from now on
  • Notice of future changes: from the March release the SDK will include support for Visual Studio 2008. It will drop support for 2003 but continue to support 2005 for the time being.

DirectX SDK August Update 2007

Changes in this update:

  • From this release there will be just four SDK updates a year rather than every two months (phew!). Scheduled future releases are now set for November 2007, March 2008, June 2008 and August 2008
  • XAudio2 Beta – this is a new audio API based on the current XBox 360 one that will work on XBox 360 and PC platforms. This API is a low level audio signal processing library and as such will replace DirectSound.
  • XACT sessions – improvements allow a mixing desk style console for the sound designer
  • Direct3D 10.1 preview – this is a preview of new functionality that will appear via future graphic hardware improvements. It includes  an updated shader model. Note that this requires the Windows Vista SP1 Beta.
  • Importantly this is the last DirectX SDK to contain the following
    • Direct3D8 and all of the earlier versions
    • Direct3D RM
    • DirectAnimation
    • DirectMusic
    • DirectInput7 and all of the earlier versions
    • DirectPlay
    • DirectPlayVoice
    • DirectX8-era HRESULT conversion routines
    • Managed DirectX samples and documentation

DirectX SDK June Update 2007

Changes in this update:

  • XACT user interface improvements
  • X3DAudio now provides listener cones and other parameters for sound
  • PIX improvements (mainly under Vista)
  • The Vista Direct3D9Ex APIs are now available (note that the samples are in the Vista SDK)

DirectX SDK April Update 2007

Changes in this update:

  • XACT improvements
  • PIX changes
  • Updated shader compiler (no longer any support for shader 1.x targets)

DirectX SDK February Update 2007

Changes in this update:

  • PIX Changes
    • 64 bit support
    • Vista fixes
    • Frame counters for Direct3D 10
  • DirectSound header updated for Vista speaker configurations
  • Documentation for Direct3D9Ex. This is a new version of Direct3D 9 for Vista and can actually be found in the Vista Platform SDK

DirectX SDK December Update 2006

Changes in this update:

  • The first official release of Direct3D 10 – requires Vista of course!
  • Improved D3DX functionality
  • XACT and PIX improvements
  • Discontinued support for Windows 95,98,SE and ME
  • Discontinued support for shader model 1

DirectX SDK October Update 2006

Changes in this update:

  • PIX – full ‘live’ debugging of shaders in game
  • New HLSL shader compiler for Direct3D 9. With Vista on the way and Direct3D 10 Microsoft have made the Direct3D 10 shader compiler available for Direct3D 9 targets.
  • Xinput updated with XInputGetKeystroke call

DirectX SDK August Update 2006

Changes in this update:

  • PIX – allows the full debugging of shaders inside of a single frame capture and mesh data viewing
  • Direct3D technology preview – improvements and additions

DirectX SDK June Update 2006

Changes in this update:

  • Direct3D 10 technology preview – updated. Requires Windows Vista Beta 2. Includes a new backward compatible HLSL compiler.
  • PIX updates. Includes an amazing new function called pixel history which allows you to select a pixel in a frame and see all the calculations that affected it
  • XACT updates – allows for the import, export, and sharing of variables, categories, and presets across XACT projects.

DirectX SDK April Update 2006

Only a few small changes in this update:

  • XInput API updated to support arcade sticks and wheel types.
  • XACT updates
  • PIX improvements
  • Direct3D 10 Samples Added
  • Windows Vista Game Explorer – documentation update

DirectX SDK February Update 2006

Changes in this update:

  • D3DX – Improvements to UVAtlas
  • XACT – new features and performance improvements
  • Direct3D 10 – shader compilation supports downlevel shader models
  • PIX improvements

DirectX SDK December Update 2005

Changes in this update:

  • Direct3D 10 Technology Preview – if you have Vista and a graphics card from the future you could program for the new DirectX 10 SDK. Unfortunately few will have Vista and nobody will have a capable graphics card yet – however the inclusion of Direct3D 10 may be helpful in planning for the future. For a discussion on the new features see this article on gamedev
  • XACT beta – audio tool updated.
  • Net 2.0 support updated for managed DirectX
  • Shader pre processing API added
  • Other: PIX updated, DxErr updated and updated samples

DirectX SDK October Update 2005

Changes in this update:

  • XInput – a new API for the Xbox 360 controller
  • XACT beta – cross platform audio creation tool
  • Improved support for Visual Studio 2005
  • Effect Edit and Mesh View tools removed. The new DirectX Ops and DirectX Viewer tools are meant to replace the functionality however they do not have all the previous functionality so you may wish to keep the tools from the old SDK.

DirectX SDK August Update 2005

Only a few small changes this update:

  • PIX (Performance Analyser for DirectX) tool update
  • Effect system updates
  • New sprite sorting flags.
  • The D3DX DLL is now named D3DX9_27.dll (see note)
  • DirectX Viewer – allows viewing x files with DXSAS compliant effect. As this tool is replacing functionality currently in MView (for viewing mesh) and EffectEdit (editing and viewing shaders and effects) these two tools are now deprecated and in fact MView will be removed in the next SDK release..
  • A few other minor changes (see the DirectX SDK Download Page for more details).
  • The sample browser will not work with IE 7 !

Note: DirectShow was moved to the Platform SDK in the April release and overall DirectX is becoming more reliant on the Platform SDK, so always a good idea to get the latest.

DirectX SDK June Update 2005

Main Changes / Fixes are:

  • D3DX Changes – includes changes to the effects system and PRT speed improvements.
  • The D3DX DLL is now named D3DX9_26.dll (see note)
  • Changes to PIX including the ability to view D3D surfaces as they change.
  • Tool enhancements for Maya and a DXSAS 1.0 viewer (DirectX Standard Annotations and Semantics)
  • Changes to the runtime installer so you can can choose which parts to install (see note).
  • New starting samples and support for VS.NET 2005

Note: DirectShow was moved to the Platform SDK in the April release

DirectX SDK April Update 2005

Main Changes / Fixes are:

  • D3DX minor improvements including UV texture mapping APIs and enhanced PRT
  • The D3DX DLL is now named D3DX9_25.dll (see note)
  • The User Interface (DXUT) components are now separate from the main framework
  • Improvements to the PIX tool
  • DirectShow has been removed. It is now in the Platform SDK

Note: you can get the April update to work with Visual Studio 6. Thanks to Derek Smart for this. How to do it is described in this discussion on GameDev: Using VS6 with DirectX April 2005 SDK

DirectX SDK February Update 2005

Main Changes / Fixes are:

  • Windows 2000 is no longer a supported platform for DirectX development
  • All of DirectShow has moved to the Extras folder
  • Starting with this SDK release, D3DX is being released as a dynamic-link library (DLL). Updates to D3DX in the future will continue to ship as uniquely named DLLs that exist side-by-side on the system. This allows for continued improvements to the library without imposing regression risk. D3DX9.lib is still provided as the import library for the DLL which your application can statically link against. The DLL is D3DX9_24.dll. (see note).
  • The statically linked debug library (D3DX9dt.lib) has been removed; use D3DX9d.lib instead
  • PIX tool update
  • D3DX enhancements

DirectX SDK December Update 2004

Main Changes / Fixes are:

  • New samples
  • PIX tool update
  • D3DX enhancements to the PRT framework
  • Notes
    • Starting with the next SDK release, Windows 2000 is no longer a supported platform for DirectX development
    • Microsoft DirectInput, Microsoft DirectSound and Microsoft DirectMusic are in maintenance mode and will continue their current status until new technologies in these areas is made available
    • Microsoft DirectPlay has been deprecated and is considered obsolete. While the DirectPlay runtime components will still be supported for the life of the operating system, the headers, libraries and documentation may be removed in a future release of the SDK.

DirectX SDK October Update 2004

Just a few small changes in this release:

  • Improved help files
  • PIX (Performance Analyser for DirectX) improved.
  • D3DX bug fixes
  • A number of new samples
  • DirectShow tools and samples moved out of the main SDK into the Extras download

DirectX SDK Summer Update 2004

The main additions in this release are to do with D3DX, the samples and tools.

  • A much improves sample framework that includes a set of GUI (Graphical User Interface) components. This means you can now easily display buttons, sliders, text, dialogs etc.
  • Addition of the PIX (Performance Investigator for DirectX) tool – analyses DirectX performance for optimisation purposes. It captures information whilst your game is running and then produces a breakdown of the work done by the CPU and GPU so you can optimise your code.
  • D3DX Improvements
    • Performance improvements to PRT (Precomputed Radiance Transfer), the effects framework and .x files.
    • Version 3.0 HLSL shader support

In addition the SDK comes with a Photoshop plug in (and Paintshop pro) supporting the D3DX texture formats. There have also been some updates to the Maya exporter.

Removals / Issues in the SDK

  • DirectPlay is no longer supported. Microsoft are dropping DirectPlay completely although the functionality in this release is the same as previous releases apart from the lack of a debug dll. Also the help files no longer mention DirectPlay and there are no DirectPlay samples. You can get the old DirectPlay documentation from MSDN. The rumour is that Microsoft will release the XBox networking solution as an alternative.
  • DirectShow is no longer supported. Again you can still use DirectShow with this release but there are no help files (you can get the old ones via MSDN) although there are still samples. I have compiled an old DirectShow application I had written with this release and it works fine. The rumour is that DirectShow will be replaced by a separate Media SDK (Microsoft felt that those using DirectShow were not the same programmers as those using the other APIs in the SDK).
  • App wizard. The app wizard previously available for .net is no longer included. Instead to create a start-up project you use the sample browser and select ‘Install Project’
  • No further support for Visual Studio 6. Since this is a large issue and in fact there is a work around I have added another section at the bottom of this page: Visual Studio 6 and DirectX After Note: strangely the April SDK does work with Visual Studio 6.

Other DirectX Issues

  • If you find a .x file that loaded fine in a previous version of the SDK does not load in this it is probably due to the stricter loading code in the SDK. Try re-exporting the .x file or saving it as text and finding the problem.
  • If you get .x file related compiler errors like: error C2061: syntax error : identifier ‘LPDIRECTXFILEDATA’ you need to add #include <dxfile.h> to your code as these types have been moved into this header.

Visual Studio 6.0 and DirectX

This note only applies to the SDK Summer Update 2004, to get Visual Studio 6.0 to work with a later version of the SDK is much more difficult. For details on how to do it with the April SDK see the section above.

Visual Studio 6 has been with us a long time and even though it had its own quirks it was a very good development environment. Time moves on though and the latest development environment from Microsoft is Visual Studio .net 2003. Microsoft no longer want to support Viz 6 (understandably) so this release of DirectX will not work (as it is) with Viz 6. However there are ways to get it to work:

  • The D3DX debug library will not work with Viz 6 however Microsoft have provided one that will, you can find it in the Extras download. So you should use this version of d3dx9.lib with Viz 6 not the one in the installed lib directory.
  • When you compile you may find an error referring to DWORD_PTR (or others) not being defined, this is because Microsoft removed the BASETSD.H file from this distribution. You will need to update your Platform SDK (see here: Platform SDK)

At the end of the day then you can still use Viz 6 with this latest SDK update however perhaps now is the time to switch to .net? I know I have and although it has its problems like being slower than Viz 6 there are many benefits. Apart from improvements to C++  the new DirectX SDK integrates really well allowing you for example to write and debug shaders all from within the IDE.

Further Reading

There are many more notes on this site about programming DirectX, a small selection:

  • DirectX Q&A
  • Direct3D FAQ
  • Direct3D Setup
  • 3D Rendering
    • Primitives, FVF, Buffers, Rendering Steps, Z Buffer, Matrices, Lighting, Materials
    • Render States, Sampler States, Texture States