What's New in the June 2008 DirectX SDK
This version of the DirectX SDK contains the following new features, tools, and documentation.Significant Stability and Performance Improvements to PIX for Windows
PIX for Windows is significantly more stable, faster and easier to use. There are improvements to capture and replay, the mesh viewer, the shader debugger, pixel history, and support for DirectX features.

Single-frame capture and full-stream capture are now more than twice as fast.

PIX now has a unified method of handling errors that halts capture or playback as soon as an error (such as running out of memory) occurs. The error information is reported to the user and valid call information is recorded and shown whenever possible.

The shader debugger, mesh viewer and capture infrastructure are significantly more stable across different drivers and operating systems, including both 32-bit and 64-bit versions.

The shader debugger has much better handling of Direct3D 9 and Direct3D 10 multi-sampled render targets.

Instanced draws and DrawAuto calls are now supported in the mesh viewer, shader debugger, and pixel history.

Predicated draw calls are now respected in the mesh viewer.

The Device, Shader Resource and Blend State views now display Direct3D 10.1-specific information when applicable.

For Direct3D 10, swap-chain information (IDXGISwapChain) is now displayed in addition to the device information.

New Bitrate Options for xWMA Audio Compression
In addition to previously supported compression settings, the June release adds more and lower bitrate options to the xWMAEncoder tool, allowing users to achive better compression. The default encoder bitrate has changed from 96000 to 48000 bits per second.xAPO Effects Library
This release contains a new XAudio2 effects library (XAPOFX), implemented using XAudio2's native xAPO format for real-time DSP effects. The xapofx.lib library contains a mastering limiter, a new lightweight reverberation to complement the existing Princeton Digital Reverb, and a 4-band equalizer effect.New Articles
This release includes two new articles.

The DirectX Graphics Infrastructure (DXGI): Best Practices article describes some of the issues when porting a Direct3D 9 application to Direct3D 10. DXGI encapsulates the code for enumeration, swap-chain creation, and presentation that was previously handled by Direct3D 9.

The Autorun sample demonstrates working with User Account Control (UAC) and process elevation to initiate the installation process for a title and then launch the installed title.

Known Issues with the June 2008 SDKBreaking Changes in the HLSL Compiler Coming From November 2007 or Prior SDKs
In order to improve the performance and usability of the HLSL compiler for both 10 and 9 targets, the March 2008 and later SDK have changed the parser component of the HLSL compiler. If you are migrating from an SDK prior to March 2008, 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 no longer can be used as a global variable type. This can be suppressed using the compatibility compilation flag (/Gec).

Built-in types such as float4 no longer can be redefined as other types via typedef.

Type void no longer is 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) no longer can be specified for functions.

All semantic target strings now are validated at parse time and must match valid target names.

All global variables now are implicitly const. This can be suppressed by 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 now are 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 no longer can bind two different variables to the same constant register. For example, the following code no longer is 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;

