intel HD 和 nvidia GPU 之间的错误相同的 directx 应用程序相同的功能级别

Error between intel HD and nvidia GPU same directx application same Feature Level

我的应用程序 运行 在配备英特尔高清的本地开发电脑上运行良好或如我所愿。我通过设备创建强制功能级别(10_1)与我的目标机器相同。

但是,如果我 运行 它在我的英特尔 HD 上它一切正常并且工作正常,但一段时间后在目标上崩溃并且表现不同。 我添加了使用 CopySubresourceRegion(...) 从一个渲染目标复制到另一个渲染目标的代码。在它崩溃之前,这似乎已经表现得很不同了。 也许这与问题有关。我想知道,因为我认为既然我使用相同的 运行 时间和功能级别,它的行为应该相同。

如果我的问题是笼统的,我可以添加细节,但现在我想问你是否知道什么会导致这种行为,而我失踪了。我还是 DirectX 编程的新手。

e: 这与线程有关吗?

通过启用调试层在我的目标上进行远程调试解决了这个问题。

错误确实是由CopySubresourceRegion(...)引起的。 错误出现在本地 (intel hd) 和远程 (nvidia) 的输出中。但是 当出现此错误并崩溃(已删除)时,nvidia 的行为似乎有所不同。

此 link 还说明了有关 CopyResourceRegion(...) 和导致该问题的未定义行为:

https://msdn.microsoft.com/de-de/library/windows/desktop/jj200584(v=vs.85).aspx

修复是简单地正确处理我的复制区域参数中的边缘情况,而不依赖于未定义的行为。

感谢 Chuck Walbourn 提示解决问题。