【问题标题】:D3D11 CORRUPTION: ID3D11DeviceContext::RSGetScissorRectsD3D11 损坏:ID3D11DeviceContext::RSGetScissorRects
【发布时间】:2015-05-13 03:50:37
【问题描述】:

大约从两天前开始,我运行的每个 D3D11 应用程序都在启动后的前 30 秒内爆炸 [包括我从未接触过的代码]。

我正在使用安装了 Windows 8.1 SDK 的 Visual Studios 2013 [今天重新安装了一个很好的衡量标准]。

由于是 D3D 错误,它只在 Debug 中爆炸,但某处崩溃是其他地方的问题。

D3D11 CORRUPTION: ID3D11DeviceContext::RSGetScissorRects: First parameter out of range. [ MISCELLANEOUS CORRUPTION #13: CORRUPTED_PARAMETER1]

我从未将ID3D11DeviceContext::RSGetScissorRects 用于任何目的。我什至不知道它接受、吐出什么参数、它做了什么或其他任何组合。

既然有ID3D11DeviceContext::RSGetScissorRects,我假设也有ID3D11DeviceContext::RSSetScissorRects,但和ID3D11DeviceContext::RSGetScissorRects一样,我不知道它的作用。

既然会图形对我来说比较重要,那么这个问题的潜在解决方案是什么?

This 是我当前的 DirectX11 初始化。

我的团队成员可以毫无问题地运行我们的 DirectX11 应用程序数小时,但是当它通过 USB 传递到我的机器时...爆炸

任何帮助将不胜感激。

【问题讨论】:

  • 我对 DirectX11 有所了解,但我也从未使用过该接口。我查看了您的消息来源,一切似乎都很好。但是有几个问题需要回答:您正在使用哪些版本的 Windows?机器是否有支持 DirectX11 的视频卡,如果有,该卡是什么制造商的,还是从板载视频运行的?机器是台式机、笔记本电脑还是平板电脑等?
  • 您使用的是什么操作系统版本?另外,在C:\Windows\System32(或SysWOW64,如果您正在运行32 位进程),您有哪些版本的d3d11*sdklayers.dll?如果你右键单击每个,属性>详细信息>文件版本的值是什么?
  • 如果您看到此 API 会导致错误,即使您没有调用它,那么您最近是否可能无意中安装了覆盖?这样的例子可能是 Fraps、AMD Gaming Evolved(AMD 的捕获/广播工具,其驱动程序附带)、Nvidia 的 Shadowplay,甚至可能是 Steam Overlay。如果他们连接了您的设备,那么您可能会看到 RSGetScissorRects 在“Present”中被调用。
  • @AdamMiles 是的,实际上。几个月前,AMD 的 Gaming Evolved 让我无法自拔。你是对的。当中断发生时,一个 Present 调用刚刚发生。
  • @FrancisCugler 我正在使用 HP Elitebook 8770w [商务级工作站(笔记本电脑)],运行 Windows 7 和 AMD FirePro M4000 [FireGL](兼容 DirectX11.1)显卡。

标签: c++ windows directx-11


【解决方案1】:

根据 cmets,在您的调用堆栈中,“ltc_game32”似乎归因于 Raptr,它是 AMD Gaming Evolved 的一部分。这已经钩住了您的 D3D11 应用程序以提供某种额外的捕获/记录功能,并且在 D3D11 调试层方面似乎没有运行“干净”。

尝试从控制面板卸载 Raptr 以删除驱动程序的这一附加“功能”,并查看问题是否继续出现。只需从任务托盘中关闭 AMD Gaming Evolved 并查看问题是否消失就足够了。

【讨论】:

  • 你是对的;关闭任务托盘中的 AMD Gaming Evolved 是解决方法。非常感谢!我很感激。
猜你喜欢
  • 2010-11-15
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
相关资源
最近更新 更多