1

我对我的 d3d11 应用程序做了一些事情,现在我在调用Present 之后的某个时间发生了 WDDM TDR 重置导致 GPU 崩溃。

由于 Present(也没有任何绘图调用!)函数不再返回 HRESULT,我们应该如何找到问题?

4

1 回答 1

2

您需要打开 DirectX 调试信息并在程序运行时密切观察调试输出。

打开DIRECTX 控制面板并在Direct3D10.x/11下,

  • 选择Edit LIST并将您尝试调试的可执行文件添加到列表中。
  • 在调试层下选择 FORCE ON,
  • 并确保未打开静音(只需取消选中静音以查看您想要查看的错误级别。)

现在在调试模式下启动您的应用程序,您应该会在运行时看到调试消息从 DIRECT3D11 溢出到 Visual Studio 输出窗口。在渲染代码中放置一个断点并单步执行,直到看到 WARNING 或 ERROR 消息。这将帮助您解决问题。

ERROR 消息中有大量信息——实际上比 MSDN 上提供的信息要多得多。奇怪的是,如此多的文档存储在 D3D11 调试器中,它就是这样。

于 2011-10-14T23:29:49.183 回答