防止不需要的 NULL 像素着色器 SRV

在 Direct3D 9 图形硬件上运行的 Direct3D 11 应用程序可能会无意中导致驱动程序接收 NULL 着色器资源视图, (SRV) 即使应用程序将非 NULL SRV 绑定到像素着色器阶段也是如此。 仅当应用程序在执行时销毁 SRV 时,才会发生这种情况。 本主题讨论如何解决驱动程序接收 NULL 着色器资源视图 (SRV) 即使非 NULL SRV 绑定到像素着色器阶段也是如此。

若要防止驱动程序接收不需要的 NULL SRV,应用程序必须调用 ID3D11DeviceContext::P SSetShaderResources ,以在每次调用 ID3D11DeviceContext::P SSetShader 之前取消设置所有 SRV。 但是,如果应用程序在其代码执行结束之前不销毁 SRV,则它们不需要取消设置 SRV。

10Level9 参考部分列出了各种 ID3D11DeviceID3D11DeviceContext 方法在不同 10Level9 功能级别上的行为方式之间的差异。

下层硬件上的 Direct3D 11