This section contains the following:
What's New in the August 2009 DirectX SDK
This version of the DirectX SDK contains the following new features, tools, and documentation.
Direct3D 11 RTM
The August 2009 DirectX SDK contains the first official release of the DirectX developer resources for Direct3D 11, DXGI 1.1, Direct2D, and DirectWrite. Developers can now publish and distribute Direct3D 11 applications and games that leverage all of the software and hardware features of DirectX 11 in Windows 7 and Windows Vista.
To obtain the Direct3D 11 runtime, please obtain an RTM version of Windows 7 or follow the procedure described in KB 971644. For more details, see Direct3D 11 Deployment for Game Developers
All headers, import libraries, and symbol files (.pdb files) are no longer marked as beta with the "_beta" suffix and now link to the RTM versions of the runtimes. In addition, the HLSL compiler features for Direct3D 11 are now of release quality. The beta DLLs are no longer available in the DirectX SDK.
Platform Update for Windows Vista (Direct3D 11 on Windows Vista)
The Platform Update for Windows Vista (KB 971644) is a collection of features and programming interfaces made available for use on previous Windows operating systems, specifically, Windows Vista and Windows Server 2008. Graphics components Direct3D 11, Direct2D, DirectWrite, DXGI 1.1, 10level9 feature level support, the WARP10 software rendering device, and updates to Direct3D 10.1 are included in this package.
The Platform Update for Windows Vista (KB 971644) is supplied through Windows Update as a recommended install. The package requires Windows Vista/Server 2008 Service Pack 2.
Users who have enabled automatic updates will likely already have the Direct3D 11 components installed, as will all Windows 7 users. However, some steps may be necessary to ensure that the update is installed on a user's machine during installation of your game or 3D application. For more information, see the Direct3D 11 Deployment for Game Developers technical article and the D3D11InstallHelper code sample.
Effects 11
The new Effects runtime for Direct3D 11 is now available. Effects 11 is provided in two parts: the D3DCompiler library and FXC. Both now support the new fx_5_0 target. Features of this new target include support for all Direct3D 11 features such as hull shaders, domain shaders, interfaces, and DirectCompute, as well as grouping of techniques within a single Effect file using the fxgroup keyword. Please refer to the documentation for more information (Effects (Direct3D 11)). The Effects 11 runtime is provided as source in the Utilities directory, including Visual Studio 2005 and 2008 projects for building the runtime into a library for use in applications. Features include effect cloning for multithreaded operation, the new shader stages, unordered access views, interfaces, and extended user-defined state control. For more information, please refer to the Effects 11 API documentation (Effect System Interfaces (Direct3D 11)).
Direct3D Compute Shader Extensions (D3DCSX)
Included in the August 2009 DirectX SDK is the D3DCSX library, which includes new technologies for utilizing DirectCompute for advanced processing on the GPU. This first version includes implementations of scan and Fast-Fourier transform that utilize Direct3D 11 capable GPUs. Scan is a data-parallel algorithm for fast calculation of averages, sums, min, max, and other values from large data sets. The Fast-Fourier transform provides conversion from temporally sampled data to frequency information. Please refer to the documentation Compute Shader Overview for more information.
New and Improved Samples
The August 2009 release includes many new samples across a broad range of areas.
- Basic Samples
BasicHLSL11
EmptyProject11
SimpleSample11 - Shadow Techniques
CascadedShadowMaps11
ContactHardeningShadows11
VarianceShadows11 - Compute Shader
BasicCompute11
ComputeShaderSort11
NBodyGravityCS11
OIT11 - Tessellation
DetailTessellation11
PNTriangles11
SimpleBezier11 - BC6H/BC7 Texture Compression
BC6HBC7EncoderDecoder11 - DDS File Format
DDSWithoutD3DX11
DDSWithoutD3DX (Updated Direct3D 10 Sample)
NOTE: The DDS file format documentation has been updated with more detail, and is now located in the Windows Graphics documentation under the "DXGI" node. - Direct3D 10.1
HDAO10.1
TransparencyAA10.1 - Windows 7 Touch Messages
WindowsTouch
NOTE: Building this sample requires the Windows SDK for Windows 7 and Windows Server 2008 R2 to be installed as it makes use of updated Win32 headers. - Games for Windows Showcase S.6 (Direct3D 10 Sample)
10BitScanout10
Games for Windows Technical and Test Requirements Update
The August 2009 release includes the most recent version of the Games for Windows documentation (1.4.2009). Changes include:
- Full details on Windows 7 applicability, particularly for the Game Explorer GDF version 2 schema (TR 1.1) and changes to Windows Family Safety/Parental Controls (TR 1.2)
- New Windows Vista and Windows 7 Technical Requirement (TR 1.8) for High-DPI Aware support.
- Refresh of the Games for Windows Showcase Appendix for showcase S.1, S.2, and S.3, as well as new showcases S.4, S.5, and S.6.
- New Recommended Best Practices Appendix.
XNA Test Case Tool Update
The August 2009 release includes an updated XNA Test Case Tool. The XNA Test Case Tool facilitates the process of verifying that a title meets all the technical requirements and test requirements needed to receive the Games for Windows brand. This update adds the following new features:
- The tool checks for digital time stamps in the signatures and checks to see if files are set to be High-DPI Aware.
- The report generated by the tool includes rating information, e.g. ESRB, from the game description file (.gdf).
- The tool generates a list of the .exe files and the requested execution levels that are specified in their manifests. Knowing the requested execution levels helps to avoid issues with User Account Control (UAC).
- The tool enables the user to specify that the results file should be encrypted.
The Setup program for the DirectX SDK copies the install file for the XNA Test Case Tool to the following location:
Utilities\bin\x86\Microsoft XNA Test Tools\MicrosoftXNATestTools.msi
XNA Math Improvements
The August 2009 release includes an updated XNA Math, version 2.01. XNA Math now has new compiler directive, XM_STRICT_VECTOR4. This opt-in directive disallows the usage of XboxMath-like member accessors such as .x, .y, and .z. This makes it easier to write portable XNA Math code.
Additionally, XNA Math has added conversion support for the following Windows graphics formats:
- 16-bit color formats (565, 555X, 5551)
- 4-bits per channel color formats (4444)
- Unique Direct3D 10/11 formats (DXGI_FORMAT_R9G9B9E5_SHAREDEXP and DXGI_FORMAT_R11G11B10_FLOAT)
DirectX SDK Utilities Updates
This release includes an updated DirectX Capabilities Viewer utility and Graphics Card Capabilities spreadsheet with details on Direct3D 11, DXGI 1.1, 10level9 feature levels, and the WARP10 software rendering device.
The Texture Conversion tool for Direct3D 10, texconv10, has been replaced by texconvex which supports all DXGI 1.x formats for Direct3D 10 and Direct3D 11.
The DXERR9 library has been removed. The DXERR library supports all current error codes.
The DirectX Control Panel has been updated to support the Direct3D 11 debug layer. Note that both the Direct3D 10 and Direct3D 11 debug layers are controlled by the same settings.
Documentation Organization
The August 2009 release includes a new "Windows Graphics" documentation collection which includes the Direct3D 9, Direct3D 10.x, Direct3D 11, D3DX, DXGI, and HLSL content formerly located in the main DirectX SDK documentation collection.
Known Issues with the August 2009 SDK
Direct3D 11 Samples may fail to start on Windows Vista
For the August 2009 DirectX SDK, all the samples and tools use the RTM versions of the Direct3D 11 Runtime OS components. These components are not installed by the DirectX SDK Developer Runtime nor by the DirectSetup REDIST. Deploying these components on Windows Vista or Windows Server 2008 requires installing KB 971644, which in turn requires that Service Pack 2 for these operating system is already installed. Windows 7 and Windows Server 2008 R2 already include the Direct3D 11 Runtime OS components. Without these components, some of the Direct3D 11 samples will fall back to Direct3D 9 rendering, while others will fail to run.
For more information on KB 971644 and handling Direct3D 11 prerequisites, see the technical article Direct3D 11 Deployment for Game Developers.
August 2009 PIXWin Has Limited Support for Direct3D 11 Applications
The August 2009 version of PIX for Windows will record and play back back single and full-stream captures of applications using the Direct3D 11 API unless they make use of Compute Shader shaders or resources, Dynamic Shader Linkage binding, Tessellation shaders, or shared resource device methods. Use of any of these will cause PIX for Windows to abort the capture.
The following features are not supported when using a Direct3D 11 device: UI injection display, frame counters, pixel history, shader debugging, or mesh viewer.
August 2009 D3D9D.dll is Versioned for Windows XP SP2
The D3D9D.dll that is included in the August 2009 DirectX SDK 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.
DXERR9 library removed from the DirectX SDK
The DXERR9 library has been removed from the DirectX SDK as of the August 2009 release. The DXERR9 error look-up library has been deprecated for some time in favor of DXERR which supports a broad range of DirectX and related error codes. The DirectX SDK Error Look-up Tool uses DXERR.
August 2009 PIXWin Cannot View Full-Stream Captures of Applications Created using March 2009 Beta Components
On Windows Vista systems, PIX files captured from DXUT-based programs on computers with the March 2009 DirectX SDK installed may show an error message when later opened with PIX on computers with the August 2009 DXSDK installed. This is because the March 2009 DirectX SDK included a preview of the WARP software rendering device, and DXUT-based programs temporarily create D3D devices of all types that are present on the system. The August 2009 DXSDK does not include the WARP device. Therefore PIX cannot successfully replay the call that creates the WARP device. The issue can be resolved by installing the KB 971644, which provides the WARP device.
New Warning X3206: Implicit Truncation of Vector Type
Beginning in the August 2009 release of the DirectX SDK, the 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;
D3DCompiler_402dll Moved to New Cab
Beginning in the August 2009 DirectX SDK release, D3D_Compiler_42.dll has been moved out of the D3DX CAB to a new CAB: D3DCompiler_42_*.CAB. The D3D_Compiler functionality implements the offline HLSL compiler for D3D 9, 10, or 11. This change decouples compiler from D3DX.
Title: HLSL Runtime Compiling for Shader Models that Do Not Allow NaN or Infinity Literals
When compiling code that looks like the following:
pow(max(0, f), e)
If the result of max(0,f) is 0, the statement will be evaluated as exp(-inf * e), which may cause the following error message: (error X4579: NaN and infinity literals not allowed by shader model). This is because pow(0, e) will be expanded to exp(log(0) * e), which will evaluated as exp(-inf * e).
The workaround for compiling code like this, for a shader model that does not allow NaN or infinity literals, is to change 0 in max(0, f) to 0.00001f, or some other acceptably small non-zero value.
This scenario typically fails during a call toID3DXEffectCompiler when compiling for shader models that do not allow NaN and infinity literals (such as DX9 shader targets). It is a regression from the November release. The result may show up when debugging a game that exits at startup and generates an error message such as "nonzero reference count" or "an error occurred in the device creation callback function".
IXACT3Engine::PrepareWave Doesn't Support xWMA
In the March 2008 and later SDKs, theIXACT3Engine::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:
- IXACT3WaveBank::Prepare
- IXACT3SoundBank::Prepare
- IXACT3Engine::PrepareInMemoryWave
- IXACT3Engine::PrepareStreamingWave
Building Samples Using the Visual Studio 2005 Project Files Results In Harmless Warning
Developers who build the samples may see the following harmless warning:
manifest authoring warning 81010002: Unrecognized Element "requestedPrivileges" in namespace "urn:schemas-microsoft-com:asm.v2".
This is a known issue with the manifest tool (mt.exe) that ships in Visual Studio 2005 SP1. To remove this warning, developers should update their versions of mt.exe to the version that ships in the Windows SDK. Developers should update the instances of mt.exe that ship in Visual Studio 2005 SP1, found in the following three locations:
- VC\bin\
- Common7\tools\bin\
- SDK\v2.0\bin\
Symbols for DirectX
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, and Windows 7. This SDK supports Visual Studio 2005 and Visual Studio 2008.
- 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, 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.
- If you encounter compilation issues related to the DirectX headers, make sure that the include directories in Visual Studio 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."
- 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-clickMy Computer, and then clickManage. The Computer Managementwindow appears. In the left navigation pane, click Services and Applications. In the right pane, double-clickServices, and then double-clickCryptographic Services. TheCryptographic Services Properties property sheet appears. On theGeneral tab, ensure thatService Status is Started, and thatStartup Typeis 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.