10Level9 ID3D11DeviceContext Methods

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.

ID3D11DeviceContext::CopySubresourceRegion

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.
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}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CopyStructureCount

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::ClearUnorderedAccessViewFloat

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::ClearUnorderedAccessViewUint

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::ClearRenderTargetView

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 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.

ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews

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::PSSetConstantBuffers

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 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.

The call to ID3D11DeviceContext::RSSetViewports for feature levels 10_x and 11_x works as you expect even when you use a negative top left corner for the viewport.

ID3D11DeviceContext::SetPredication

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::SOSetTargets

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::VSSetConstantBuffers

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 See feature level 10.0, but total number of constants used by shader cannot exceed 255${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::VSSetSamplers

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::VSSetShader

Feature Level Behavior Differences
D3D_FEATURE_LEVEL_9_1 Only vs_4_0_level_9_1${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 Only vs_4_0_level_9_3 or vs_4_0_level_9_1

ID3D11DeviceContext::VSSetShaderResources

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

10Level9 Reference