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