Поделиться через


Требуемые форматы DXGI

В этом разделе представлены требования, которые уровни компонентов Microsoft Direct3D предъявляют к драйверу отображения пользовательского режима.

В первом и втором столбцах первой таблицы показаны все типы форматов Direct3D, которые должен поддерживать драйвер. В третьем столбце показаны все связанные значения констант D3D10_FORMAT_SUPPORT Direct3D и (или) D3D11_FORMAT_SUPPORT перечислений, которые должен поддерживать драйвер. В четвертом столбце показан минимальный уровень функций Direct3D, при котором драйвер должен поддерживать каждый формат.

Во второй таблице показан алгоритм поддержки Direct3D 10Level 9 для каждого значения перечисления.

Формат D3D9 (D3DDDIFMT_* и/или D3DDECLTYPE Эквивалент API D3D10+ (DXGI_FORMAT_) Обязательные значения перечисления D3D10_ или D3D11_ FORMAT_SUPPORT_* Минимальный необходимый уровень Direct3D
A32B32G32R32F или 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 или 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 или 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 или D3DDECLTYPE_SHORT4N R16G16B16A16_SNORM

IA_VERTEX_BUFFER

9_1

D3DDECLTYPE_SHORT4 R16G16B16A16_SINT

IA_VERTEX_BUFFER

9_1

G32R32F или 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 или 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 или 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 или 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 или 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 или 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 или 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 или 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 или 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 или 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 или BC3_UNORM_SRGB

TEXTURE2D

TEXTURECUBE

SHADER_LOAD

SHADER_SAMPLE

MIP

CPU_LOCKABLE

9_1

9_1

9_1

9_1

9_1

9_1

Обязательные значения перечисления D3D10_ или D3D11_ FORMAT_SUPPORT_* Алгоритм поддержки в Direct3D 10Level 9

BACK_BUFFER_CAST

Предполагается значение true для любого формата, поддерживающего display.

BLENDABLE

Нет FORMATOP_NOALPHABLEND

CPU_LOCKABLE

Предполагается всегда true.

DISPLAY

Жестко закодировано.

IA_VERTEX_BUFFER

D3DDTCAPS_* (см. примечание.)

MIP

Нет FORMATOP_NOTEXCOORDWRAPNORMIP

MIP_AUTOGEN

(См. примечание.)

RENDER_TARGET

FORMATOP_OFFSCREEN_RENDERTARGET

SHADER_LOAD

Предполагается для всех форматов, не относящихся к глубине.

SHADER_SAMPLE

(См. примечание.)

TEXTURE2D

FORMATOP_TEXTURE

TEXTURE3D

FORMATOP_VOLUMETEXTURE

TEXTURECUBE

FORMATOP_CUBETEXTURE

Примечание Ниже приведены дополнительные сведения о требованиях к алгоритму поддержки в Direct3D 10Level 9:

  • Форматы IA_VERTEX_BUFFER и (или) IA_INDEX_BUFFER поддерживаются программной обработкой вершин, если нет возможности D3DDEVCAPS_HWTRANSFORMANDLIGHT.
  • Формат TEXTURE2D также можно вывести из формата трафарета глубины.
  • Для формата SHADER_SAMPLE драйвер должен поддерживать FORMATOP_TEXTURE, FORMATOP_VOLUMETEXTURE или FORMATOP_CUBETEXTURE и не должен сообщать о FORMATOP_NOFILTER.
  • Для формата MIP_AUTOGEN Direct3D 10Level 9 создает собственные MIP-карты, поэтому требует MIP, RENDER_TARGET и TEXTURE2D битов.