10Level9 ID3D11Device 方法

本部分列出了 ID3D11Device 方法的每个 10Level9 功能级别与D3D_FEATURE_LEVEL_11_0及更高功能级别之间的差异。

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
前四个 BlendEnable 必须都具有相同的值。
不支持D3D11_BLEND_SRC_ALPHASAT。
不支持双源颜色混合 (名称中具有 SRC1 的任何 SrcBlend 或 DestBlend)
D3D_FEATURE_LEVEL_9_2 AlphaToCoverageEnable 必须为 FALSE
前四个 BlendEnable 必须都具有相同的值。
前四个 RenderTargetWriteMask 必须都具有相同的值。
不支持D3D11_BLEND_SRC_ALPHASAT。
不支持双源颜色混合 (名称中具有 SRC1 的任何 SrcBlend 或 DestBlend)
D3D_FEATURE_LEVEL_9_3 AlphaToCoverageEnable 必须为 FALSE
前四个 BlendEnable 必须都具有相同的值。
不支持D3D11_BLEND_SRC_ALPHASAT。
不支持双源颜色混合 (名称中具有 SRC1 的任何 SrcBlend 或 DestBlend)
D3D_FEATURE_LEVEL_10_0 添加 alpha-to-coverage

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,顶点流 0 必须具有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] 内
最小 LOD 不能为小数
必须FLT_MAX最大 LOD
最大各向异性为 2。
不支持D3D11_TEXTURE_ADDRESS_MIRRORONCE。
D3D_FEATURE_LEVEL_9_2 不支持比较筛选器。
边框颜色必须在 [0,1] 内
最小 LOD 不能为小数
必须FLT_MAX最大 LOD
最大各向异性为 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 的整型幂 支持的最小纹理尺寸 立方体纹理尺寸必须为 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

在上表中,D3D11_RESOURCE_MISC_TEXTURECUBE 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::CheckFeatureSupportD3D11_FEATURE_FORMAT_SUPPORT2 值和 D3D11_FEATURE_DATA_FORMAT_SUPPORT2 结构一起使用,以确定是否可以共享格式。 如果可以共享格式, CheckFeatureSupport 将返回 D3D11_FORMAT_SUPPORT2_SHAREABLE 标志。
注意:使用功能级别 9 时,DXGI_FORMAT_R8G8B8A8_UNORM和DXGI_FORMAT_R8G8B8A8_UNORM_SRGB永远不可共享,即使设备指示对D3D11_FORMAT_SUPPORT_SHAREABLE的可选功能支持也是如此。 除非功能级别为 10_0 或更高,否则尝试使用 DXGI 格式 DXGI_FORMAT_R8G8B8A8_UNORMDXGI_FORMAT_R8G8B8A8_UNORM_SRGB 创建共享资源将始终失败。
${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

10Level9 参考