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


Методы 10Level9 ID3D11Device

В этом разделе перечислены различия между каждым уровнем функций 10Level9 и уровнем D3D_FEATURE_LEVEL_11_0 и выше для методов ID3D11Device .

ID3D11Device::CheckCounter

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 При необходимости поддерживаются счетчики, зависящие от устройства. Используйте ID3D11Device::CheckCounterInfo для определения поддержки.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CheckFormatSupport

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 См. поддержку форматирования по уровню компонентов${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CheckMultisampleQualityLevels

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Уровни функций не гарантируют поддержку MSAA.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateBlendState

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Параметр AlphaToCoverageEnable должен иметь значение FALSE.
Первые четыре BlendEnables должны иметь одно и то же значение.
D3D11_BLEND_SRC_ALPHASAT не поддерживается.
Сочетание цветов с двумя источниками не поддерживается (любой SrcBlend или DestBlend с SRC1 в имени)
D3D_FEATURE_LEVEL_9_2 Параметр AlphaToCoverageEnable должен иметь значение FALSE.
Первые четыре BlendEnables должны иметь одно и то же значение.
Первые четыре объекта RenderTargetWriteMasks должны иметь одно и то же значение.
D3D11_BLEND_SRC_ALPHASAT не поддерживается.
Сочетание цветов с двумя источниками не поддерживается (любой SrcBlend или DestBlend с SRC1 в имени)
D3D_FEATURE_LEVEL_9_3 Параметр AlphaToCoverageEnable должен иметь значение FALSE.
Первые четыре BlendEnables должны иметь одно и то же значение.
D3D11_BLEND_SRC_ALPHASAT не поддерживается.
Сочетание цветов с двумя источниками не поддерживается (любой SrcBlend или DestBlend с SRC1 в имени)
D3D_FEATURE_LEVEL_10_0 Добавляет альфа-покрытие

ID3D11Device::CreateBlendState1

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается
D3D_FEATURE_LEVEL_9_2 Не поддерживается
D3D_FEATURE_LEVEL_9_3 Не поддерживается
D3D_FEATURE_LEVEL_10_0 Элемент OutputMergerLogicOp добавлен в D3D11_FEATURE_DATA_D3D11_OPTIONS, чтобы определить поддержку логических операций (побитовые логические операции между выходными данными шейдера пикселей и целевым содержимым отрисовки см. D3D11_RENDER_TARGET_BLEND_DESC1).

ID3D11Device::CreateBuffer

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Буферы не могут иметь целевые представления отрисовки.
Буферы должны иметь только один из D3D11_BIND_VERTEX_BUFFER, D3D11_BIND_INDEX_BUFFER или D3D11_BIND_CONSTANT_BUFFER.
Допускает только буферы индексов в формате DXGI_FORMAT_R16_UINT.
D3D_FEATURE_LEVEL_9_2 Буферы не могут иметь целевые представления отрисовки.
Буферы должны иметь только один из D3D11_BIND_VERTEX_BUFFER, D3D11_BIND_INDEX_BUFFER или D3D11_BIND_CONSTANT_BUFFER.
Позволяет использовать буферы индексов с DXGI_FORMAT_R16_UINT и DXGI_FORMAT_R32_UINT форматами, такими как D3D_FEATURE_LEVEL_10_0 и выше.
${REMOVE}$
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateCounter

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateDepthStencilView

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживает двусторонний набор элементов.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateDomainShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* . ${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11Device::CreateGeometryShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateGeometryShaderWithStreamOutput

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateHullShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* или 10.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11Device::CreateInputLayout

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживает D3D11_INPUT_PER_INSTANCE_DATA
D3D_FEATURE_LEVEL_9_2 Не поддерживает D3D11_INPUT_PER_INSTANCE_DATA
D3D_FEATURE_LEVEL_9_3 Нулевой поток вершины должен иметь D3D11_INPUT_PER_VERTEX_DATA, если какие-либо потоки имеют D3D11_INPUT_PER_VERTEX_DATA

Дополнительные сведения о том, какие форматы можно использовать для данных вершин на каждом уровне компонентов, см. на диаграмме поддержки формата по уровню компонентов.

ID3D11Device::CreatePixelShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Необходимо использовать ps_4_0_level_9_1
D3D_FEATURE_LEVEL_9_2 Необходимо использовать ps_4_0_level_9_1
D3D_FEATURE_LEVEL_9_3 Необходимо использовать ps_4_0_level_9_3 или ps_4_0_level_9_1

ID3D11Device::CreatePredicate

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateQuery

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Поддерживаются запросы событий. Запросы меток времени являются необязательными: вызовите CreateQuery , чтобы определить поддержку.
D3D_FEATURE_LEVEL_9_2 Поддерживаются запросы событий и окклюзии. Запросы меток времени являются необязательными: вызовите CreateQuery , чтобы определить поддержку.
D3D_FEATURE_LEVEL_9_3 Поддерживаются запросы событий и окклюзии. Запросы меток времени являются необязательными: вызовите CreateQuery , чтобы определить поддержку.

ID3D11Device::CreateRasterizerState

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 DepthClipEnable должен иметь значение TRUE. Значение DepthBiasClamp должно быть равным 0.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateRenderTargetView

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Поддерживает только целевые представления объектов Texture2D.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateSamplerState

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Фильтр сравнения не поддерживается.
Цвет границы должен находиться в пределах [0,1]
Min LOD не может быть дробным
Максимальное значение LOD должно быть FLT_MAX
Максимальная анизотропия — 2.
D3D11_TEXTURE_ADDRESS_MIRRORONCE не поддерживается.
D3D_FEATURE_LEVEL_9_2 Фильтр сравнения не поддерживается.
Цвет границы должен находиться в пределах [0,1]
Min LOD не может быть дробным
Максимальное значение LOD должно быть FLT_MAX
Максимальная анизотропия — 16.
${REMOVE}$
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateShaderResourceView

Уровень компонентов MostDetailedMip и MipLevels должны включать наименьший lod (наименьший подресурс) Представление должно включать все элементы массива ресурсов
D3D_FEATURE_LEVEL_9_1 Да Да
D3D_FEATURE_LEVEL_9_2 Да Да
D3D_FEATURE_LEVEL_9_3 Да Да

ID3D11Device::CreateTexture1D

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateTexture2D

У ресурсов Texture2D есть ограничения по ширине и высоте, которые различаются на разных уровнях компонентов. На уровнях компонентов 9_3 ниже гарантируется минимальное значение, и отдельные реализации могут превысить требования.

Уровень компонентов Если MipCount > 1, измерения должны быть целой силой двух Минимальное поддерживаемое измерение текстуры Размеры текстур куба должны быть мощностью 2 Если задано MISC_TEXTURECUBE, arraySize имеет следующий размер: Если MISC_TEXTURECUBE не задан, параметр ArraySize имеет значение .
D3D_FEATURE_LEVEL_9_1 Да 2048 Да 6 1
D3D_FEATURE_LEVEL_9_2 Да 2048 Да 6 1
D3D_FEATURE_LEVEL_9_3 Да 4096 Да 6 1

В предыдущей таблице полное имя MISC_TEXTURECUBED3D11_RESOURCE_MISC_TEXTURECUBE.

Для всех уровней компонентов 9_* верно следующее:

  • При использовании D3D11_USAGE_DEFAULT или D3D11_USAGE_IMMUTABLE значение BindFlags не может быть равным нулю.
  • При использовании D3D11_BIND_DEPTH_STENCIL MipLevels должно иметь значение 1.
  • При использовании D3D11_BIND_SHADER_RESOURCE параметр SampleDesc.Count должен иметь значение 1.
  • При использовании D3D11_BIND_PRESENT ресурс не может иметь D3D11_BIND_SHADER_RESOURCE.
  • При использовании D3D10_DDI_RESOURCE_MISC_SHARED формат нельзя DXGI_FORMAT_R8G8B8A8_UNORM или DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.

ID3D11Device::CreateTexture3D

Уровень компонентов Максимальное измерение (любая ось) Измерения должны быть мощностью 2
D3D_FEATURE_LEVEL_9_1 256 Да
D3D_FEATURE_LEVEL_9_2 512 Да
D3D_FEATURE_LEVEL_9_3 512 Да

Если ресурс D3D11_USAGE_DEFAULT или D3D11_USAGE_IMMUTABLE, bindFlags не может быть равным нулю.

ID3D11Device::CreateUnorderedAccessView

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Не поддерживается на уровне компонентов 9.* .${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateVertexShader

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Необходимо использовать vs_4_0_level_9_1
D3D_FEATURE_LEVEL_9_2 Необходимо использовать vs_4_0_level_9_1
D3D_FEATURE_LEVEL_9_3 Необходимо использовать vs_4_0_level_9_3 или vs_4_0_level_9_1

ID3D11Device::OpenSharedResource

Уровень компонентов Различия в поведении
D3D_FEATURE_LEVEL_9_1 Используйте ID3D11Device::CheckFeatureSupport со значением D3D11_FEATURE_FORMAT_SUPPORT2 и структурой D3D11_FEATURE_DATA_FORMAT_SUPPORT2 , чтобы определить, можно ли совместно использовать формат. Если формат можно совместно использовать, Функция CheckFeatureSupport возвращает флаг D3D11_FORMAT_SUPPORT2_SHAREABLE .
Примечание.DXGI_FORMAT_R8G8B8A8_UNORM и DXGI_FORMAT_R8G8B8A8_UNORM_SRGB никогда не поддерживают общий доступ при использовании уровня компонентов 9, даже если устройство указывает на поддержку дополнительных функций для D3D11_FORMAT_SUPPORT_SHAREABLE. При попытке создать общие ресурсы в форматах DXGI DXGI_FORMAT_R8G8B8A8_UNORM и DXGI_FORMAT_R8G8B8A8_UNORM_SRGB всегда происходит сбой, если уровень компонентов не равен 10_0 или выше.
${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

Справочник по 10Level9