If you're playing Overwatch and then suddenly you get a message that says "Rendering device has been lost", don't fear, this article is for you!
According to Blizzard support at the time of this writing, this error is due to a Timeout Detection and Recovery, also called a TDR, the "Rendering device has been lost" message is just the message you get on Overwatch, so you don't get a lot out of it, if you want to understand what causes the problem and how to fix it, your focus is the TDR.
A Timeout Detection and Recovery isn't a problem exclusive to Overwatch, a lot of applications may throw this error, but why? When your graphics card is doing a lot of work and it gets busy to the point where your screen would freeze or appear unresponsible, your operational system(most likely Windows when playing Overwatch) will attempt to take over this freeze and make the computer operational again.
TDRs are good for you! But the problem is when they happen for no reason, for example, when your graphics card is indeed doing a lot of busywork, but it will be stable in some time. For Overwatch, something is going wrong if you get a Timeout Detection and Recovery, it means that your GPU was assigned some task when you were playing Overwatch. Be it the actual game rendering or another background software, the task made the graphics card very busy and it seemed to be hanging, so it was given a timeout, and after that timeout, the task didn't complete, so the display driver is forced to restart.
The message "Display driver stopped responding and has recovered." will appear after the screen is black for a few seconds, indicating that everything is alright again, screen flickering is an artifact that can also appear on hang detection.
How to solve Overwatch rendering device has been lost
There is a lot of different issues that can result in this error as it is a Timeout Detection and Recovery (TDR). If it indicates anything at all, is that your graphics card for some reason spent a lot of time on some task, usually 2 seconds or more.
Factors that can cause a TDR while playing
- Some background task in your computer was sending work to your graphics card, more than it could handle. Try running the game without any background application, in special if you have something open now that you didn't have before.
- Your graphics card could have updated recently, and for some reason, it caused the issue(this isn't very likely to happen), if this is the case, update your graphics card or downgrade to a stable version, it is good to get a driver from the official website of your graphics device support
- Your computer is overheating, maybe a GPU or CPU fan isn't working well so your graphics card started to overheat. You can use temperature monitor software like Open Hardware Monitor to check the temperatures while you're playing and then search up the ideal temperature for your GPU model. The real fix for a temperature issue would be to see if the fans are full of dust and do some cleaning, if not, determine the cause of the overheating and fix it, but setting the graphics of the game to low may help with the issue.
How you can attempt to fix a TDR
If none of the above were the real issue, we end up having to do some trial and error.
- Reset the game settings to default, you can do this in the Battle.net launcher. To reset the game settings, first click on the gear icon next to the Play button, select Game Settings, find Overwatch, and click Reset In-Game Options.
- Disable driver installation from Windows update if you suspect it is the culprit, in this case, a fresh Windows install may be needed.
- Fresh Windows install
Increase TdrDelay to fix TDR issue
Another possible fix is removing the timeout altogether or at least increasing it. This is something that shouldn't be done on regular scenarios(think about it as getting rid of a symptom, rather then the cause), but you could give it a try. To change TdrDelay it is needed to change the Windows registry, only do it if you know what you're doing.
- Open Regedit (Windows key + R, type regedit and enter)
- Navigate to the "folder" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
- After clicking on GraphicsDrivers itself, right click on the panel on the right side, click on New and choose New DWORD value, here you type exactly "TdrDelay"(without quotation marks) and enter to create it
- Double click TdrDelay that you just created, change the Base setting to decimal and set its value to 60. This will make Windows wait longer before deciding that the system is freezed
- After creating TdrDelay and setting the value, do the same for another key called "TdrDdiDelay"(without quotation marks), create it the same way, on the same location and same value(Base decimal, value 60).
Close the Registry editor and restart your computer. For more information on these values check https://docs.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys.
Unfortunately, issues like this can end up falling into a trial and error fix scenario, as a TDR won't inform you what happened, just that it happened. You can attempt to use the Windows Event Viewer to try to identify more about the issue(it could probably just show a driver failure though), but at time it is better to contact the support for Overwatch or your graphics card manufacturer, which will further help to solve the issue.