为防止应用程序因使用过多内存而锁死,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回车,可还原该设置。