必需的 Direct3D 9 功能

若要让应用程序完全访问 Microsoft Direct3D 版本 9_1、9_2 和 9_3 的功能,用户模式驱动程序必须公开某些硬件功能。 这些功能以用户模式驱动程序的 GetCaps 函数返回的D3DCAPS9结构表示。 若要指示支持这些功能,驱动程序必须将 D3DCAPS9 的这些成员设置为所有相应标志值的按位或:

Direct3D 级别 9_1 的最低功能

D3DCAPS9 成员 标志值
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

(请参阅 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

模具Caps

D3DSTENCILCAPS_TWOSIDED

MaxTextureWidth

2048

MaxTextureHeight

2048

NumSimultaneousRTs

1

MaxSimultaneousTextures

8

MaxTextureBlendStages

8

PixelShaderVersion

D3DPS_VERSION (2,0)

MaxPrimitiveCount

65535

MaxVertexIndex

65534

MaxVolumeExtent

256

MaxTextureRepeat

必须为零或 128 或更大。

MaxAnisotropy

2

MaxVertexW

0.f

注意 这些要求也适用于:

  • 驱动程序还必须将 TextureCaps 成员设置为值 D3DPTEXTURECAPS_NONPOW2CONDITIONAL 和 D3DPTEXTURECAPS_POW2,或者两者都不设置为 。
  • 当驱动程序响应事件时, 其中D3DDDIARG_CREATEQUERYQueryType D3DDDIQUERYTYPE_EVENT,响应时必须始终将事件的 BOOL 值设置为 TRUE 。 请参阅 CreateQueryD3DDDIARG_CREATEQUERY

Direct3D 级别 9_2 的最低功能

除了为 Direct3D 级别 9_1 列出的功能之外,还必须设置这些功能。

D3DCAPS9 成员 标志值
PrimitiveMiscCaps

D3DPMISCCAPS_SEPARATEALPHABLEND

DevCaps2

D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET

TextureAddressCaps

D3DPTADDRESSCAPS_MIRRORONCE

VolumeTextureAddressCaps

D3DPTADDRESSCAPS_MIRRORONCE

MaxTextureWidth

2048

MaxTextureHeight

2048

MaxTextureRepeat

必须为零或 2048 或更大。

VertexShaderVersion

D3DVS_VERSION (2,0)

MaxAnisotropy

16

MaxPrimitiveCount

1048575

MaxVertexIndex

1048575

MaxVertexW

10000000000.f

注意 此要求也适用于:

  • 当驱动程序响应 z 测试查询时, 其中D3DDDIARG_CREATEQUERYQueryType D3DDDIQUERYTYPE_OCCLUSION,它在响应时必须始终将查询的 UINT 值设置为非零值。 请参阅 CreateQueryD3DDDIARG_CREATEQUERY

Direct3D 级别 9_3 的最低功能

除了为 Direct3D 级别 9_1 和 9_2 列出的功能之外,还必须设置这些功能。

D3DCAPS9 成员 标志值
PS20Caps-Caps>

D3DPS20CAPS_GRADIENTINSTRUCTIONS

PrimitiveMiscCaps

D3DPMISCCAPS_INDEPENDENTWRITEMASKS

D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING

TextureAddressCaps

D3DPTADDRESSCAPS_BORDER

MaxTextureWidth

4096

MaxTextureHeight

4096

MaxTextureRepeat

必须为零或 8192 或更大。

NumSimultaneousRTs

4

PS20Caps-NumInstructionSlots>

512 (像素着色器版本 2b)

PS20Caps-NumTemps>

32 (像素着色器版本 2b)

VS20Caps-NumTemps>

32 (顶点着色器版本 2a)

MaxVertexShaderConst

256 (顶点着色器版本 2a)

VertexShaderVersion

D3DVS_VERSION (3,0) (请参阅 Note.)

注意VertexShaderVersion 值D3DVS_VERSION (3,0) 保证实例化支持。 Direct3D 10Level 9 不公开着色器模型 3.0。