The next release of the DirectX SDK is scheduled to ship to developers in early June 2010. This release will be the first update to the Windows Graphics components since the August 2009 release and will also introduce support for Visual Studio 2010.
Visual Studio 2010 Support
The June 2010 DirectX SDK includes support for Visual Studio 2010. The DirectX SDK will continue to support Visual Studio 2008 as well. However, Visual Studio 2005 will no longer be supported.
PIX: Object Naming Support
The June 2010 version of PIX supports naming for most resource objects in Direct3D (D3D). Direct3D enables developers to attach arbitrary data to objects in D3D code using the SetPrivateData API for application-specific usage. PIX will now display specific string data for objects in the Object Table and other user interface elements where a human-readable object name will provide a much more effective experience for the user.
PIX: Usability Improvements
The June 2010 version of PIX includes improvements to the PIX user interface:
- The Object Table shows the size and shader model for each shader.
- In the Shader Debugger, there is a new toolbar button that enables the display of all constant registers/variables immediately, rather than the first time they are read.
- In the Shader Debugger, it is possible to copy register and variable data to the clipboard.
- The Summary pane has a new “Direct3D Information” section, that shows details about what Direct3D capabilities are present on the computer.
XNAMath C++ SIMD Math Library
The June 2010 release updates XNAMath to version 2.03, which includes the following changes:
- Addition of XMVectorDivide()to optimize SSE2 vector division operations
- Unified handling of floating-point specials between the Windows SSE2 and no-intrinsics implementations
- Use of Visual Studio style SAL annotations
- Modifications to the C++ declarations for XMFLOAT2A/3A/4A/4X3A/4X4A to better support these types in C++ templates
Version-less Naming of Cross-Runtime Data Types
The June 2010 DirectX SDK removes versioning from several Direct3D data types that cross runtime versions. This change makes legacy data-type names equivalent to the new version-less data-type names. Therefore, you can use either legacy or version-less names. However, your code will be cleaner and easier to maintain if you use the version-less names.
New D3DCreateBlob Function
The June 2010 DirectX SDK includes a D3dcompiler_43.dll that exports the new D3DCreateBlob function. Therefore, you are no longer required to use D3d10.dll to create and use an arbitrary length data object.
New ID3D11ShaderReflection Method
The June 2010 DirectX SDK adds the following new method to the ID3D11ShaderReflection interface:
New HLSL Language fixes and features
HLSL has been updated with the following fixes and features:
- The frexpintrinsic function has been updated to return a mantissa in the range of [0.5,1.0).
- New intrinsic functions have been added for better debugging support.
- printf— submits custom shader messages to the information queue.
- errorf— submits custom shader error messages to the information queue.
- abort — submits custom shader error messages to the information queue and terminates the current draw or dispatch call being executed.
- Left-Hand-Side typecasting is now illegal and will cause a compile error.
- Expressions such as “(int)myFloat = myInt;” are no longer valid. Use “myFloat = (float)myInt;” type syntax instead.
New HLSL Compiler fixes and features
The HLSL Effects compiler (fxc.exe) has been updated with the following fixes and features:
- No-optimization (/Od) compiles will produce less-optimized code than before in order to provide improved debugging.
- No-optimization (/Od) now implies (/Gfp).
- New compression (/compress) and decompression (/decompress) options have been added to enable the bundling and unbundling of shader files.
- A new numbering instructions (/Ni) flag has been added to turn on numbering of instructions in shader disassembly.
- Fxc.exe has a new @command.option.file feature for specifying command options in a file. This enables the /compress and /decompress options to be used on many files at once.
The June 2010 DirectX SDK includes the following documentation enhancements:
- Added links to descriptions of data types for parameters and return values to help developers locate related types.
- Added additional header and lib information to reference pages for APIs implemented in DirectX samples.