http://download.microsoft.com/download/d/b/9/db9153aa-4419-4a06-a1f1-aafd7944f453/dxsdk_march2008.exe
The DirectX SDK March 2008 release is now live!
http://msdn2.microsoft.com/en
The What's New and Release notes are included below. Note that our next scheduled release for the DirectX SDK is for June 2008.
-Chuck Walbourn
SDE, XNA Developer Connection
What's New in the March 2008 DirectX SDK
This version of the DirectX SDK contains the following new features, tools, and documentation.
Direct3D 10.1 RTM
Direct3D 10.1 is an incremental, side-by-side update to Direct3D 10 that provides a series of new rendering features that will be available in an upcoming generation of graphics hardware.
* TextureCube Arrays which are dynamically indexable in shader code.
* An updated shader model (shader model 4.1).
* The ability to select the MSAA sample pattern for a resource from a palette of patterns, and retrieve the corresponding sample positions.
* The ability to render to block-compressed textures.
* More flexibility with respect to copying of resources.
* Support for blending on all unorm and unorm formats.
The DirectX SDK now contains the proper headers, libraries, debug binaries, and an updated version of the Direct3D 10 reference rasterizer to support development of Direct3D 10.1 applications. Direct3D 10.1 requires Windows Vista SP1, which is available to MSDN subscribers currently and publicly available on Windows Update in mid-March.
XAudio2 and XACT3 RTM
The libraries for XAudio2 and XACT3 are now supported release versions.
xWMA Decoding in XAudio2 and XACT3
Both XAudio2 and XACT3 now support xWMA> decoding in software on both Xbox 360 and Windows. xWMA uses the WMA bitstream format in a light-weight wrapper and can provide 1.5X the compression compared with XMA at similar quality. xWMA is very useful for types of content, such as dialog or music, for which you can afford a small CPU hit to achieve much greater compression. A quality setting similar to XMA's allows you to increase or decrease compression to adjust sound performance.
This SDK also includes WMAEncode, a command-line tool that allows you to create xWMA content for use in both XAudio2 and XACT3.
XACT3 Exposes a Filter On Every Track
XACT3 now exposes a filter on every track, letting the sound designer set the filter type and parameters (filter width and the cutoff/center frequency). The filter can be set directly on a track or it can be attached to an RPC. Sound designers can set either specific filter parameters, or they can specify a range, and a random value in that range will then be selected for the parameter each time the track is played.
PIX Stability Improvements
This release of PIX has improved stability when doing single-frame captures of Direct3D 10 applications. It also features improved reliability of shader debugging and pixel history.
Changes in Visual Studio Support
The March 2008 DirectX SDK includes support for Visual Studio 2008. The DirectX SDK continues to maintain support for Visual Studio 2005, but Visual Studio 2003 is no longer supported.
Games for Windows Technical Requirements and Test Requirements Updated
The Technical Requirements documents have been updated with additional clarifications and improved test cases. No Technical Requirements were changed.
New and Updated Samples
This release has several new samples. In addition, all audio samples that were using XACT and DirectSound have been updated to use XACT3 and XAudio2. All DirectSound samples have been removed.
* The PIX Game Debugging sample demonstrates common techniques for debugging games by using PIX for Windows.
* The ProceduralMaterials sample shows various procedural materials that are created through shaders.
* The SubD10 sample demonstrates Charles Loop's and Scott Schaefer's Approximate Catmull-Clark subdivision surface technique running on D3D10 hardware.
* The VideoMemory sample shows how to use various methods to determine the amount of video memory available on a system.
Known Issues with the March 2008 SDK
Breaking Changes in the HLSL Compiler
In order to improve the performance and usability of the HLSL compiler for both 10 and 9 targets, changes were made to the parser component of the HLSL compiler. Several of these changes may require you to change your HLSL code. For most of the impactful changes, using the compatibility compilation flag (/Gec) will suppress the parser change.
Note: These changes do not affect the legacy D3D9-only HLSL compiler that is enabled using the /LD switch.
* Type double cannot be used.
* Type half can no longer be used as a global variable type. This can be suppressed using the compatibility compilation flag (/Gec).
* Built-in types such as float4 can no longer be redefined as other types via typedef.
* Type void is no longer legal as a parameter or member type.
* Floating-point literals are now an "any float" type, changing overload resolution in some cases.
* Default parameters are now always resolved statically. It is no longer legal to give default parameters in a function definition if there is a prototype. Defaults can only be given in the prototype.
* Default parameter values are no longer legal for inout and out parameters.
* Target qualifiers (i.e. ps_4_0) can no longer be specified for functions.
* All semantic target strings are now validated at parse time and must match valid target names.
* All global variables are now implicitly const. This can be suppressed using the compatibility compilation flag (/Gec).
* Comparisons between signed and unsigned values now produce a warning.
* Redefining a loop variable in a following loop generates a warning that the variable has been redefined.
* Techniques names are now contained in the global scope. Therefore you cannot have multiple techniques of the same name, and you cannot have a function and a technique of the same name.
* For Direct3D 10 targets, developers can no longer bind two different variables to the same constant register. For example, the following code is no longer legal:
const float4 a : register(c30);
const float4 b : register(c30);
To correct this code and produce the exact same compiled code, it should be changed to the following:
const float4 a: register(c30); static const float4 b = a;
Breaking Change in XAPO
In order to improve the performance and usability of XAPO, the March 2008 SDK has several changes that will affect a title:
* IXAPO::Enable and IXAPO::Disable have been removed. Developers should use the IsEnabled parameter of IXAPO:Process instead.
* IXAPO::LockForProcess now takes a parameter of type XAPO_LOCKFORPROCESS_BUFFER
* IXAPO::Process now takes a parameter of type XAPO_PROCESS_BUFFER_PARAMETERS
* CXAPOBase now implements IUnknown so that titles don't need to do this.
xWMA and Looping
The xWMA encoder may add a variable amount of silence (up to several hundred milliseconds) to the end of waves. Volume fades authored into the beginning and end of waves may mitigate noticeable pauses on loop, but for seamless looping of waves, users should consider using ADPCM on Windows or XMA on Xbox 360.
xWMA Compression Doesn't Support AIFF Sources
In the March 2008 SDK, content creators must use WAV files if they want to use xWMA compression. The AIFF file format can be used for ADPCM and XMA compression. In a future release of the SDK, AIFF will be supported in xWMA.
32 kHz Stereo xWMA Content Currently Unsupported in XACT
In the March 2008 SDK, compressing 32 kHz stereo audio files to the xWMA format is unsupported in XACT. In debug builds, this content will generate the following assert:
ASSERT FAILED: InputWMAFormatInfo.wmaFormat
In retail builds, the same content may not play. In a future release of the SDK, this format will be supported.
XACT Platform-Specific Compression Restrictions
In XACT, users should ensure that compression presets are valid for a given wave on all platforms; if compression fails, the wave will revert to use no compression preset, and therefore will be uncompressed on all platforms. For Windows exclusive titles, ensure that the Xbox 360 format setting is PCM to avoid this issue. On Xbox 360, ensure that all XMA-compressed waves are 16-bit. On Windows and Xbox 360, ensure that all xWMA-compressed waves use xWMA's supported sampling rates. This issue will be fixed in a future release of the SDK.
IXAudio2::GetPerformanceData Returns Incorrect Value for Total Number of Audio Dropouts
In the March 2008 SDK, the IXAudio2::GetPerformanceData method returns an incorrect value for the total number of audio dropouts (GlitchesSinceLastQuery) since the last call to IXAudio2::GetPerformanceData. The other data returned by IXAudio2::GetPerformanceData is accurate. In a future release of the SDK, IXAudio2::GetPerformanceData will accurately report the total number of audio droppouts.
Encoding Tiny Files or Files with Tiny Loops Generate an Error in XACT
Very small audio files (PCM size of 1024 bytes or less) or those with very small loop points (for 16-bit waves, less than 64 samples) will generate an error when attempting to ADPCM compress them in XACT; titles should use PCM for waves and loop regions that are this small. This issue will be fixed in a future release of the SDK.
XAudio2: Queries about Volume, Pitch, Frequency Ratio, and Filter Parameters May Not Return Currently Set Values
In the August 2007 and later SDKs, changing state (such as the volume, pitch, frequency ratio, filter parameters, and others) is deferred. The following methods will all return the most recently set value, even if that value hasn't yet been applied to the sounds.
* IXAudio2Voice::GetChannelVolum
* IXAudio2Voice::GetOutputMatrix
* IXAudio2Voice::GetVolume
* IXAudio2SourceVoice::GetFilter
* IXAudio2SourceVoice::GetFreque
In a future release of the SDK, these methods will return the values that are currently applied to the sounds.
Games for Windows Technical Requirement 1.6 Is Retired
Effictive immediately, the Games for Windows Technical Requirement 1.6 is retired along with its test requirement. Future version of the technical requirements and test requirements will reflect this change.
DXGI: Cross-Process Shared Surfaces not Supported in the Reference Rasterizer
Cross-process shared surfaces are not supported when using the Reference Rasterizer.
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 on using the Microsoft Symbol Server, see http://www.microsoft.com/whdc
Windows 95, Windows 98 and Windows ME Are Unsupported by the DirectX SDK
Starting with the December 2006 SDK, the DirectX SDK does not support targeting of applications for Windows 95, Windows 98, Windows 98 SE, or Windows ME. The D3DX DLL does not install or load on these legacy operating systems. To support these legacy operating systems, use the October 2006 SDK or an earlier version.
Installation Notes for All Platforms
* This SDK installs on Windows XP, Windows Server(r) 2003, Windows Server 2008, and Windows Vista using Visual Studio .NET 2005 or 2008.
* Before installing the current DirectX SDK, remove previous versions of the DirectX SDK.
* Some samples require that you install the latest Microsoft Windows SDK (Platform SDK) on your system.
* If you are using Visual Studio 2005 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 will 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."
* SDK Installation to a network share is not supported. Some components (documentation and managed samples) do not run.
* Several virus protection software applications interfere with SDK installation. They may require you to disable virus protection software until SDK installation is completed.
* If you encounter the error message "A cabinet file is necessary for installation and cannot be trusted" during installation, your system may be corrupted, or cryptographic services may be disabled. To resolve the problem, try the following:
1. 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, make sure that Service Status is Started, and that Startup Type is Automatic.
2. If you are running Windows on a FAT32 drive, run scandisk.
3. Try the resolution steps in Detecting digital signing issues in Windows XP< http://support.microsoft.com
4. Try the resolution steps in You cannot install some updates or programs<http://support.microsoft.com
5. Remove temporary files in %temp%. If you are installing end-user runtime, also remove "%windir%\system32\directx
* External firewall programs may indicate that the file InstallDeveloperFiles.exe wants to access the Internet. This is by design, and should be enabled.
Installation Notes for Windows Vista
Running Microsoft_DirectX_SDK.msi instead of setup.exe requires that you run as administrator. If you install by using setup.exe instead of the MSI, you will be prompted for elevated permissions before the installation can succeed.
The DirectX SDK No Longer Contains...
The DirectX SDK no longer contains the following components:
* 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
Developers wanting to use these components will need to download the August 2007 DirectX SDK, available from MSDN.
The REDIST and Web DXSetup have not been not be affected by these removals.