【发布时间】: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