Required Direct3D 9 capabilities

For applications to fully access the features of Microsoft Direct3D versions 9_1, 9_2, and 9_3, the user-mode driver must expose certain hardware capabilities. These capabilities are expressed in terms of the D3DCAPS9 structure that is returned by the user-mode driver's GetCaps function. To indicate support of the capabilities, the driver must set these members of D3DCAPS9 to a bitwise-OR of all of the respective flag values:

Minimum capabilities for Direct3D level 9_1

D3DCAPS9 member Flag value
Caps2

D3DCAPS2_DYNAMICTEXTURES

D3DCAPS2_FULLSCREENGAMMA

PresentationIntervals

D3DPRESENT_INTERVAL_IMMEDIATE

D3DPRESENT_INTERVAL_ONE

PrimitiveMiscCaps

D3DPMISCCAPS_COLORWRITEENABLE

ShadeCaps

D3DPSHADECAPS_ALPHAGOURAUDBLEND

D3DPSHADECAPS_COLORGOURAUDRGB

D3DPSHADECAPS_FOGGOURAUD

D3DPSHADECAPS_SPECULARGOURAUDRGB

TextureFilterCaps

D3DPTFILTERCAPS_MINFLINEAR

D3DPTFILTERCAPS_MINFPOINT

D3DPTFILTERCAPS_MAGFLINEAR

D3DPTFILTERCAPS_MAGFPOINT

TextureCaps

(See Note.)

D3DPTEXTURECAPS_ALPHA

D3DPTEXTURECAPS_CUBEMAP

D3DPTEXTURECAPS_MIPMAP

D3DPTEXTURECAPS_PERSPECTIVE

TextureAddressCaps

D3DPTADDRESSCAPS_CLAMP

D3DPTADDRESSCAPS_INDEPENDENTUV

D3DPTADDRESSCAPS_MIRROR

D3DPTADDRESSCAPS_WRAP

TextureOpCaps

D3DTEXOPCAPS_DISABLE

D3DTEXOPCAPS_MODULATE

D3DTEXOPCAPS_SELECTARG1

D3DTEXOPCAPS_SELECTARG2

SrcBlendCaps

D3DPBLENDCAPS_INVDESTALPHA

D3DPBLENDCAPS_INVDESTCOLOR

D3DPBLENDCAPS_INVSRCALPHA

D3DPBLENDCAPS_ONE

D3DPBLENDCAPS_SRCALPHA

D3DPBLENDCAPS_ZERO

DestBlendCaps

D3DPBLENDCAPS_ONE

D3DPBLENDCAPS_INVSRCALPHA

D3DPBLENDCAPS_INVSRCCOLOR

D3DPBLENDCAPS_SRCALPHA

D3DPBLENDCAPS_ZERO

StretchRectFilterCaps

D3DPTFILTERCAPS_MAGFLINEAR

D3DPTFILTERCAPS_MAGFPOINT

D3DPTFILTERCAPS_MINFLINEAR

D3DPTFILTERCAPS_MINFPOINT

ZCmpCaps

D3DPCMPCAPS_ALWAYS

D3DPCMPCAPS_LESSEQUAL

RasterCaps

D3DPRASTERCAPS_DEPTHBIAS

D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS

StencilCaps

D3DSTENCILCAPS_TWOSIDED

MaxTextureWidth

2048

MaxTextureHeight

2048

NumSimultaneousRTs

1

MaxSimultaneousTextures

8

MaxTextureBlendStages

8

PixelShaderVersion

D3DPS_VERSION(2,0)

MaxPrimitiveCount

65535

MaxVertexIndex

65534

MaxVolumeExtent

256

MaxTextureRepeat

Must be zero, or 128, or greater.

MaxAnisotropy

2

MaxVertexW

0.f

Note These requirements also apply:

  • The driver must also set the TextureCaps member to a value of D3DPTEXTURECAPS_NONPOW2CONDITIONAL and D3DPTEXTURECAPS_POW2, or to neither.
  • When the driver responds to an event, where D3DDDIARG_CREATEQUERY.QueryType is D3DDDIQUERYTYPE_EVENT, it must always set the event's BOOL value to TRUE when responding. See CreateQuery and D3DDDIARG_CREATEQUERY.

Minimum capabilities for Direct3D level 9_2

These capabilities must be set in addition to those listed for Direct3D level 9_1.

D3DCAPS9 member Flag value
PrimitiveMiscCaps

D3DPMISCCAPS_SEPARATEALPHABLEND

DevCaps2

D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET

TextureAddressCaps

D3DPTADDRESSCAPS_MIRRORONCE

VolumeTextureAddressCaps

D3DPTADDRESSCAPS_MIRRORONCE

MaxTextureWidth

2048

MaxTextureHeight

2048

MaxTextureRepeat

Must be zero, or 2048, or greater.

VertexShaderVersion

D3DVS_VERSION(2,0)

MaxAnisotropy

16

MaxPrimitiveCount

1048575

MaxVertexIndex

1048575

MaxVertexW

10000000000.f

Note This requirement also applies:

  • When the driver responds to a z-testing query, where D3DDDIARG_CREATEQUERY.QueryType is D3DDDIQUERYTYPE_OCCLUSION, it must always set the query's UINT value to a non-zero value when responding. See CreateQuery and D3DDDIARG_CREATEQUERY.

Minimum capabilities for Direct3D level 9_3

These capabilities must be set in addition to those listed for Direct3D levels 9_1 and 9_2.

D3DCAPS9 member Flag value
PS20Caps->Caps

D3DPS20CAPS_GRADIENTINSTRUCTIONS

PrimitiveMiscCaps

D3DPMISCCAPS_INDEPENDENTWRITEMASKS

D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING

TextureAddressCaps

D3DPTADDRESSCAPS_BORDER

MaxTextureWidth

4096

MaxTextureHeight

4096

MaxTextureRepeat

Must be zero, or 8192, or greater.

NumSimultaneousRTs

4

PS20Caps->NumInstructionSlots

512 (Pixel Shader Version 2b)

PS20Caps->NumTemps

32 (Pixel Shader Version 2b)

VS20Caps->NumTemps

32 (Vertex Shader Version 2a)

MaxVertexShaderConst

256 (Vertex Shader Version 2a)

VertexShaderVersion

D3DVS_VERSION(3,0) (See Note.)

Note The VertexShaderVersion value of D3DVS_VERSION(3,0) guarantees instancing support. Direct3D 10Level 9 does not expose Shader Model 3.0.