This section lists the differences between each 10Level9 feature level and the D3D_FEATURE_LEVEL_11_0 and higher feature level for the ID3D11DeviceContext methods.
Only Texture2D and buffers may be copied within GPU-accessible memory. Texture3D cannot be copied from GPU-accessible memory to CPU-accessible memory. Any resource that has only D3D10_BIND_SHADER_RESOURCE cannot be copied from GPU-accessible memory to CPU-accessible memory. You can't copy mipmapped volume textures. ${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
ID3D11DeviceContext::CopyResource
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Only Texture2D and buffers may be copied within GPU-accessible memory. Texture3D cannot be copied from GPU-accessible memory to CPU-accessible memory. Any resource that has only D3D10_BIND_SHADER_RESOURCE cannot be copied from GPU-accessible memory to CPU-accessible memory. ${REMOVE}$
Only the first array slice will be cleared. Applications should create a render target view for each face or array slice, then clear each view individually.${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
ID3D11DeviceContext::CSSetConstantBuffers
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
ID3D11DeviceContext::CSSetSamplers
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
ID3D11DeviceContext::CSSetShader
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
ID3D11DeviceContext::CSSetShaderResources
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
ID3D11DeviceContext::CSSetUnorderedAccessViews
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
ID3D11DeviceContext::Dispatch
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
ID3D11DeviceContext::DispatchIndirect
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
ID3D11DeviceContext::Draw
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Number of primitives may not exceed 65535. Textures cannot repeat over one primitive more than 128 times.
D3D_FEATURE_LEVEL_9_2
Number of primitives may not exceed 1048575. Textures cannot repeat over one primitive more than 2048 times.
D3D_FEATURE_LEVEL_9_3
Number of primitives may not exceed 1048575. Textures cannot repeat over one primitive more than 8192 times.
ID3D11DeviceContext::DrawAuto
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
ID3D11DeviceContext::DrawIndexed
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Number of primitives may not exceed 65535. Textures cannot repeat over one primitive more than 128 times. Index values cannot exceed 65534. Indexed point lists not supported.
D3D_FEATURE_LEVEL_9_2
Number of primitives may not exceed 1048575. Textures cannot repeat over one primitive more than 2048 times. Index values cannot exceed 1048575. Indexed point lists not supported.
D3D_FEATURE_LEVEL_9_3
Number of primitives may not exceed 1048575. Textures cannot repeat over one primitive more than 8192 times. Index values cannot exceed 1048575. Indexed point lists not supported.
ID3D11DeviceContext::DrawIndexedInstanced
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Not supported${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
Number of primitives may not exceed 1048575. Textures cannot repeat over one primitive more than 8192 times. Index values cannot exceed 1048575. Note: When you call the DrawIndexedInstanced method with a vertex shader that is bound to the pipeline and that doesn't import any per-instance data, some Direct3D 9 graphics hardware might not draw anything. In particular, if the vertex shader does not use any per-instance data, calling DrawIndexedInstanced with 1 instance is not equivalent to calling Draw.
ID3D11DeviceContext::DrawIndexedInstancedIndirect
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
ID3D11DeviceContext::DrawInstanced
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
ID3D11DeviceContext::DrawInstancedIndirect
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
ID3D11DeviceContext::DSSetConstantBuffers
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
ID3D11DeviceContext::DSSetSamplers
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
ID3D11DeviceContext::DSSetShader
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
ID3D11DeviceContext::DSSetShaderResources
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
ID3D11DeviceContext::GSSetConstantBuffers
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
ID3D11DeviceContext::GSSetSamplers
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
ID3D11DeviceContext::GSSetShader
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
ID3D11DeviceContext::GSSetShaderResources
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
ID3D11DeviceContext::HSSetConstantBuffers
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
ID3D11DeviceContext::HSSetSamplers
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
ID3D11DeviceContext::HSSetShader
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
ID3D11DeviceContext::HSSetShaderResources
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
ID3D11DeviceContext::IASetIndexBuffer
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Format is allowed to be different from that specified at buffer creation, but an expensive translation will be incurred. Only allows index buffers with the DXGI_FORMAT_R16_UINT format.
D3D_FEATURE_LEVEL_9_2
Format is allowed to be different from that specified at buffer creation, but an expensive translation will be incurred. 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
ID3D11DeviceContext::IASetPrimitiveTopology
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Primitive topologies with adjacency are not supported${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
ID3D11DeviceContext::OMSetBlendState
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
SampleMask cannot be zero${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
ID3D11DeviceContext::OMSetRenderTargets
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Only one render target supported${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
Only four render targets supported, and all bound resources must have same bit depth.
See feature level 10.0, but total number of constants used by shader cannot exceed 32${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
ID3D11DeviceContext::PSSetSamplers
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
No more than 16 samplers can be bound${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
ID3D11DeviceContext::PSSetShader
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Only ps_4_0_level_9_1${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
Only ps_4_0_level_9_3 or ps_4_0_level_9_1
ID3D11DeviceContext::PSSetShaderResources
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
No more than 8 simultaneously bound shader resources${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
ID3D11DeviceContext::RSSetScissorRects
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Only the zeroth scissor rect is available${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
ID3D11DeviceContext::RSSetViewports
Feature Level
Behavior Differences
D3D_FEATURE_LEVEL_9_1
Only the zeroth viewport is available${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
Even though you specify float values to the members of the D3D11_VIEWPORT structure for the pViewports array in a call to ID3D11DeviceContext::RSSetViewports for feature levels 9_x, RSSetViewports uses DWORDs internally. Because of this behavior, when you use a negative top left corner for the viewport, the call to RSSetViewports for feature levels 9_x fails. This failure occurs because RSSetViewports for 9_x casts the floating point values into unsigned integers without validation, which results in integer overflow.