10Level9 ID3D11Device Methods

This section lists the differences between each 10Level9 feature level and the D3D_FEATURE_LEVEL_11_0 and higher feature level for the ID3D11Device methods.

ID3D11Device::CheckCounter

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Device-dependent counters are optionally supported. Use ID3D11Device::CheckCounterInfo to determine support.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CheckFormatSupport

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 See format support by feature level${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CheckMultisampleQualityLevels

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Feature levels make no guarantees concerning MSAA support.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateBlendState

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 AlphaToCoverageEnable must be FALSE.
The first four BlendEnables must all have the same value.
D3D11_BLEND_SRC_ALPHASAT not supported.
Dual-source color blend not supported (any SrcBlend or DestBlend with SRC1 in the name)
D3D_FEATURE_LEVEL_9_2 AlphaToCoverageEnable must be FALSE.
The first four BlendEnables must all have the same value.
The first four RenderTargetWriteMasks must all have the same value.
D3D11_BLEND_SRC_ALPHASAT not supported.
Dual-source color blend not supported (any SrcBlend or DestBlend with SRC1 in the name)
D3D_FEATURE_LEVEL_9_3 AlphaToCoverageEnable must be FALSE.
The first four BlendEnables must all have the same value.
D3D11_BLEND_SRC_ALPHASAT not supported.
Dual-source color blend not supported (any SrcBlend or DestBlend with SRC1 in the name)
D3D_FEATURE_LEVEL_10_0 Adds alpha-to-coverage

ID3D11Device::CreateBlendState1

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Unsupported
D3D_FEATURE_LEVEL_9_2 Unsupported
D3D_FEATURE_LEVEL_9_3 Unsupported
D3D_FEATURE_LEVEL_10_0 The OutputMergerLogicOp member has been added to D3D11_FEATURE_DATA_D3D11_OPTIONS, to determine support for logical operations (bitwise logic operations between pixel shader output and render target contents, refer to D3D11_RENDER_TARGET_BLEND_DESC1).

ID3D11Device::CreateBuffer

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Buffers can't have render target views.
Buffers must have exactly one of D3D11_BIND_VERTEX_BUFFER, D3D11_BIND_INDEX_BUFFER, or D3D11_BIND_CONSTANT_BUFFER.
Only allows index buffers with the DXGI_FORMAT_R16_UINT format.
D3D_FEATURE_LEVEL_9_2 Buffers can't have render target views.
Buffers must have exactly one of D3D11_BIND_VERTEX_BUFFER, D3D11_BIND_INDEX_BUFFER, or D3D11_BIND_CONSTANT_BUFFER.
Allows index buffers with the DXGI_FORMAT_R16_UINT and DXGI_FORMAT_R32_UINT formats like D3D_FEATURE_LEVEL_10_0 and higher.
${REMOVE}$
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateCounter

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Not supported on any 9.* feature level.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateDepthStencilView

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Does not support two-sided stencil.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateDomainShader

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Not supported on any 9.* or 10.* feature level. ${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11Device::CreateGeometryShader

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Not supported on any 9.* feature level.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateGeometryShaderWithStreamOutput

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Not supported on any 9.* feature level.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateHullShader

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Not supported on any 9.* or 10.* feature level.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11Device::CreateInputLayout

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Does not support D3D11_INPUT_PER_INSTANCE_DATA
D3D_FEATURE_LEVEL_9_2 Does not support D3D11_INPUT_PER_INSTANCE_DATA
D3D_FEATURE_LEVEL_9_3 Vertex stream zero must have D3D11_INPUT_PER_VERTEX_DATA, if any streams have D3D11_INPUT_PER_VERTEX_DATA

See the format support by feature level chart for details on what formats can be used for vertex data at each feature level.

ID3D11Device::CreatePixelShader

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Must use ps_4_0_level_9_1
D3D_FEATURE_LEVEL_9_2 Must use ps_4_0_level_9_1
D3D_FEATURE_LEVEL_9_3 Must use ps_4_0_level_9_3 or ps_4_0_level_9_1

ID3D11Device::CreatePredicate

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Not supported on any 9.* feature level.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateQuery

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Event queries are supported. Timestamp queries are optional: call CreateQuery to determine support.
D3D_FEATURE_LEVEL_9_2 Event and occlusion queries are supported. Timestamp queries are optional: call CreateQuery to determine support.
D3D_FEATURE_LEVEL_9_3 Event and occlusion queries are supported. Timestamp queries are optional: call CreateQuery to determine support.

ID3D11Device::CreateRasterizerState

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 DepthClipEnable must be TRUE. DepthBiasClamp must be set to 0.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateRenderTargetView

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Can only support render target views of Texture2D objects.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateSamplerState

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Comparison filter is not supported.
Border color must be within [0,1]
Min LOD cannot be fractional
Max LOD must be FLT_MAX
Maximum anisotropy is 2.
D3D11_TEXTURE_ADDRESS_MIRRORONCE not supported.
D3D_FEATURE_LEVEL_9_2 Comparison filter is not supported.
Border color must be within [0,1]
Min LOD cannot be fractional
Max LOD must be FLT_MAX
Maximum anisotropy is 16.
${REMOVE}$
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateShaderResourceView

Feature Level MostDetailedMip plus MipLevels must include lowest LOD (smallest subresource View must include all resource array elements
D3D_FEATURE_LEVEL_9_1 Yes yes
D3D_FEATURE_LEVEL_9_2 Yes Yes
D3D_FEATURE_LEVEL_9_3 Yes Yes

ID3D11Device::CreateTexture1D

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Not supported on any 9.* feature level.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateTexture2D

Texture2D resources have limits on their width and height that differ across feature levels. In feature levels 9_3, the following are guaranteed minima, and individual implementations may exceed the requirements.

Feature Level If MipCount > 1, Dimensions must be integral power of two Minimum supported texture dimension Cube textures dimensions must be power of two If MISC_TEXTURECUBE is set, the ArraySize is: If MISC_TEXTURECUBE is not set, the ArraySize is.
D3D_FEATURE_LEVEL_9_1 Yes 2048 Yes 6 1
D3D_FEATURE_LEVEL_9_2 Yes 2048 Yes 6 1
D3D_FEATURE_LEVEL_9_3 Yes 4096 Yes 6 1

In the previous table, the full name of MISC_TEXTURECUBE is D3D11_RESOURCE_MISC_TEXTURECUBE.

The following are true for all 9_* feature levels:

  • When using D3D11_USAGE_DEFAULT or D3D11_USAGE_IMMUTABLE, BindFlags cannot be zero.
  • When using D3D11_BIND_DEPTH_STENCIL, MipLevels must be 1.
  • When using D3D11_BIND_SHADER_RESOURCE, SampleDesc.Count must be 1.
  • When using D3D11_BIND_PRESENT, resource cannot have D3D11_BIND_SHADER_RESOURCE.
  • When using D3D10_DDI_RESOURCE_MISC_SHARED, Format cannot be DXGI_FORMAT_R8G8B8A8_UNORM or DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.

ID3D11Device::CreateTexture3D

Feature Level Maximum Dimension (any axis) Dimensions must be power of two
D3D_FEATURE_LEVEL_9_1 256 Yes
D3D_FEATURE_LEVEL_9_2 512 Yes
D3D_FEATURE_LEVEL_9_3 512 Yes

If resource is D3D11_USAGE_DEFAULT or D3D11_USAGE_IMMUTABLE, BindFlags cannot be zero.

ID3D11Device::CreateUnorderedAccessView

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Not supported on any 9.* feature level.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11Device::CreateVertexShader

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Must use vs_4_0_level_9_1
D3D_FEATURE_LEVEL_9_2 Must use vs_4_0_level_9_1
D3D_FEATURE_LEVEL_9_3 Must use vs_4_0_level_9_3 or vs_4_0_level_9_1

ID3D11Device::OpenSharedResource

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Use ID3D11Device::CheckFeatureSupport with the D3D11_FEATURE_FORMAT_SUPPORT2 value and the D3D11_FEATURE_DATA_FORMAT_SUPPORT2 structure to determine if a format can be shared. If the format can be shared, CheckFeatureSupport returns the D3D11_FORMAT_SUPPORT2_SHAREABLE flag.
Note: DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UNORM_SRGB are never shareable when using feature level 9, even if the device indicates optional feature support for D3D11_FORMAT_SUPPORT_SHAREABLE. Attempting to create shared resources with DXGI formats DXGI_FORMAT_R8G8B8A8_UNORM and DXGI_FORMAT_R8G8B8A8_UNORM_SRGB will always fail unless the feature level is 10_0 or higher.
${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

10Level9 Reference