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