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.