10Level9 ID3D11DeviceContext 方法

本部分列出了 ID3D11DeviceContext 方法的每个 10Level9 功能级别与D3D_FEATURE_LEVEL_11_0及更高功能级别之间的差异。

ID3D11DeviceContext::CopySubresourceRegion

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 在 GPU 可访问的内存中只能复制 Texture2D 和缓冲区。
无法将 Texture3D 从 GPU 可访问的内存复制到 CPU 可访问的内存。
任何仅具有 D3D10_BIND_SHADER_RESOURCE 的资源都不能从 GPU 可访问的内存复制到 CPU 可访问的内存。
无法复制误用的卷纹理。
${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CopyResource

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 在 GPU 可访问的内存中只能复制 Texture2D 和缓冲区。
无法将 Texture3D 从 GPU 可访问的内存复制到 CPU 可访问的内存。
任何仅具有 D3D10_BIND_SHADER_RESOURCE 的资源都不能从 GPU 可访问的内存复制到 CPU 可访问的内存。
${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CopyStructureCount

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::ClearUnorderedAccessViewFloat

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::ClearUnorderedAccessViewUint

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::ClearRenderTargetView

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 仅清除第一个数组切片。 应用程序应为每个人脸或数组切片创建呈现目标视图,然后单独清除每个视图。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetConstantBuffers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetSamplers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetShader

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetShaderResources

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::CSSetUnorderedAccessViews

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::D ispatch

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::D ispatchIndirect

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::Draw

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 基元数不能超过 65535。
纹理不能在一个基元上重复超过 128 次。
D3D_FEATURE_LEVEL_9_2 基元数不能超过 1048575。
纹理不能在一个基元上重复超过 2048 次。
D3D_FEATURE_LEVEL_9_3 基元数不能超过 1048575。
纹理不能在一个基元上重复超过 8192 次。

ID3D11DeviceContext::DrawAuto

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持任何 9.* 功能级别。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::DrawIndexed

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 基元数不能超过 65535。
纹理不能在一个基元上重复超过 128 次。
索引值不能超过 65534。
不支持索引点列表。
D3D_FEATURE_LEVEL_9_2 基元数不能超过 1048575。
纹理不能在一个基元上重复超过 2048 次。
索引值不能超过 1048575。
不支持索引点列表。
D3D_FEATURE_LEVEL_9_3 基元数不能超过 1048575。
纹理不能在一个基元上重复超过 8192 次。
索引值不能超过 1048575。
不支持索引点列表。

ID3D11DeviceContext::DrawIndexedInstanced

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 基元数不能超过 1048575。
纹理不能在一个基元上重复超过 8192 次。
索引值不能超过 1048575。
注意: 使用绑定到管道且不导入任何每个实例数据的顶点着色器调用 DrawIndexedInstanced 方法时,某些 Direct3D 9 图形硬件可能不会绘制任何内容。 具体而言,如果顶点着色器不使用任何每个实例的数据,则调用具有 1 个实例 的 DrawIndexedInstanced 不等效于调用 Draw

ID3D11DeviceContext::D rawIndexedInstancedIndirect

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::DrawInstanced

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::D rawInstancedIndirect

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::D SSetConstantBuffers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::D SSetSamplers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::D SSetShader

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::D SSetShaderResources

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::GSSetConstantBuffers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::GSSetSamplers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::GSSetShader

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::GSSetShaderResources

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::HSSetConstantBuffers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::HSSetSamplers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::HSSetShader

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::HSSetShaderResources

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 或 10.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3
D3D_FEATURE_LEVEL_10_0
D3D_FEATURE_LEVEL_10_1

ID3D11DeviceContext::IASetIndexBuffer

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 允许格式与创建缓冲区时指定的格式不同,但转换成本高昂。
仅允许使用DXGI_FORMAT_R16_UINT格式的索引缓冲区。
D3D_FEATURE_LEVEL_9_2 允许格式与创建缓冲区时指定的格式不同,但转换成本高昂。
允许使用DXGI_FORMAT_R16_UINT和DXGI_FORMAT_R32_UINT格式(如 D3D_FEATURE_LEVEL_10_0 和更高)的索引缓冲区。
${REMOVE}$
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::IASetPrimitiveTopology

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 不支持具有相邻性的基元拓扑${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::OMSetBlendState

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 SampleMask 不能为 zero${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::OMSetRenderTargets

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 仅支持一个呈现目标${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 仅支持四个呈现目标,并且所有绑定资源必须具有相同的位深度。

ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::P SSetConstantBuffers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 请参阅功能级别 10.0,但着色器使用的常量总数不能超过 32${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::P SSetSamplers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 绑定的采样器不能超过 16 个${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::P SSetShader

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 仅 ps_4_0_level_9_1${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 仅ps_4_0_level_9_3或ps_4_0_level_9_1

ID3D11DeviceContext::P SSetShaderResources

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 同时绑定着色器资源不超过 8 个${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::RSSetScissorRects

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 只有第 0 个剪刀 rect 可用${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::RSSetViewports

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 仅第 0 个视区可用${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

即使在调用 ID3D11DeviceContext::RSSetViewports 的功能级别9_x时,为 pViewports 数组的 D3D11_VIEWPORT 结构成员指定浮点值,RSSetViewports 内部也使用 DWORD。 由于此行为,当对视区使用负左上角时,对 功能级别的 RSSetViewports 的调用9_x失败。 发生此失败的原因是,9_x的 RSSetViewports 在没有验证的情况下将浮点值强制转换为无符号整数,从而导致整数溢出。

调用 ID3D11DeviceContext::RSSetViewports 以获取 功能级别 10_x和11_x,即使对视区使用负左上角也是如此。

ID3D11DeviceContext::SetPredication

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::SOSetTargets

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::VSSetConstantBuffers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 请参阅功能级别 10.0,但着色器使用的常量总数不能超过 255${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::VSSetSamplers

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

ID3D11DeviceContext::VSSetShader

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 仅 vs_4_0_level_9_1${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3 仅vs_4_0_level_9_3或vs_4_0_level_9_1

ID3D11DeviceContext::VSSetShaderResources

功能级别 行为差异
D3D_FEATURE_LEVEL_9_1 任何 9.* 功能级别都不支持。${REMOVE}$
D3D_FEATURE_LEVEL_9_2
D3D_FEATURE_LEVEL_9_3

10Level9 参考