Required DXGI formats

This topic presents the requirements that Microsoft Direct3D feature levels place on the user-mode display driver.

The first and second columns of the first table show all Direct3D format types that the driver must support. The third column shows all associated constant values of the Direct3D D3D10_FORMAT_SUPPORT and/or D3D11_FORMAT_SUPPORT enumerations that the driver must support. The fourth column shows the minimum Direct3D feature level at which the driver must support each format.

The second table shows the Direct3D 10Level 9 support algorithm for each enumeration value.

D3D9 format (D3DDDIFMT_* and/or D3DDECLTYPE D3D10+ API equivalent (DXGI_FORMAT_) Required D3D10_ or D3D11_ FORMAT_SUPPORT_* enumeration values Minimum required Direct3D level
A32B32G32R32F or D3DDECLTYPE_FLOAT4 R32G32B32A32_FLOAT

IA_VERTEX_BUFFER

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

MIP

MIP_AUTOGEN

RENDER_TARGET

CPU_LOCKABLE

9_1

9_2

9_3

9_3

9_2

9_3

9_3

9_2

9_2

D3DDECLTYPE_FLOAT3 R32G32B32_FLOAT

IA_VERTEX_BUFFER

9_1

A16B16G16R16F or D3DDECLTYPE_FLOAT16_4 R16G16B16A16_FLOAT

IA_VERTEX_BUFFER

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

MIP

MIP_AUTOGEN

RENDER_TARGET

BLENDABLE

CPU_LOCKABLE

9_3

9_2

9_2

9_2

9_2

9_2

9_2

9_2

9_3

9_2

A16B16G16R16 or D3DDECLTYPE_USHORT4N R16G16B16A16_UNORM

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

MIP_AUTOGEN

RENDER_TARGET

CPU_LOCKABLE

9_2

9_2

9_2

9_2

9_2

9_2

9_2

9_2

9_2

Q16W16V16U16 or D3DDECLTYPE_SHORT4N R16G16B16A16_SNORM

IA_VERTEX_BUFFER

9_1

D3DDECLTYPE_SHORT4 R16G16B16A16_SINT

IA_VERTEX_BUFFER

9_1

G32R32F or D3DDECLTYPE_FLOAT2 R32G32_FLOAT

IA_VERTEX_BUFFER

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

RENDER_TARGET

CPU_LOCKABLE

9_1

9_3

9_3

9_3

9_3

9_3

9_3

D3DDECLTYPE_UBYTE4 R8G8B8A8_UINT

IA_VERTEX_BUFFER

9_1

A8R8G8B8 or D3DDECLTYPE_UBYTE4N R8G8B8A8_UNORM

IA_VERTEX_BUFFER

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

MIP_AUTOGEN

RENDER_TARGET

BLENDABLE

CPU_LOCKABLE

DISPLAY

BACK_BUFFER_CAST

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

A8R8G8B8 R8G8B8A8_UNORM_SRGB

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

MIP_AUTOGEN

RENDER_TARGET

BLENDABLE

CPU_LOCKABLE

DISPLAY

BACK_BUFFER_CAST

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

Q8W8V8U8 R8G8B8A8_SNORM

TEXTURE2D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

9_1

A8R8G8B8 B8G8R8A8_UNORM

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

MIP_AUTOGEN

RENDER_TARGET

BLENDABLE

CPU_LOCKABLE

DISPLAY

BACK_BUFFER_CAST

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

X8R8G8B8 B8G8R8X8_UNORM

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

MIP_AUTOGEN

RENDER_TARGET

BLENDABLE

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

A8R8G8B8 B8G8R8A8_UNORM_SRGB

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

MIP_AUTOGEN

RENDER_TARGET

BLENDABLE

CPU_LOCKABLE

DISPLAY

BACK_BUFFER_CAST

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

X8R8G8B8 B8G8R8X8_UNORM_SRGB

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

MIP_AUTOGEN

RENDER_TARGET

BLENDABLE

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

9_1

G16R16F or D3DDECLTYPE_FLOAT16_2 R16G16_FLOAT

IA_VERTEX_BUFFER

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

MIP

MIP_AUTOGEN

RENDER_TARGET

CPU_LOCKABLE

9_3

9_2

9_2

9_2

9_2

9_2

9_2

9_2

9_2

G16R16 or D3DDECLTYPE_USHORT2N R16G16_UNORM

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

MIP_AUTOGEN

RENDER_TARGET

CPU_LOCKABLE

9_2

9_2

9_2

9_2

9_2

9_2

9_2

9_2

9_2

V16U16 or D3DDECLTYPE_SHORT2N R16G16_SNORM

IA_VERTEX_BUFFER

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_1

9_1

9_2

9_2

9_1

9_2

9_1

9_1

D3DDECLTYPE_SHORT2 R16G16_SINT

IA_VERTEX_BUFFER

9_1

R32F or D3DDECLTYPE_FLOAT1 R32_FLOAT

IA_VERTEX_BUFFER

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

MIP

MIP_AUTOGEN

RENDER_TARGET

CPU_LOCKABLE

9_1

9_2

9_2

9_2

9_2

9_2

9_2

9_2

9_2

R32_UINT

IA_INDEX_BUFFER

9_1

S8D24 or D24S8 D24_UNORM_S8_UINT

TEXTURE2D

DEPTH_STENCIL

9_1

9_1

L16 R16_UNORM

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_2

9_2

9_2

9_2

9_2

9_2

9_2

R16_UINT

IA_INDEX_BUFFER

9_1

D16 or D16_LOCKABLE D16_UNORM

TEXTURE2D

DEPTH_STENCIL

9_1

9_1

V8U8 R8G8_SNORM

TEXTURE2D

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

L8 R8_UNORM

TEXTURE2D

TEXTURE3D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

9_1

9_1

DXT1 BC1_UNORM or BC1_UNORM_SRGB

TEXTURE2D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

9_1

DXT2 BC2_UNORM or BC2_UNORM_SRGB

TEXTURE2D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

9_1

DXT4 BC3_UNORM or BC3_UNORM_SRGB

TEXTURE2D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

9_1

Required D3D10_ or D3D11_ FORMAT_SUPPORT_* enumeration values Support algorithm in Direct3D 10Level 9

BACK_BUFFER_CAST

Assumed true for any format that supports DISPLAY.

BLENDABLE

No FORMATOP_NOALPHABLEND

CPU_LOCKABLE

Assumed always true.

DISPLAY

Hard-coded.

IA_VERTEX_BUFFER

D3DDTCAPS_* (See Note.)

MIP

No FORMATOP_NOTEXCOORDWRAPNORMIP

MIP_AUTOGEN

(See Note.)

RENDER_TARGET

FORMATOP_OFFSCREEN_RENDERTARGET

SHADER_LOAD

Assumed for all non-depth formats.

SHADER_SAMPLE

(See Note.)

TEXTURE2D

FORMATOP_TEXTURE

TEXTURE3D

FORMATOP_VOLUMETEXTURE

TEXTURECUBE

FORMATOP_CUBETEXTURE

Note  These are further details on the support algorithm's requirements in Direct3D 10Level 9:

  • The IA_VERTEX_BUFFER and/or IA_INDEX_BUFFER formats are supported by software vertex processing if there is no D3DDEVCAPS_HWTRANSFORMANDLIGHT capability.
  • The TEXTURE2D format can also be inferred from it being a depth-stencil format.
  • For the SHADER_SAMPLE format, the driver must support FORMATOP_TEXTURE, FORMATOP_VOLUMETEXTURE, or FORMATOP_CUBETEXTURE, and it must not report FORMATOP_NOFILTER.
  • For the MIP_AUTOGEN format, Direct3D 10Level 9 generates its own mip-maps, so it requires MIP, RENDER_TARGET, and TEXTURE2D bits.