# Microsoft® DirectX® 9.0 SDK Update (February 2005) Final Release Last updated January 28, 2005 # Welcome This is Microsoft's DirectX 9.0 Software Development Kit (SDK) Update for February 2005 Final release. Primary areas of concentration for this SDK Update were for PIX, Preview pipeline, and updates for the Direct3D Extension Library (D3DX), Graphics Samples, Sample Frame work, tools and documentation. This includes the final version of the DirectX Runtime release called "DirectX 9.0c" with updated Managed DirectX binaries and D3dx binary from this SDK release. After installing, those new to DirectX should start with the DirectX 9.0 documentation. More seasoned developers may also want to view the "What's New" section. Professional DirectX developers should refer to the "KNOWN ISSUES" section prior to raising concerns. # Contents: What’s New What’s Coming Known Issues Installation Documentation DirectX for Managed Code Compiler Support CD Layout Roland SoundCanvans Sound Set for General MIDI and GS # What's New Below are highlights of what is new in this DirectX 9.0 SDK Update release. For a complete list of updates, please refer to the SDK Documentation "What's News" sections. SDK: Windows 2000 is no longer a supported platform for the SDK. All of the DirectShow component (Header, Libs, Utilities, Tools, and Samples) were moved to the extras folder New Samples and technical Articles: New "Top Issues for Windows Titles" article New PRTCmdLine sample New Managed HDRFormat sample Updated "Install-on-Demand for Games" and "Gaming with Least-Privileged User Accounts" with information about patching Tool Updates Enhancements to PIX have been made: You can now capture the Microsoft Direct3D calls made by a single frame of your application and play them back within PIX. When grabbing screenshots: You can append an incrementing number, or the current frame number, to the screenshot filename. You can specify whether to overwrite existing image files with the same filename. You can specify whether to show or hide the mouse cursor in the screenshot. New command-line options are available to: Convert a .PIXRun file to a .csv format that can be read by Microsoft Save an exclusive-or comparison of two images to a file D3DX Precomputed Radiance Transfer The precomputed radiance transfer (PRT) system has been enhanced: · New fast raytracing methods have been added for direct computation of ray/mesh intersections against a simulation scene. · GPU-accelerated direct-lighting computation now supports normal maps. Math Library · D3DX math functions on X64 have been heavily optimized for 64-bit processors in this release. HLSL Compiler · A series of improvements and bug fixes have been made to the HLSL compiler Effects Framework · New functions have been added to allow a developer to specify parameters to be ignored by the effects system and managed directly by the application. D3DX as a Dynamic-Link Library · Starting with this SDK release, D3DX is being released as a dynamic-link library (DLL). Updates to D3DX in the future will continue to ship as uniquely-named DLLs that exist side-by-side on the system. This allows for continued improvements to the library without imposing regression risk. D3DX9.lib is still provided as the import library for the DLL which your application can statically link against. See documentation for details. · The D3DX DLL included in the SDK is automatically installed as part of Installing DirectX with DirectSetup. If your application does not use D3DX, you can remove D3DX from the redistributable (see Directx redist.txt for details). · The statically-linked debug library (D3DX9dt.lib) has been removed; use D3DX9d.lib instead. Other · D3DX for DirectX8 was removed from the SDK in December. This was not mentioned in the release notes for the December SDK. back to top # What's Coming Below are some of the updates that will be available in future DirectX SDK releases. All information is subject to change and will be updated as appropriate. Removal of DirectShow from the DirectX SDK. The DirectShow SDK components are being moved into the Platform SDK Dependency on the Microsoft Platform SDK will become more explicit Addition of deep scene analysis in PIX which will allow users to capture information about one or more frames and then do in-depth analysis of those frames Better application compatibility and enhanced scripting support in PIX Additional whitepapers on texture management and IPv6 networking Preview Pipeline support for 3DS-Max, Photoshop and XSI Support for Visual Studio 2005 (aka Whidbey) for samples, tools and shader debugger Addition of XACT for Windows, allowing composers and sound designers to create dynamic sound effects and take advantage of sophisticated, real-time effects processing. back to top # Known Issues Visual Studio 2005 Support The samples do not compile immediately with Visual Studio 2005 Beta 1 Refresh. The workaround is to add the library “libcp.lib” to the ignore library project setting (Project Settings / Linker / Input / Ignore Specific Library). An error is generated by the manifest generator which will can be safely ignored as it will not affect the execution of the application. These issues will be resolved when Visual Studio 2005 is supported. 64-bit Platform Support: Many of the DirectShow samples include atlbase.h, which in turn includes shlwapi.h. In order for these samples to build, the Internet Development SDK (version 6.0 or newer) SDK component of the Platform SDK must be installed. This can be done by selecting that component after successful Core SDK installation, or reinvoking SetupA64.Exe and selecting the component for installation. Note that invoking "Platform SDK Update Site" from the start menu with the beta 1 SDK will attempt to download an older version of the Internet Development SDK which is not suitable for X64 builds. The DirectShow Filters\PushSource sample will fail to register when built for debug X64. This is a known issue and should be ignored. The x64 DirectShow DVDSample and PlayDVD samples require a 64-bit native DVD decoder to function properly. No such decoders were available at the time of this SDK release. It is likely that 3rd parties will provide decoders, so the sample build environments and pre-built binaries have been left intact in the SDK. Tools: Maya The preview pipeline will only work on Windows XP corrected in future releases. Alternatively, manually entering your color in the 4 associated textboxes will result in the expected behavior. Maya may be unstable if you unload the DirectX plugin after the plug-in has been started and viewed objects. If you do not want the plug-in loaded into Maya, you should choose the option to no auto-load the plug-in into Maya and restart Maya. When exporting an x file from the 'DirectX>Export Scene' menu option, make sure that you include the .x extension when saving as it is not being added by default. Under some cases with highly complex IK rigs, using the "Gather Animation" menu feature may cause an access violation in Maya, causing it to terminate. Paintshop Pro When this plug-in is used with Paintshop Pro 8, the loading of images with alpha channel causes Paintshop Pro to multiply the alpha channel by the RGB channels and discards the alpha channel. This causes images with the format XRGB to be loaded empty. The D3DXTextureFormat plug-ins returns an error when saving a file as one of D3DX texture formats. PIX · Pix will fail to profile 64-bit applications. This is issue will be fixed in a future release. PIX uses an application's PDB file in order to monitor its D3DX usage. You may have problems gathering D3DX usage information with PIX if your application's PDB file was generated by prerelease versions of Visual Studio 2005 In this release PIX will capture calls to the D3DX API’s if you use the new D3DX library that links to d3dx9_24.dll. All other operations for PIX will continue to work as expected. S upport for capturing D3DX APIs in previous d3dx releases will be available in the next release of PIX D3DX: D3D_DEBUG_INFO extensions define a CreationCallStack field on Direct3D resources. To enable creation call stacks, create the following registry value: \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D\D3D9Debugging\EnableCreationStack = 1. Enabling this feature can cause a large performance hit in many applications, and should only be used when the functionality is specifically needed for debugging. The D3DX library included in this release is dependant on the Direct3D runtimes that shipped with this SDK. If you link against this D3DX you must redistribute the runtime from this SDK When compiling HLSL code to the 3.0 target, significant code reordering is done to move gradient computations outside of flow control. D3DXSaveMeshHierarchyToFiles() does not currently save compressed animation sets. ID3DXSkinInfo::ConvertToBlendedMesh/ConvertToIndexedBlendedMesh() does not currently run on hardware that does not support fixed-function vertex blending. Documentation The known issues with the DirectX 9.0 Documentation are described in a separate file. You will find these issues listed in the DirectX9_Doc_Readme.txt file found in the <DXSDK Installed Folder>\Documentation\DirectX9 folder. Installing DirectX documentation from both the DirectX SDK and MSDN® Library can result in duplicate topics in Visual Studio. If this occurs, you should take the following steps to uninstall the DirectX documentation from the SDK. In Control Panel, click the Add/Remove Programs icon. Highlight Microsoft DirectX 9.0 Documentation and then click Remove. DirectShow Retail symbols for DirectShow binaries weren't updated for this release. This affects matching of symbols for 9.0b and 9.0c updates to: NT: quartz.dll qdv.dll qdvd.dll devenum.dll kstvtune.ax ksxbar.ax stream.sys Win9x: quartz.dll devenum.dll This will be corrected in the next DirectX release. back to top # Installation The SDK requires Microsoft Internet Explorer Version 6 or higher. Installation of the Microsoft Platform SDK is recommended and may be required for some samples. You must be logged on as an administrator before installing the DirectX 9.0 SDK and runtime. We recommend you remove previous versions of the DirectX SDK prior to installing DirectX 9.0 SDK Release (see UNINSTALL). In addition, you should uninstall any DirectX SDK installations that may be part of a Microsoft Platform SDK installation prior to installing the DirectX 9.0 SDK. SDK Installation to a network share is not supported. Specifically some components (ex. documentation will not install, managed samples will not run). The Reference Rasterizer is not installed on any versions of Windows Server 2003 product family. Several Virus Protection software applications interfere with SDK installation and may require you to temporarily disable the Virus Protection software until SDK installation is completed. "A cabinet file is necessary for installation and cannot be trusted." ERROR during installation. This problem happens in most cases due to system corruption or users disabling their cryptography services. Please try the following steps to see if it resolves the issue. Make sure your cryptography services are enabled. To do this, go to my computer | manage | services and applications | services. Then go to cryptography services properties and make sure the service is started and startup type is set to automatic. If you are running Windows on a FAT32 drive, run scandisk. Try the resolution steps in http://support.microsoft.com/default.aspx?scid=kb;en-us;813442 Try the resolution steps in http://support.microsoft.com/default.aspx?scid=kb;EN-US;822798 Remove temporary files in %temp% and (if installing end-user runtime) %windir%\system32\directx\websetup Error ### Installation notes on 64-bit Platforms When installing on a 64 platform, both the 32 and the 64 bit version of debug files will be installed. The 32-bit version of the DirectX control panel which controls debug settings can be opened by choosing "View x86 Control Panel Icons" from the Control Panel and starting the DirectX icon or by running the command %windir%\syswow64\control.exe %windir%\syswow64\directx.cpl. The 64 bit version of the DirectX control panel will show up in the Windows Control Panel after installing the SDK. · There is no support for the IA64 bit platforms. # Uninstall: To uninstall, use "Add/Remove Programs" from the Control Panel to uninstall the SDK Update installations. back to top # Documentation ## Requirements: The DirectX managed code application programming interface (API) documentation is automatically installed with DirectX 9.0 when Visual Studio .Net is installed. Open Visual Studio .NET and then, from the Help menu at the top, choose Contents. The documentation node in the Table of Contents is called DirectX 9.0 (Managed). The documentation can also be viewed on the Web at http://www.msdn.microsoft.com. See the help topic, "Tips and Tricks Using Managed Code," for the basics of how to install and use DirectX managed code and documentation. back to top # DirectX for Managed Code ## Requirements: Developing managed applications with this DirectX SDK release requires Visual Studio.NET 2003 and .NET Runtime 1.1 Distributing the DirectX for Managed Code Update. There are several ways to redistribute DirectX for Managed Code: Install both DirectX9.0c and DirectX for Managed Code: Install the DirectX 9.0c Runtime using the command DXSETUP.EXE /InstallManagedDirectX. This will install the DirectX 9.0c runtime along with DirectX for Managed Code with minimal user interaction Install just DirectX for managed Code: Launch Feb2005_MDX_x86.MSI directly, this will display a License Agreement and install the package with full user interaction, including a Setup completed dialog. Launch Feb2005_MDX_x86.MSI with a command line for Windows Installer. i.e. msiexec.exe /i Feb2005_mdx_x86.msi. Additional parameters for msiexec.exe are documented in the Windows Installer SDK, available at the Microsoft MSDN website, in the Microsoft Platform SDK. These other parameters allow you to control the level of user interaction, and what else is displayed. o Use the MsiInstallProduct() API also documented in the Windows Installer SDK. The MsiInstallProduct function displays the user interface with the current settings and log mode. You can change user interface settings with the MsiSetInternalUI and MsiSetExternalUI functions. You can set the log mode with the MsiEnableLog function. If the .NET Framework v.1.1 and DirectX 9.0 are not previously installed, the Feb2005_MDX_x86.MSI will display an appropriate message and DirectX for Managed Code will not be installed. To remove the installation, you may launch the installer again, or run the command msiexec.exe /x Feb2005_mdx_x86.msi. back to top # Direct3 D®, DirectSound®, DirectMusic®, DirectInput®, DirectPlay®,DirectShow®, Broadcast Driver Architecture This release of above DirectX components have identical features to that of DirectX 9.0c and there is no plan to add additional features for the DirectX 9.0 SDK Update. See MSDN for previous SDK release. No DirectPlay Debug DLLs ships with this SDK release, so when you run DirectSetup only the DirectPlay Retail installation option is available. The X64 DirectShow DVDSample and PlayDVD samples require a 64-bit native DVD decoder to function properly. No such decoders were available at the time of this SDK release. It is likely that 3rd parties will provide decoders, so the sample build environments and pre-built binaries have been left intact in the SDK. back to top # Compiler Support Developing C++ applications with this release requires Visual Studio .NET 2002 or later. Visual Studio version 6 is no longer supported. Developing managed applications requires Visual Studio .NET 2003 and .NET Runtime 1.1. Developing 64-bit applications requires the Microsoft Platform SDK. All DirectX SDK supported 64-bit samples have a corresponding sample_makefile.x64. These makefiles are compatible with AMD64 and Intel64. back to top # CD Layout: # The following is a brief description of the directories found following installation of the DirectX 9.0 SDK Update. Depending on options specified during installation, some of these directories may not be installed on your hard drive. The description below assumes a complete SDK install. \Developer Runtime The Developer Runtime folder contains OS-specific debug versions of the DirectX runtime that have been customized to help DirectX developers debug issues related to their applications. It also contains Retail and Debug versions of the DirectX® 9.0 for Managed Code runtime. The debug files are installed during the SDK portion of the setup program and can be loaded on demand, based on settings in the DirectX control panel. The files in this directory should be adequate for debugging most DirectX applications. Upon installation of these versions of the DirectX runtime, DXDiag.exe will report that the debug versions of the files have been installed and will give the following notice: "Several files (d3dx9d.dll, d3d9d.dll) are Debug versions, which will run slower than the Retail version." Note that this is only applicable when the Debug switch in the DirectX control panel is applied. Setting all the switches to Retail in the DirectX control panel will configure DirectX to perform just as the normal version of the End-User Runtime. List of DirectX Switchable Debug DLL's: d3d8d.dll d3d9d.dll d3dx9d.dll dinput8d.dll dmbandd.dll dmcompod.dll dmimed.dll dmloaded.dll dmscripd.dll dmstyled.dll dmsynthd.dll dmusicd.dll dswaved.dll Additional Files Installed with the Developer Runtime: d3dref.dll d3dref8.dll d3dref9.dll directx.cpl # \Documentation \DirectX9 # Contains reference documentation for the DirectX 9.0 APIs. The CHM Documentation must be viewed with Windows HTMLHelp. Note: The HTMLHelp viewer requires a minimum installation of Internet Explorer 5.0 (IE5). IE5 can be found at http://www.microsoft.com/windows/ie/default.htm. Documentation for DirectX for Managed Code is installed automatically when Visual Studio .NET 2002 is installed. # \License Agreements # Text versions of the DirectX SDK, End User License Agreements and the Redistributable License Agreement. # \Extras (Available as separate downloads) ## \DirectShow Contains the DirectShow samples (C++ & VB), tools, DVDBoilerplate, and additional media that can be used with DirectShow and the DirectShow Editing Services (DES) interfaces ## \DirectSound Contains the debug version of the DirectSound DLLS. ## \Symbols The retail symbols directory contains symbol files for the version of DirectX 9.0 contained in the Redist directory. The Debug symbols directory contains symbol files for the switch-able debug files that can be activated using the DirectX Control Panel. To use the symbol files, add the appropriate directories to your symbol path, or copy the files to your symbols directory. Depending on the operating system you want to debug you may need to include different directories first. There is a general directory and possibly an addition directory with symbol files specific for each operating system. Non-Platform specific symbols are located in <build type>\<file type>. Ex: Retail\dll -> Symbols for retail DLLs Debug\exe -> Symbols for debug EXEs Platform specific symbols are located in <build type>\<platform>\<file type>. Ex: Retail\Win2k\dll -> Symbols for Win2k only retail DLLs Debug\win9x\exe -> Symbols for Win9x only debug EXEs If you cannot find platform specific symbols for a component, use the non-platform specific symbols. Your symbol path should include the specific directory if one exists first, then the general directory. For example to use the files for Windows XP you would have a symbol path that looked something like this: SymPath=c:\symbols\retail\WinXP Only;c: \symbols\retail\Win2K-XP; For Windows ME you might use a symbol path like this: SymPath=c:\symbols\retail\Win9x There is not additional directory required for Windows ME. All the supported symbol files exist in the \Symbols\Retail\Win9x directory. # \Include # Contains DirectX 9.0 include files for DirectX core components. # \Lib # Contains DirectX 9.0 library files for DirectX core components. ## \Lib\x64 This directory contains the 64 bit version of the library files which supports the x64 bit platforms. ## \Lib\x86 This directory contains the 32 bit version of the library files which supports the x86 bit platforms. # \Redist # Redistributable versions of the DirectX 9.0c Runtime with update Managed DirectX and D3dx binaries from this SDK release. # \Samples # Contains all sample code and sample binaries. Most samples can be accessed directly by the SDK Sample Browser located on the Start menu when installed via the downloaded InstallShield setup. # \Utilities ## High level DirectX applications, tools, plug-ins and source code. Most can be accessed from the SDK sample browser. ## \Bin\Extensions for Visual Studio .NET # Microsoft® Visual Studio® supports debugging assembly level and high-level language vertex and pixel shaders. ## \Bin\x64 This directory contains the 64 bit version of the tools which supports the x64 bit platforms. ## \Bin\x86 This directory contains the 32 bit version of the tools which supports the x86 bit platforms. ## \Bin\Plug-ins This directory contains Maya and photoshop plug-ins. ## \Source Contains the source code for many of the utilities. back to top # ROLAND SoundCanvas Sound Set For General MIDI And GS Format The Roland SoundCanvas Sound Set includes the necessary sounds to make a complete General MIDI compatible sound set. It also includes additional sounds necessary to make a complete GS Format compatible sound set. WHAT IS THE GS FORMAT? The GS Format is a standardized set of specifications for sound sources that defines the manner in which multitimbral sound generating devices will respond to MIDI messages. The GS Format also complies with General MIDI System Level 1. The GS Format also defines a number of other details over and above the features of General MIDI. These include unique specifications for sound and functions available for tone editing, effects, and other specifications concerning the manner in which sound sources will respond to MIDI messages. Any device that is equipped with GS Format sound sources can faithfully reproduce both General MIDI sound recordings and GS Format MIDI sound recordings. HOW TO CONTACT ROLAND: Roland Corporation U.S. 7200 Dominion Circle Los Angeles, CA 90040-3696 Phone: (323) 890-3700 Fax: (323) 890-3701 COPYRIGHT NOTICE AND LICENSE LIMITATIONS Roland GS Sound Set/Microsoft (P) 1996 Roland Corporation U.S. The Roland GS Sound Set/Microsoft, the "Sample Set", incorporates the Roland SoundCanvas Sound Set. Roland Corporation U.S. owns the Sample Set and all copyrights pertaining thereto and has licensed the Sample Set for use solely on Microsoft operating system products and Microsoft Application Products. Roland reserves all rights to the Sample Set not expressly granted by Roland Corporation U.S. or by Microsoft under the terms of Microsoft's End User License Agreement. The Sample Set may only be redistributed with your software application as a part of a Microsoft operating system product installation and under the terms of Microsoft's End User License Agreement. The Sample Set may not be separated from the Microsoft operating system product; the Sample Set may only be installed by the Microsoft installation procedure for the associated Microsoft operating system product or for an associated software development kit. All other uses of the Sample Set require a separate written license from Roland Corporation U.S. The Sample Set may not be used, copied or redistributed in hardware ROM or similar technology of any device without prior express written permission from an authorized representative of Roland Corporation U.S. The Sample Set may not be redistributed with any Musical Instrument . A "Musical Instrument" is any device that is capable of generating musical sounds without being directly connected to a computer with a licensed Microsoft operating system product. You may not modify the Sample Set under any circumstances. back to top