为防止应用程序因使用过多内存而锁死,Windows实施了保护措施。如果一个应用程序的渲染时间超过几秒,Windows就会杀死GPU驱动程序,导致应用程序崩溃。在虚幻引擎这样的应用程序中,无法知道渲染进程的耗时,因此无法在应用程序层面避免崩溃。 –unreal官方文档

多出现在渲染复杂效果与录制Sequence时,渲染时间超出了D3D12的超时时间,使用这种方法来将超时时间增加至60秒。

新建记事本文件,打开输入以下代码

REM https://www.imxqy.com/gamedev/ue/d3dc.html
set /p var="enable or disable GPU delay?(e/d)"
if %var%==e (
    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers /v TdrDelay /t REG_DWORD /d 60 /f
    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers /v TdrDdiDelay /t REG_DWORD /d 60 /f
)
if %var%==d (
    reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers /v TdrDelay /f
    reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers /v TdrDdiDelay /f
)
pause

然后保存文件后将txt后缀改为bat运行,如果没有后缀名则可以另存该文件,在保存文件名中将后缀名改为bat。

运行bat后输入e回车,即可启用超时延迟,输入d回车,可还原该设置。

 

使用虚幻引擎时如何修复GPU驱动程序崩溃 | 虚幻引擎5.0文档 (unrealengine.com)