This version of the DirectX SDK contains the following new features, tools, and documentation.
Improvements to PIX
PIX has much-improved support for analysis of programs that use Direct3D 11 features, including compute shaders, tessellation, and dynamic shader class linkage. PIX features such as pixel history, the shader debugger, the mesh viewer, frame counters, and screenshots now work for these Direct3D 11 programs.
The new "Playback Device" control in the Events pane enables the user to force PIX Direct3D playback to use the REF device.
Mesh viewer data can be exported to a CSV file by right-clicking the data tables displayed in the PreVS, PostVS, or PostGS views.
The texture viewer now supports the following additional formats:
DXGI_FORMAT_D24_UNORM_S8_UINT
DXGI_FORMAT_R24G8_TYPELESS
DXGI_FORMAT_BC1_UNORM_SRGB
DXGI_FORMAT_BC2_UNORM_SRGB
DXGI_FORMAT_BC3_UNORM_SRGB
XNAMath C++ SIMD Math Library
A minor revision to the library (version 2.02), includes a number of customer-reported fixes, optimizations, and improvements. Included are notable fixes to XMStoreColor(), XMQuaternionRotationMatrix(), XMVectorATan2(), and XMVectorATan2Est().
Direct3D 11 Deployment
The Direct3D 11 Deployment for Game Developers article and D3D11InstallHelper Sample have been updated to include guidance for corporate network users in a locally managed Windows Server Update Services (WSUS) environment. For these developers, KB 971644 is not applicable and they should refer to KB 971512 instead.
Enhancements to Voice Reuse Scenarios
Implementation changes to simplify voice reuse were made to IXAudio2SourceVoice::FlushSourceBuffers, IXAudio2SourceVoice::SetSourceSamplingRate, and IXAudio2SourceVoice::Stop. These changes enable titles to minimize the performance cost of creating and destroying multiple voices during the game.
Reverb and Mixing Performance Optimizations
We have optimized the codepaths for several of the less common channel mixing scenarios for mixing within the audio graph.
Previous Releases
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 February 2010 SDK
Message: The DirectX component 'd3d10sdklayers.dll' is currently in use by other applications
The following message sometimes appears during setup or uninstall:
The DirectX component 'd3d10sdklayers.dll' is current in use by other applications
If you encounter this message, select Ignore and reboot your system after setup or uninstall is complete. This issue occurs only on Windows 7 and Windows Server 2008 R2.
PIX Crashes on Call to GetImmediateContext
In the February 2010 release, PIX crashes if the target application calls D3D11CreateDevice() or D3D11CreateDeviceAndSwapChain() with a NULL ppImmediateContext, then later calls GetImmediateContext() to get the immediate context. To work around the issue, pass a non-NULL pointer for ppImmediateContext. This issue will be corrected in an upcoming release.
Support for Visual Studio 2005 and Visual Studio 2010
In the next release, the DirectX SDK will add support for Visual Studio 2010. At that time, the DirectX SDK will no longer support Visual Studio 2005; the February 2010 release will be the last release to support Visual Studio 2005. The next release will continue to support Visual Studio 2008.
Direct3D 11 Runtime
To obtain the Direct3D 11 runtime, please obtain an RTM version of Windows 7 or follow the procedure described in KB 971644 (or KB 971512 for corporate network users). For more details, see Direct3D 11 Deployment for Game Developers.
Effects 11
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.
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 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.
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 Moved to New Cab
Beginning in the August 2009 DirectX SDK release, D3DCompiler_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.
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 to ID3DXEffectCompiler 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 2008 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".
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.
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:
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: