有时我们可以触发一个"CPU崩溃";代码类似:
*(int*)0=1234;
相应地,任何简单的代码都可以触发";GPU崩溃";(可能需要一些DirectX接口(?
我之所以需要这个是因为我想了解Unreal的(UE4/UE5(GPU崩溃处理流程。期望UE的任何代码。
THX
用像样的驱动程序来破坏现代GPU是非常困难的。通常情况下,它们会一直运行到任务完成。如果任务非常大或需要很长时间,操作系统会认为它们只是停止了响应。发生这种情况后,有几个选项:
-
崩溃:非常罕见的
-
重置驱动程序:这将重置DirectX状态并崩溃无论哪个程序正在使用它(除非它正在检查,但是这似乎是浪费(
-
中止操作:这是更现代化的硬件和驱动程序,但它们可以简单地停止程序
-
不间断运行:只有当GPU被其他任何东西使用时,才会发生这种情况。
做一些无休无止的繁重计算(分形(,看看会发生什么。
您可以触发"超时设备恢复"(TDR(,这与GPU崩溃非常相似。
使用以管理员身份运行的Visual Studio开发人员命令提示符:
dxcap -forcetdr
请记住,这会为所有运行的应用程序触发TDR。