我对我的 d3d11 应用程序做了一些事情,现在我在调用Present 之后的某个时间发生了 WDDM TDR 重置导致 GPU 崩溃。
由于 Present(也没有任何绘图调用!)函数不再返回 HRESULT,我们应该如何找到问题?
我对我的 d3d11 应用程序做了一些事情,现在我在调用Present 之后的某个时间发生了 WDDM TDR 重置导致 GPU 崩溃。
由于 Present(也没有任何绘图调用!)函数不再返回 HRESULT,我们应该如何找到问题?
您需要打开 DirectX 调试信息并在程序运行时密切观察调试输出。
打开DIRECTX 控制面板并在Direct3D10.x/11下,
现在在调试模式下启动您的应用程序,您应该会在运行时看到调试消息从 DIRECT3D11 溢出到 Visual Studio 输出窗口。在渲染代码中放置一个断点并单步执行,直到看到 WARNING 或 ERROR 消息。这将帮助您解决问题。
ERROR 消息中有大量信息——实际上比 MSDN 上提供的信息要多得多。奇怪的是,如此多的文档存储在 D3D11 调试器中,它就是这样。