[ Home | Direct3D Graphics Pipeline | DirectX 9 Bug List ]

DirectX 9 Bug List

This page lists known bugs in the DirectX 9 Summer Update for Direct3D documentation and code.


  • Direct3D
    • DirectX Graphics / Programming Guide / Getting Started / Direct3D Devices / States / Render States / Antialiasing State discusses D3DRS_EDGEANTIALIAS, which no longer exists. Use D3DRS_ANTIALIASEDLINEENABLE instead.
    • DirectX Graphics / Programming Guide / Direct3D Rendering / Depth Buffers / Using Z-Bias discusses the DirectX 8 render state RS Z Bias. Refer to the documentation on D3DRENDERSTATETYPE for the correct explanation of RS Depth Bias and RS Slope Scale Depth Bias.
    • DirectX Graphics / Reference / Direct3D / Interfaces / IDirect3DDevice9 / CreateOffscreenPlainSurface says that using D3DPOOL_SCRATCH is equivalent to the 8.x CreateImageSurface method. Instead of D3DPOOL_SCRATCH it should be D3DPOOL_SYSTEMMEM.
    • DirectX Graphics / Reference / Direct3D / Structures / D3DPSHADERCAPS2_0 describes the Caps member insufficiently. The relevant flag bits in the Caps member are listed in DirectX Graphics / Reference / Direct3D / Constants / D3DPS20CAPS.
  • D3DX
    • D3DXMatrixTransformation2D function prototype declares the ScalingRotation parameter as "FLOAT *" instead of "FLOAT".
    • D3DXSHEvalSphericalLight function prototype names the position argument "pDir" instead of "pPos" as listed in d3dx9math.h.
    • The Effect States page in the documentation is missing the new render states associated with DirectX 9.0 graphics (SeparateAlphaBlendEnable, SrcBlendAlpha, DestBlendAlpha, etc.). All of these states can be set from wtihin effect files by changing the render state enumeration name to the corresponding effect state name.
    • The data type listed for the DepthBias effect file state is incorrectly listed as int. The actual type is float.
  • X Files
    • The AnimationKey template gives an incorrect value for the matrix keyType. A matrix key is given by a keyType value of 4, not 3. The value 3 is not currently used.

Managed DirectX

  • Microsoft.DirectX.Direct3D.Font: Calling DrawText with DrawTextFormat.CalculateRect doesn't return the computed rectangle to the caller since the Rectangle is passed by value, not as an [out] parameter.
  • Microsoft.DirectX.Direct3D.MeshData: You cannot set the contents of this structure after creating an instance of it. You get a NULL reference exception.
  • The Query class doesn't function properly.
  • VertexFormats.ToString() incorrectly outputs Texture0 for all FVF codes.


  • Interfaces changed in the summer update, but the IIDs did not: IID_ID3DXBaseEffect, IID_ID3DXEffect, IID_ID3DXEffectCompiler and IID_ID3DXFragmentLinker.


  • The AppWizard links against the release D3DX library in the debug configuration. Change the linker inputs to use d3dx9dt.lib instead of d3dx9.lib for the debug configuration.
  • dxutil.h generates a warning when you call DXUtil_Trace. Adding __cdecl calling convention to the declaration eliminates the warning. Change
    VOID DXUtil_Trace( LPCTSTR strMsg, ... );
    VOID __cdecl DXUtil_Trace( LPCTSTR strMsg, ... );
  • The AppWizard explicitly excludes the MSVCRT library from Release builds for MFC Dialog-based application project types. This will result in many link errors in the Release configuration when using MFC from a DLL. To eliminate the link errors, remove MSVCRT from the ignored libraries in the Linker property page.