XACTEngine, XAudio2, X3DAudio and XAPOFX Debug DLLs Have Been Moved
In the June 2008 and later SDKs, the XACTEngine, XAudio2, X3DAudio and XAPOFX debug DLLs are no longer installed in the %dxsdk_dir%utilities directory. These DLLs are now installed in the %systemroot%\system32 directory.Center Audio Channel Gets Mapped to Wrong Speaker When Routing 5.1 Voices to Stereo Voices in XAudio2
In the June 2008 SDK, the center audio channel gets mapped to the wrong speaker when using XAudio2 to route voice data from a 6-channel voice to a 2-channel voice. (Note: the Xbox 360's final 5.1 to Dolby Pro Logic 2-encoded Stereo downmix functions properly and is not affected by this bug.) To work around this issue, titles should call IXAudio2Voice::SetOutputMatrix with the following code:
float aLevelMatrix[] = { 0.29454544f, 0.00000000f, 0.20818181f, 0.090909094f, 0.25181818f, 0.15454546f,
0.00000000f, 0.29454544f, 0.20818181f, 0.090909094f, 0.15454546f, 0.25181818f };
pSourceVoice->SetOutputMatrix(pDestinationVoice, 6, 2, (const float*)&aLevelMatrix);
This issue will be fixed in a future release of the SDK.Resampler In XAudio2 May Introduce Aliasing For Mono 16-bit Source Data
In the March 2008 and later SDKs, the resampler in XAudio2 may introduce more aliasing for mono 16-bit source data compared to other formats. This is noticeable mostly on frequency changes larger than a factor of two. To workaround this issue, use a submix voice to implement the bulk of the frequency change.
For example, playing an 11 kHz mono wave will exhibit the aliasing when sending to a 44.1 kHz voice. By sending the source voice first to an 11 kHz mono submix, and then to the 44.1 kHz destination voice, the aliasing is mitigated.
In a future release of the SDK, the resampler will eliminate some of the more objective aliasing specific to mono 16-bit source data.Don't Flush Source Buffers Immediately Before Destroying a Voice
In the March 2008 and later SDKs, titles should not call IXAudio2SourceVoice::FlushSourceBuffers immediately before calling IXAudio2SourceVoice::DestroyVoice. Titles that do call FlushSourceBuffers immediately before DestroyVoice may cause the title to crash. Titles that must flush source buffers before destroying the voice should insert a short pause between flushing the buffers and destroying the voice. For example, the title might have code similar to the following:
pSourceVoice->FlushSourceBuffer();
Sleep( 2 );
pSourceVoice->DestroyVoice();
In a future release of the SDK, titles will not need to insert the short pause.Breaking Change in XAPO Coming From November 2007 or Prior SDKs
In order to improve the performance and usability of XAPO, the March 2008 and later SDKs have several changes (when compared to releases prior to March 2008) that may 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_PARAMETER* instead of XAPO_LOCKFORPROCESS_BUFFERPARAMETER**.

IXAPO::Process now takes a parameter of type XAPO_PROCESS_BUFFER_PARAMETERS* instead of XAPO_PROCESS_BUFFER_PARAMETERS**.

CXAPOBase now implements IUnknown so that titles don't need to do this.

xWMA Compression Doesn't Support AIFF Sources
In the March 2008 and later SDKs, 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.Unable to Reuse Attached XAPOs
In the November 2007 and later SDKs, titles are unable to reuse XAPOs that have been attached to a voice effects chain. If a title maintains a reference to an XAPO instance, adds the XAPO to a voice effects chain, and then destroys that voice, the title is blocked from re-using that XAPO instance in a subsequent voice effects chain. 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::GetChannelVolumes

IXAudio2Voice::GetOutputMatrix

IXAudio2Voice::GetVolume

IXAudio2SourceVoice::GetFilterParameters

IXAudio2SourceVoice::GetFrequencyRatio

In a future release of the SDK, these methods will return the values that currently are applied to the sounds.XACT Fails Silently When Saving to Protected Directories on Windows Vista
On Windows Vista, XACT fails silently when a user tries to save XACT project files to a protected directory such as "Program Files"; to the user, it will look like the save was successful. In a future release of the XDK, XACT will give a warning when trying to save to protected directories.

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 reverts to the use of a no compression preset, and, therefore, is 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.Can't Debug Direct3D 9 Vertex or Pixel Shaders on 64-bit Versions of Windows Vista
On 64-bit versions of Windows Vista, debugging the vertex or pixel shader of a Win32 Direct3D 9 application may cause PIX to either freeze or display an error. This issue will be fixed in a future release of the SDK.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 about using the Microsoft Symbol Server, see http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx.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

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:

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.

Remove temporary files in %temp%. If you are installing 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.

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.

This tool checks your computer for infection by specific, prevalent malicious software (including Blaster, Sasser, and Mydoom) and helps to remove the infection if it is found. Microsoft will release an updated version of this tool on the second Tuesday of each month.

Download and run the Windows 7 Upgrade Advisor to see if your PC is ready for Windows 7. It scans your hardware, devices, and installed programs for known compatibility issues, gives you guidance on how to resolve potential issues found, and recommends what to do before you upgrade.