It seems the UE4 editor and my video drivers don’t always get along.
I can load up UE4 just fine, and if I turn off ambient occlusion and lens flare effects in the project render settings, UE4 remains stable and I am able to do various things.
But as soon as I open the Material Editor, Animation Blueprint Editor, or any editor with a visible 3D viewport, my video drivers crash and recover. This wouldn’t be so bad if it didn’t also crash UE4, but it does. To get around this issue, I’ve made manual adjustments to UE4Editor and UnrealCEFSubProcess in my NVidia Control Panel to disallow ambient occlusion and enable high performance settings. For the most part, this works, but still crashes in specific editors under certain circumstances.
After reading various crash logs and reports, it’s my impression that UE4 makes no attempt to recover from a lost D3D device. I have played various 3D games where if my video drivers crash and recover, the 3D application does not crash and instead simply recovers the lost D3D device, allowing me to continue playing. This doesn’t happen often, but as a software developer, I understand that it is common practice to allow a lost device to be recovered since there are an innumerable amount of ways that this could happen (ie, switching monitors).
So, with that being said… Am I correct in assuming that UE4 makes no attempt to recover from a lost device, and is there any way to request this to be done in later releases of UE4? Technically speaking, would it be possible to have the engine detect when DXGI_ERROR_DEVICE_REMOVED is recieved, and attempt to create a new ID3D11Device in it’s place? Maybe X amount of attempts (based on some time interval), before forcing UE4 to perform a normal crash?